• Aucun résultat trouvé

Petite introduction aux protocoles cryptographiques. Master d informatique M2

N/A
N/A
Protected

Academic year: 2022

Partager "Petite introduction aux protocoles cryptographiques. Master d informatique M2"

Copied!
76
0
0

Texte intégral

(1)

Petite introduction

aux protocoles cryptographiques

Master d’informatique M2

(2)

Internet

- confidentialité - anonymat

- authentification (s’agit-il bien

de ma banque ?)

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.2/48-1

(3)

Signature électronique

- vérifiable - authentique

- non-répudiation (je n’ai jamais signé ce texte...)

(4)

Vote électronique

• Le résultat reflète les votes

• Chaque vote est confidentiel

• On ne peut pas connaître des résultats partiels

• Seuls les électeurs peuvent voter et une seule fois

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.4/48-1

(5)

Paiement par carte bleue

• Est-ce qu’il s’agit d’une vraie carte ?

(6)

Décodeurs

−−−−−−→

←−−−−−−

• Vérification de l’abonné

• Impossibilité de retransmettre les données décodées à une tierce personne

• Mise à jour de l’abonnement

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.6/48-1

(7)

Porte-monnaie électronique

• Pas de création de fausse monnaie

• Pas de création de faux porte-monnaie

(8)

Bases de données sécurisées

Patients Maladies Traitements Dupond rougeole ...

Dupont oreillons ...

Durand scarlatine ...

• Seules les personnes habilitées ont accès à la vue partielle à laquelle elles ont droit.

• Les données peuvent être échangées entre un médecin, un laboratoire, un hôpital.

• Mise à jour possible des données.

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.8/48-1

(9)

Propriétés de sécurité

• Secret: Est-ce qu’un participant malhonnête peut connaître une donnée confidentielle ?

• Authentification: À qui parle-t-on vraiment ?

• Anonymat: Peut-on savoir qui communique avec qui ?

• Équité: Lors de la signature d’un contrat, est-ce que l’un des signataires peut obtenir un avantage sur l’autre ?

• . . .

(10)

Comment ça marche ?

• Les primitives cryptographiques

• Quelques protocoles simples avec chiffrement

• Un protocole pour carte bancaire

• Le protocole de Needham-Schroeder

• Les protocoles Zero-knowledge

• La vérification de la sûreté des protocoles : l’analyse de logiciels critiques en général.

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.10/48-1

(11)

Chiffrement

Chiffrement symétrique

Chiffrement Déchiffrement

Bonjour Alice

Obawbhe Nyvpr

clef clef Bonjour

Alice On utilise la même clef pour chiffrer et déchiffrer.

Chiffrement asymétrique

Chiffrement Déchiffrement

Bonjour Alice

Obawbhe Nyvpr clef

publique

clef privée

Bonjour Alice On chiffre avec la clef publique et on déchiffre avec la clef privée.

(12)

Chiffrement

Chiffrement symétrique

Chiffrement Déchiffrement

Bonjour Alice

Obawbhe Nyvpr

clef clef Bonjour

Alice On utilise la même clef pour chiffrer et déchiffrer.

Chiffrement asymétrique

Chiffrement Déchiffrement

Bonjour Alice

Obawbhe Nyvpr clef

publique

clef privée

Bonjour Alice On chiffre avec la clef publique et on déchiffre avec la clef privée.

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.11/48-1

(13)

Le chiffrement autrefois

• Le chiffrement de César : décalage des lettres

• Disque de chiffrement (Léone Battista Alberti 1466)

→ sujet à des analyses statistiques

(14)

Le chiffrement autrefois

• Le chiffrement de César : décalage des lettres

• Disque de chiffrement (Léone Battista Alberti 1466)

→ sujet à des analyses statistiques

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.12/48-1

(15)

Le chiffrement : période technique

Substitutions et permutations automatiques

(16)

Le chiffrement aujourd’hui

→ Utilisation de problèmes algorithmiquement durs.

Fonction RSA n = pq, p et q premiers.

e : exposant public

