Petite introduction
aux protocoles cryptographiques
Master d’informatique M2
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
Signature électronique
- vérifiable - authentique
- non-répudiation (je n’ai jamais signé ce texte...)
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
Paiement par carte bleue
• Est-ce qu’il s’agit d’une vraie carte ?
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
Porte-monnaie électronique
• Pas de création de fausse monnaie
• Pas de création de faux porte-monnaie
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
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 ?
• . . .
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
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.
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
Le chiffrement autrefois
• Le chiffrement de César : décalage des lettres
• Disque de chiffrement (Léone Battista Alberti 1466)
→ sujet à des analyses statistiques
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
Le chiffrement : période technique
Substitutions et permutations automatiques
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
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
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
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
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
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.
É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
É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
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
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
−−−−−−−−−−−−→
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
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
−−−−−−−−−−−−→
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
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
←−−−−−−−−−−−−−
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
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.
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
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)}K−1
B ,
• clef secrète KCB.
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
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
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
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).
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
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
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
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
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
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.
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
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 !
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
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 !
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
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 ?
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
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.
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
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.
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
Mais où est Charlie ?
But : trouver Charlie dans une grande image
Mais où est Charlie ?
Théorie de la sécurité ML-3-8 - 23 novembre 2005 Les protocoles cryptographiques– p.33/48-1
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.
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
Comment jouer ?
Comment prouver qu’on a trouvé Charlie sans révéler où il est ?
Deux solutions possibles :
• photocopier et découper,
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
La caverne d’Ali Baba
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
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”.
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
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.
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
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
−−−−−−−−→
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
Airbus A380
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
Sonde Mars Climate Orbiter
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
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
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
La vérification formelle
Code Modèle
Ã
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