D31: Protocoles Cryptographiques Certificats et échange de clés Nicolas Méloni Master 2: 1er semestre (2014/2015) Nicolas Méloni D31: Protocoles Cryptographiques 1/21
Introduction Protocole Diffie Hellman: Alice Génère a N Calcule h A = g a Choisissent G =< g > Bob Génère b N Calcule h B = g b h A h B Calcule g ab = h a B Calcule g ab = h b A Nicolas Méloni D31: Protocoles Cryptographiques 2/21
Génère a N h a = g a Génère a N h a = g a Introduction Attaque de l intrus du milieu: Alice Attaquant Bob h b = g b Génère b N h b = g b Génère b N h ab = g ab h ab, h a b h a b = g a b Nicolas Méloni D31: Protocoles Cryptographiques 3/21
Introduction Conclusion Pour Alice et Bob le protocole s est déroulé normalement L attaquant a peut chiffrer et déchiffrer tous les messages qu Alice et Bob s échangent ATTENTION Cette attaque fonctionne face à n importe quel cryptosystème à clé publique Nicolas Méloni D31: Protocoles Cryptographiques 4/21
Certification Problématique Idée Assurer l authenticité des clés publiques Utiliser un protocole d authentification pour vérifier la validité et l origine des clés Nicolas Méloni D31: Protocoles Cryptographiques 5/21
Certification Certificat électronique Identité + clé publique numéro de version, période de validité etc signature de l ensemble par une authorité de certification Authorité de certification (CA) Tiers de confiance Certifit des clés pupliques en les signant à l aide de sa propre clé privée (on parle souvent de root key) Nicolas Méloni D31: Protocoles Cryptographiques 6/21
Processus de certification 0. (ver CA ) 1. (A, K puba ) 2. sig CA (A K puba ) CA 0. (ver CA ) Alice 3. (A, K A, sig CA (A K puba )) Bob 4. ver CA (A K A, s A ) = vrai? Nicolas Méloni D31: Protocoles Cryptographiques 7/21
Processus de certification Remarques Une seule fonction de vérification a besoin d être distribuée Il est plus facile de s assurer de l authenticité d une seule clé Les navigateurs web possèdent dès l installation une liste de meta-certificats assurant l authenticité des clés de nombreuses authorités Nicolas Méloni D31: Protocoles Cryptographiques 8/21
Infrastructure à clé publique (PKI) Cycle de vie d un certificat enregistrement de l utilisateur génération de clé et distribution fabrication du certificat révocation ou expiration archivage Nicolas Méloni D31: Protocoles Cryptographiques 9/21
Infrastructure à clé publique (PKI) Un certificat n est en général pas signé par une autorité de confiance Il faut remonter une chaîne de certificats Modèles de confiance Hiérarchie stricte Autorités en réseau Navigateur web Nicolas Méloni D31: Protocoles Cryptographiques 10/21
Protocole Station-to-Station Idée Générale Combiner le protocole de Diffie-Hellman avec un schéma d authentification Assurer la validité des fonctions de verification de signature grâce à un certificat Paramètres Un groupe G, α G un élément d ordre n Des fonctions de signatures (sig U, ver U ) pour A et B Des certificatats Cert(U) = (U, ver U, sig CA (U, ver U )) Nicolas Méloni D31: Protocoles Cryptographiques 11/21
Protocole Station-to-Station Alice Bob Génère a N β a = α a βa, Cert(A) Génère b N ver B (y B ) = Vrai? y A = sig A (A β B β A ) β b, y B, Cert(B) β b = α b y B = sig b (B β a β b ) K = g ab = h a B y A ver A (y A ) = Vrai? K = g ab = h b A Nicolas Méloni D31: Protocoles Cryptographiques 12/21
Protocole Station-to-Station Attaque MITM L attaquant voit passer α a et le remplace par α a Il reçoit en retour α b et sig B (B α a α b ) Pour poursuivre l attaque, il doit remplacer α b par α b canal et dans la signature dans le C est impossible sans connaître sig B Nicolas Méloni D31: Protocoles Cryptographiques 13/21
Protocole d échange de clé MTI MTI (Matsumoto-Takashima-Imai) Version modifiée du protocole de Diffie-Hellman Échange de clé en 2 passes et sans signatures Parmètres G un groupe, α G un élément d ordre n A (resp. B) possède un exposant privé s a (resp. s b ) et une donnée publique β a = α sa (resp. β b = α s b) certifiée par une authorité de certification Nicolas Méloni D31: Protocoles Cryptographiques 14/21
Protocole d échange de clé MTI Alice Génère r a N γ a = α ra K = γ sa b βra b γ a, Cert(A) γ b, Cert(B) Bob Génère r b N γ b = α r b K = γ s b a β r b a Remarques On a bien γ sa b βra b = αras b+r b s a = γ s b a β r b a On peut vérifier que le protocole est sûr face à un attaquant passif ou face à l attaque MITM Nicolas Méloni D31: Protocoles Cryptographiques 15/21
Attaque par clé de session connue Modèle d attaque L attaquant peut demander la clé de session K i d un certain nombre de session S i Doit être capable de calculer la clé K pour une autre session S dans laquelle il est actif Attaque contre MTI Lancer deux sessions parallèles Obtenir la clé pour l une et s en servir pour calculer la clé pour l autre Nicolas Méloni D31: Protocoles Cryptographiques 16/21
Attaque par clé de session connue S S 1. Cert(A), γ a 2. Cert(B), γ b Alice Att. Bob 4. Cert(B), γ b 3. Cert(A), γ a Déroulement de l attaque L Attaquant ouvre deux sessions en parallèle S et S Réclame la clé de la session S En déduit la clé de la session S (qui est identique) Nicolas Méloni D31: Protocoles Cryptographiques 17/21
Attaque par clé de session connue Analyse L attaque fonctionne grâce à la symétrie du calcul de K: A calcule γ sa b βra b B calcule γ s b a β r b a Ainsi K((s a, r a ), s b, r b )) = K((s b, r b ), (s a, r a )) Contre mesure Une contre mesure simple consiste à utiliser une fonction de hachage et ordonner le calcul de K: K = h(α ras b α r bs a ) où A est initiateur et B le receveur Les clés des session S et S sont alors différentes Nicolas Méloni D31: Protocoles Cryptographiques 18/21
Attaque par clé de session connue Attaque triangulaire de Burnester L attaquant observe une première session S entre Alice et Bob Il initie une session S 1 avec Alice en utilisant le paramètre de Bob de la session S Il initie une session S 2 avec Bob en utilisant le paramètre d Alice de la session S Il réclame les clés de ces deux sessions Nicolas Méloni D31: Protocoles Cryptographiques 19/21
Attaque par clé de session connue Alice Att. Bob S Cert(A), γ a Cert(B), γ b S 1 S 2 Cert(O), γ b Cert(O), γ a Cert(A), γ a Cert(B), γ b Nicolas Méloni D31: Protocoles Cryptographiques 20/21
Attaque par clé de session connue Attaque triangulaire de Burnester Les clés de session sont: K = α s Ar B +r A s B K 1 = α s 0r A +r Os A K 2 = α s 0r B +r Os B Après obtention de K 1 et K 2 on calcule: K = K 1K 2 (γ aγ b )s O. Nicolas Méloni D31: Protocoles Cryptographiques 21/21