• x 7→ xe mod n facile (cubique)

• y = xe 7→ x mod n difficile x = yd où d = e−1 mod φ(n) Problème de Diffie-Hellman

• étant donné A = ga et B = gb,

• calculer DH(A, B) = gab

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.14/48-1

(17)

Le chiffrement aujourd’hui

→ Utilisation de problèmes algorithmiquement durs.

Fonction RSA n = pq, p et q premiers.

e : exposant public

• x 7→ xe mod n facile (cubique)

• y = xe 7→ x mod n difficile x = yd où d = e−1 mod φ(n) Problème de Diffie-Hellman

• étant donné A = ga et B = gb,

• calculer DH(A, B) = gab

(18)

Estimations pour la factorisation d’entiers

Module Opérations (bits) (en log2)

512 58

1024 80

2048 111

4096 149

8192 156

≈ 260 ans

→ Bornes inférieures pour RSA et Diffie-Hellman.

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.15/48-1

(19)

Exemple de chiffrement à clef publique : RSA

public privé

n = pq d = e−1 mod φ(n) e (clef publique) (clef privée)

Chiffrement RSA

• E(m) = me mod n

• D(c) = cd mod n

(20)

Signature

Signature Vérification

Bonjour Alice

Obawbhe Nyvpr clef

privée

clef

publiqueBonjour Alice

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.17/48-1

(21)

Comment ça marche ?

• Les primitives cryptographiques

• Quelques protocoles simples avec chiffrement.

• Un protocole pour carte bancaire.

• Le protocole de Needham-Schroeder.

• Les protocoles Zero-knowledge.

• La vérification de la sûreté des protocoles : l’analyse de logiciels critiques en général.

(22)

Échange de secret

On peut utiliser la clef k = 785341006

−−−−−−−−−−−−−−−−−−−−−−−−−−−→

Mon code bancaire est {3443}785341006

←−−−−−−−−−−−−−−−−−−−−−−−−−

La clef est 785341006 Je déchiffre...

le code secret est 3443

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.19/48-1

(23)

Échange de secret

On peut utiliser la clef k = 785341006

−−−−−−−−−−−−−−−−−−−−−−−−−−−→

Mon code bancaire est {3443}785341006

←−−−−−−−−−−−−−−−−−−−−−−−−−

La clef est 785341006 Je déchiffre...

le code secret est 3443

(24)

Chiffrement commutatif (RSA)

{code : 3443}k

asterix

−−−−−−−−−−−−→

{code : 3443}k

asterix

ff

kobelix

←−−−−−−−−−−−−−−−−−

{code : 3443}k

obelix

−−−−−−−−−−−−→

Car ©

{code : 3443}k

asterix

ª

kobelix = ©

{code : 3443}k

obelix

ª

kasterix

→ Ça ne marche pas ! (problème d’authentification) {code : 3443}k

asterix

−−−−−−−−−−−−→

{code : 3443}k

asterix

ff

kpirate

←−−−−−−−−−−−−−−−−−

{code : 3443}k

pirate

−−−−−−−−−−−−→

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.20/48-1

(25)

Chiffrement commutatif (RSA)

{code : 3443}k

asterix

−−−−−−−−−−−−→

{code : 3443}k

asterix

ff

kobelix

←−−−−−−−−−−−−−−−−−

{code : 3443}k

obelix

−−−−−−−−−−−−→

Car ©

{code : 3443}k

asterix

ª

kobelix = ©

{code : 3443}k

obelix

ª

kasterix

→ Ça ne marche pas ! (problème d’authentification) {code : 3443}k

asterix

−−−−−−−−−−−−→

{code : 3443}k

asterix

ff

kpirate

←−−−−−−−−−−−−−−−−−

{code : 3443}k

pirate

−−−−−−−−−−−−→

(26)

Chiffrement commutatif (RSA)

{code : 3443}k

asterix

−−−−−−−−−−−−→

{code : 3443}k

asterix

ff

kobelix

←−−−−−−−−−−−−−−−−−

{code : 3443}k

obelix

−−−−−−−−−−−−→

Car ©

{code : 3443}k

asterix

ª

kobelix = ©

{code : 3443}k

obelix

ª

kasterix

→ Ça ne marche pas ! (problème d’authentification) {code : 3443}k

asterix

−−−−−−−−−−−−→

{code : 3443}k

asterix

ff

kpirate

←−−−−−−−−−−−−−−−−−

{code : 3443}k

pirate

−−−−−−−−−−−−→

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.20/48-1

(27)

Chiffrement commutatif (RSA)

{code : 3443}k

asterix

−−−−−−−−−−−−→

{code : 3443}k

asterix

ff

kobelix

←−−−−−−−−−−−−−−−−−

{code : 3443}k

obelix

−−−−−−−−−−−−→

Car ©

{code : 3443}k

asterix

ª

kobelix = ©

{code : 3443}k

obelix

ª

kasterix

→ Ça ne marche pas ! (problème d’authentification) {code : 3443}k

asterix

−−−−−−−−−−−−→

{code : 3443}k

asterix

ff

kpirate

←−−−−−−−−−−−−−−−−−

{code : 3443}k

pirate

−−−−−−−−−−−−→

(28)

Chiffrement commutatif (RSA)

{code : 3443}k

asterix

−−−−−−−−−−−−→

{code : 3443}k

asterix

ff

kobelix

←−−−−−−−−−−−−−−−−−

{code : 3443}k

obelix

−−−−−−−−−−−−→

Car ©

{code : 3443}k

asterix

ª

kobelix = ©

{code : 3443}k

obelix

ª

kasterix

→ Ça ne marche pas ! (problème d’authentification) {code : 3443}k

asterix

−−−−−−−−−−−−→

{code : 3443}k

asterix

ff

kpirate

←−−−−−−−−−−−−−−−−−

{code : 3443}k

pirate

−−−−−−−−−−−−→

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.20/48-1

(29)

Attaques sur les décodeurs

Kentucky Fried Chip : bloquer l’ordre de désabonnement Renvoi de messages :

n carte, {c1,...,ck}Kcs

−−−−−−−−−−−−−→

n carte, {c01,...,c0k}Kcs

←−−−−−−−−−−−−−

(30)

Attaques sur les décodeurs

Kentucky Fried Chip : bloquer l’ordre de désabonnement

Renvoi de messages :

n carte, {c1,...,ck}Kcs

−−−−−−−−−−−−−→

n carte, {c01,...,c0k}Kcs

←−−−−−−−−−−−−−

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.21/48-1

(31)

Comment ça marche ?

• Les primitives cryptographiques

• Quelques protocoles simples avec chiffrement.

• Un protocole pour carte bancaire.

• Le protocole de Needham-Schroeder.

• Les protocoles Zero-knowledge.

• La vérification de la sûreté des protocoles : l’analyse de logiciels critiques en général.

(32)

Protocole de paiement par CB

• L’acheteur introduit sa carte.

• Le commerçant saisit le montant m de la transaction sur le terminal.

• Le terminal authentifie la carte.

• L’acheteur donne son code à la carte.

Si m dépasse 100 euros (et dans seulement 20% des cas) :

− Le terminal demande l’authentification de la carte à la banque.

− La banque donne l’autorisation.

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.23/48-1

(33)

Plus en détails

4 acteurs : la Banque, l’Acheteur, la Carte et le Terminal.

Banque possède

• une clef de signature KB−1, secrète,

• une clef de vérification KB, publique,

• une clef secrète pour chaque carte bancaire KCB secrète.

Carte possède

• Data : nom, prénom, numéro de carte, date de validité,

• Valeur de Signature V S = {hash(Data)}K1

B ,

• clef secrète KCB.

(34)

Protocole CB (résumé)

Le terminal lit la carte :

1. C → T : Data, {hash(Data)}K−1

B

Le terminal demande le code :

2. T → A : code secret? 3. A → C : 1234

4. C → T : ok Le terminal contacte la banque :

5. T → B : auth?

6. B → T : 7294291330572 7. T → C : 7294291330572

8. C → T : {7294291330572}KCB

9. T → B : {7294291330572}KCB

10. B → T : ok

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.25/48-1

(35)

Protocole CB (résumé)

Le terminal lit la carte :

1. C → T : Data, {hash(Data)}K−1

B

Le terminal demande le code :

2. T → A : code secret? 3. A → C : 1234

4. C → T : ok Le terminal contacte la banque :

5. T → B : auth?

6. B → T : 7294291330572 7. T → C : 7294291330572

8. C → T : {7294291330572}KCB

9. T → B : {7294291330572}KCB

10. B → T : ok

(36)

Protocole CB (résumé)

Le terminal lit la carte :

1. C → T : Data, {hash(Data)}K−1

B

Le terminal demande le code :

2. T → A : code secret? 3. A → C : 1234

4. C → T : ok Le terminal contacte la banque :

5. T → B : auth?

6. B → T : 7294291330572 7. T → C : 7294291330572

8. C → T : {7294291330572}KCB

9. T → B : {7294291330572}KCB

10. B → T : ok

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.25/48-1

(37)

Quelques failles de la carte bancaire

Initialement sécurité assurée par :

• cartes difficilement réplicables,

• secret des clefs et du protocole.

Mais

• faille cryptographique : les clefs de 320 bits ne sont plus sûres (1988),

• faille logique : pas de lien entre le code secret à 4 chiffres et l’authentification,

→ “YesCard” fabriquées par Serge Humpich (1998).

(38)

Quelques failles de la carte bancaire

Initialement sécurité assurée par :

• cartes difficilement réplicables,

• secret des clefs et du protocole.

Mais

• faille cryptographique : les clefs de 320 bits ne sont plus sûres (1988),

• faille logique : pas de lien entre le code secret à 4 chiffres et l’authentification,

• réplicabilité des cartes.

→ “YesCard” fabriquées par Serge Humpich (1998).

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.26/48-1

(39)

Principe de la “YesCard”

Faille logique

1.C → T : Data, {hash(Data)}K−1

B

2.T → A : code secret? 3.A → C

C0

: 1234 2345

4.C C0

→ T : ok Remarque : il y a toujours quelqu’un à débiter.

→ ajout d’une fausse signature sur une fausse carte (Serge Humpich).

1.C0 → T : XXX, {hash(XXX)}K−1

B

2.T → A : code secret?

3.A → C0 : 0000 4.C0 → T : ok

(40)

Principe de la “YesCard”

Faille logique

1.C → T : Data, {hash(Data)}K−1

B

2.T → A : code secret? 3.A →

C

C0 : 1234

2345 4.

C

C0 → T : ok Remarque : il y a toujours quelqu’un à débiter.

→ ajout d’une fausse signature sur une fausse carte (Serge Humpich).

1.C0 → T : XXX, {hash(XXX)}K−1

B

2.T → A : code secret?

3.A → C0 : 0000 4.C0 → T : ok

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.27/48-1

(41)

Principe de la “YesCard”

Faille logique

1.C → T : Data, {hash(Data)}K−1

B

2.T → A : code secret? 3.A →

C

C0 : 1234

2345 4.

C

C0 → T : ok

Remarque : il y a toujours quelqu’un à débiter.

→ ajout d’une fausse signature sur une fausse carte (Serge Humpich).

1.C0 → T : XXX, {hash(XXX)}K−1

B

2.T → A : code secret?

3.A → C0 : 0000 4.C0 → T : ok

(42)

Principe de la “YesCard”

Faille logique

1.C → T : Data, {hash(Data)}K−1

B

2.T → A : code secret? 3.A →

C

C0 : 1234

2345 4.

C

C0 → T : ok

Remarque : il y a toujours quelqu’un à débiter.

→ ajout d’une fausse signature sur une fausse carte (Serge Humpich).

1.C0 → T : XXX, {hash(XXX)}K−1

B

2.T → A : code secret?

3.A → C0 : 0000 4.C0 → T : ok

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.27/48-1

(43)

Comment ça marche ?

• Les primitives cryptographiques

• Quelques protocoles simples avec chiffrement.

• Un protocole pour carte bancaire.

• Le protocole de Needham-Schroeder.

• Les protocoles Zero-knowledge.

• La vérification de la sûreté des protocoles : l’analyse de logiciels critiques en général.

(44)

Protocole Needham-Schroeder à clefs publiques

• A → B : {A, Na}pub(B)

B → A : {Na, Nb}pub(A)

A → B : {Nb}pub(B)

Questions :

• Est-ce que Nb est secret entre A et B ?

• Lorsque B reçoit {Nb}pub(B), est-ce que ce message provient réellement de A ?

→ Une attaque fut trouvée en 1996, 17 ans après la première publication du protocole !

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.29/48-1

(45)

Protocole Needham-Schroeder à clefs publiques

A → B : {A, Na}pub(B)

• B → A : {Na, Nb}pub(A)

A → B : {Nb}pub(B)

Questions :

• Est-ce que Nb est secret entre A et B ?

• Lorsque B reçoit {Nb}pub(B), est-ce que ce message provient réellement de A ?

→ Une attaque fut trouvée en 1996, 17 ans après la première publication du protocole !

(46)

Protocole Needham-Schroeder à clefs publiques

A → B : {A, Na}pub(B)

B → A : {Na, Nb}pub(A)

• A → B : {Nb}pub(B)

Questions :

• Est-ce que Nb est secret entre A et B ?

• Lorsque B reçoit {Nb}pub(B), est-ce que ce message provient réellement de A ?

→ Une attaque fut trouvée en 1996, 17 ans après la première publication du protocole !

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.29/48-1

(47)

Protocole Needham-Schroeder à clefs publiques

A → B : {A, Na}pub(B)

B → A : {Na, Nb}pub(A)

A → B : {Nb}pub(B)

Questions :

• Est-ce que Nb est secret entre A et B ?

• Lorsque B reçoit {Nb}pub(B), est-ce que ce message provient réellement de A ?

→ Une attaque fut trouvée en 1996, 17 ans après la première publication du protocole !

(48)

Protocole Needham-Schroeder à clefs publiques

A → B : {A, Na}pub(B)

B → A : {Na, Nb}pub(A)

A → B : {Nb}pub(B)

Questions :

• Est-ce que Nb est secret entre A et B ?

• Lorsque B reçoit {Nb}pub(B), est-ce que ce message provient réellement de A ?

→ Une attaque fut trouvée en 1996, 17 ans après la première publication du protocole !

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.29/48-1

(49)

Protocole Needham-Schroeder à clefs publiques

A → B : {A, Na}pub(B)

B → A : {Na, Nb}pub(A)

A → B : {Nb}pub(B)

Questions :

• Est-ce que Nb est secret entre A et B ?

• Lorsque B reçoit {Nb}pub(B), est-ce que ce message provient réellement de A ?

(50)

Man in the middle attack

{A,Na}pub(P)

−−−−−−−→ −−−−−−−→{A,Na}pub(B)

{B,Na,Nb}pub(A)

←−−−−−−−−− ←−−−−−−−−−{B,Na,Nb}pub(A)

{Nb}pub(P)

−−−−−−→ −−−−−−→{Nb}pub(B) Correction : ajouter l’identité de B.

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.30/48-1

(51)

Man in the middle attack

{A,Na}pub(P)

−−−−−−−→ −−−−−−−→{A,Na}pub(B)

{ B,

Na,Nb}pub(A)

←−−−−−−−−− {

B,

Na,Nb}pub(A)

←−−−−−−−−−

{Nb}pub(P)

−−−−−−→ −−−−−−→{Nb}pub(B) Correction : ajouter l’identité de B.

(52)

Man in the middle attack

{A,Na}pub(P)

−−−−−−−→ −−−−−−−→{A,Na}pub(B)

{ B,

Na,Nb}pub(A)

←−−−−−−−−− {

B,

Na,Nb}pub(A)

←−−−−−−−−−

{Nb}pub(P)

−−−−−−→ −−−−−−→{Nb}pub(B) Correction : ajouter l’identité de B.

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.30/48-1

(53)

Man in the middle attack

{A,Na}pub(P)

−−−−−−−→ −−−−−−−→{A,Na}pub(B)

{B,Na,Nb}pub(A)

←−−−−−−−−− ←−−−−−−−−−{B,Na,Nb}pub(A)

{Nb}pub(P)

−−−−−−→ −−−−−−→{Nb}pub(B) Correction : ajouter l’identité de B.

(54)

Comment ça marche ?

• Les primitives cryptographiques

• Quelques protocoles simples avec chiffrement.

• Un protocole pour carte bancaire.

• Le protocole de Needham-Schroeder.

• Les protocoles Zero-knowledge.

• La vérification de la sûreté des protocoles : l’analyse de logiciels critiques en général.

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.31/48-1

(55)

Mais où est Charlie ?

But : trouver Charlie dans une grande image

(56)

Mais où est Charlie ?

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.33/48-1

(57)

Comment jouer ?

Comment prouver qu’on a trouvé Charlie sans révéler où il est ?

Deux solutions possibles :

• photocopier et découper,

• mettre un grand cache avec un trou de la forme de Charlie.

(58)

Comment jouer ?

Comment prouver qu’on a trouvé Charlie sans révéler où il est ?

Deux solutions possibles :

• photocopier et découper,

• mettre un grand cache avec un trou de la forme de Charlie.

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.34/48-1

(59)

Comment jouer ?

Comment prouver qu’on a trouvé Charlie sans révéler où il est ?

Deux solutions possibles :

• photocopier et découper,

(60)

Applications

Authentification

• Paiement par CB (pour prouver qu’on connaît le code confidentiel sans le révéler).

• Prouver son identité / appartenance à un groupe.

• ...

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.35/48-1

(61)

La caverne d’Ali Baba

(62)

La caverne d’Ali Baba - suite

Ali Baba veut convaincre Bob qu’il connaît le secret.

Ali Baba se cache dans la grotte.

Bob demande à Ali Baba de sortir à gauche ou à droite (il choisit).

Ali Baba sort du côté demandé.

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.37/48-1

(63)

La caverne d’Ali Baba - suite

Toute personne peut être convaincue qu’Ali Baba connaît la formule magique.

• sans rien apprendre du secret,

• sans pouvoir faire croire à son tour qu’il connaît la formule magique.

Pb : sujet éventuellement aux attaques “man-in-the-middle”.

(64)

Isomorphisme de graphes

Définition : On dit que deux graphes G1 et G2 sont isomorphes s’ils sont identiques au renommage σ des noeuds près, i.e. σ(G1) = G2. Pour des graphes extrêmement grands, il peut falloir plusieurs siècles pour savoir si deux graphes sont isomorphes.

Comment Alice peut-elle prouver à Bob qu’elle connaît un isomorphisme σ (le secret !) entre G1 et G2 ?

Protocole

1. Alice permute au hasard les noeuds du graphe G1 ou G2 pour obtenir un autre graphe H, isomorphe à G1. Alice connaît σ1 tel que H = σ1(G1) et σ2 tel que H = σ2(G2).

2. Alice envoie H à Bob.

3. Bob choisit i égal à 1 ou 2 au hasard.

4. Alice prouve que H est isomorphe à Gi en envoyant σi.

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.39/48-1

(65)

Isomorphisme de graphes

Définition : On dit que deux graphes G1 et G2 sont isomorphes s’ils sont identiques au renommage σ des noeuds près, i.e. σ(G1) = G2. Pour des graphes extrêmement grands, il peut falloir plusieurs siècles pour savoir si deux graphes sont isomorphes.

Comment Alice peut-elle prouver à Bob qu’elle connaît un isomorphisme σ (le secret !) entre G1 et G2 ?

Protocole

1. Alice permute au hasard les noeuds du graphe G1 ou G2 pour obtenir un autre graphe H, isomorphe à G1. Alice connaît σ1 tel que H = σ1(G1) et σ2 tel que H = σ2(G2).

2. Alice envoie H à Bob.

(66)

Attaque de « l’homme au milieu »

Je connais le secret

−−−−−−−−−−−→

Charlie veut convaincre Bob qu’il connaît le secret.

→ Charlie demande à Ali Baba de le convaincre qu’il connaît le secret !

gauche/droite

−−−−−−−−→ gauche/droite

−−−−−−−−→

gagn´e

←−−− ←−−−gagn´e

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.40/48-1

(67)

Attaque de « l’homme au milieu »

Je connais le secret

−−−−−−−−−−−→

Charlie veut convaincre Bob qu’il connaît le secret.

→ Charlie demande à Ali Baba de le convaincre qu’il connaît le secret !

gauche/droite

−−−−−−−−→ gauche/droite

−−−−−−−−→

(68)

Comment ça marche ?

• Les primitives cryptographiques

• Quelques protocoles simples avec chiffrement.

• Un protocole pour carte bancaire.

• Le protocole de Needham-Schroeder.

• Les protocoles Zero-knowledge.

• La vérification de la sûreté des protocoles : l’analyse de logiciels critiques en général.

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.41/48-1

(69)

Airbus A380

(70)

Fusée Ariane 5

11 décembre 2002 : vol inaugural

Un crash dû ... à un bug logiciel !

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.43/48-1

(71)

Sonde Mars Climate Orbiter

(72)

Autres exemples

• Régulateur de vitesse

• Régulateur cardiaque

• ...

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.45/48-1

(73)

Comment fait-on ?

1. Tests

• à la main ou génération automatique

• vérification d’un nombre fini de comportements 2. Vérification (preuve formelle)

• à la main ou à l’aide d’ordinateur

• vérification de tous les comportements possibles

• plus difficile

(74)

Comment fait-on ?

1. Tests

• à la main ou génération automatique

• vérification d’un nombre fini de comportements 2. Vérification (preuve formelle)

• à la main ou à l’aide d’ordinateur

• vérification de tous les comportements possibles

• plus difficile

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.46/48-1

(75)

La vérification formelle

Code Modèle

Ã

(76)

Plan des cours à venir

1. La modélisation des messages (aujourd’hui)

termes, unification, systèmes d’inférence, localité 2. Vérification pour un nombre borné de sessions

• résolution de contraintes

• le secret est décidable (co-NP-complet)

3. Vérification pour un nombre non borné de sessions (2 cours)

• impossibilité dans le cas général

• introduction aux clauses de Horn : définitions, modèle de Herbrand, résolutions, stratégie de résolution.

• retour aux protocoles cryptographiques 4. Introduction à la cryptographie

Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.48/48-1

Références

Documents relatifs

Nous allons exploiter l’arbre de recherche tel que pour chaque nœud de celui-ci, les fils sont le résultat de l’application d’une règle de réécriture à la preuve attachée

De plus, nous allons aussi spécialiser les opérateurs de chiffrement en fonction d’un paramètre additionnel définissant l’algorithme de chiffrement utilisé, ce qui nous

La concat´enation de ces deux mots de petit poids formera la cl´e de signature d’un utilisateur qui, via notre adaptation du protcole de Stern (Concatenated Stern’s Protocol,

CHiC Cultural Heritage in CLEF a benchmarking activity to investigate systematic and large-scale evaluation of cultural heritage digital libraries and information access

Four tasks were organised: the Prior Art Candidate Search task for finding potential prior art for a document, the Image-based Document Retrieval for finding patent

CLEF 2010 had two different types of labs: benchmarking evaluations for specific information access problem(s), encompassing activities similar to previ- ous CLEF campaign tracks,

Pour assurer la condentialité de ses messages, le professeur chire les notes avec la clef RSA du secrétariat.. Pour assurer l'authenticité des messages contenant les notes,

● la machine client déchiffre la clef privée de l'utilisateur et l'utilise pour générer une. signature qui est envoyée