CRYPTOGRAPHIE Authentification et échange de clé E. Bresson SGDN/DCSSI Laboratoire de cryptographie Emmanuel.Bresson@sgdn.gouv.fr
L authentification symétrique I. AUTHENTIFICATION I.1. L AUTHENTIFICATION SYMÉTRIQUE Organisation de la section «L AUTHENTIFICATION SYMÉTRIQUE» Principes généraux Message Authentication Codes (MACs) AUTHENTIFICATION 2/58
L authentification symétrique Principes généraux MACs MOTIVATION: L INTÉGRITÉ Assurance que les données n ont pas été modifiées au cours de la communication (ou pendant leur stockage sur un serveur) NB: notion indépendante (mais complémentaire) de la confidentialité AUTHENTIFICATION 3/58
L authentification symétrique Principes généraux MACs AUTHENTIFICATION DE DONNÉES m A auth V Sécurité Impossible de créer un authentifiant valide sans la clé AUTHENTIFICATION 4/58
L authentification symétrique Principes généraux MACs AUTHENTIFICATION SYMÉTRIQUE Particularité du chiffrement symétrique Le fait que le message soit correctement déchiffré par un algorithme symétrique garantit l authenticité de l expéditeur vis-à-vis du destinataire (et de lui seulement) Mais: La longueur de l authentifiant (chiffré) = celle du message Si le message doit être authentifié mais envoyé en clair, la longueur totale des données à envoyer est double (authentifier une image iso DVD...) AUTHENTIFICATION 5/58
L authentification symétrique Principes généraux MACs MODES OPÉRATOIRES POUR L INTÉGRITÉ Un mode opératoire de chiffrement par bloc ne fournit pas, en général, d intégrité Mode ECB: chaque bloc est indépendant = on peut tronquer, couper ou mélanger les blocs de message Mode CBC: les blocs ne sont plus indépendants, mais on peut attaquer via l IV AUTHENTIFICATION 6/58
L authentification symétrique Généralités Message Authentication Codes (MACs) MAC (MESSAGE AUTHENTICATION CODES) Définition Un MAC est un authentifiant de petite taille (64, 128 ou 256 bits), apposé au message et qui assure son authenticité auprès du destinataire Clé symétrique: cryptographie à clé secrète Construction de MACs: principalement à partir de chiffrement par blocs : CBC-MAC à partir de fonctions de hachage : HMAC AUTHENTIFICATION 7/58
L authentification symétrique Généralités Message Authentication Codes (MACs) ATTAQUE CONTRE LES MACS Quels sont les moyens dont dispose l attaquant? Attaque sans message: aucune information particulière Attaque à messages connus: il dispose d une liste de message correctement authentifiés Attaque à messages choisis: il peut obtenir le MACs de messages arbitraires Notion d oracle de génération de MAC Si le choix des messages à authentifier peut se faire au fur et à mesure, en fonction des réponses reçues, l attaque est dite adaptative AUTHENTIFICATION 8/58
L authentification symétrique Généralités Message Authentication Codes (MACs) SÉCURITÉ DES MACS On veut empêcher un attaquant de produire un MAC valide Quel peut-être plus précisément le but de l attaquant? Cassage total: il retrouve la clé secrète Forge universelle: il devient capable de produire un MAC valide sur tout message Forge existentielle: il réussit à produire un message accompagné d un MAC valide Distinction d aléa: il est capable de distinguer les vrais MACs de données aléatoires AUTHENTIFICATION 9/58
L authentification symétrique Généralités Message Authentication Codes (MACs) BORNES DE SÉCURITÉ INCONDITIONNELLES Soit l la longueur des MACs MAC choisi au hasard Pour n importe quel message m, le choix d une valeur aléatoire de l bits fournit un MAC valide avec une probabilité 1/2 l Paradoxe des anniversaires Parmi 2 l/2 couples (m,mac) aléatoires, il y a statistiquement deux MACs qui sont identiques: on peut souvent exploiter cette collision pour forger le MAC d un nouveau message. AUTHENTIFICATION 10/58
L authentification symétrique Généralités Message Authentication Codes (MACs) MACS VERSUS SIGNATURES Signatures: MACs: mécanisme à clé publique (tout le monde peut vérifier) propriété de non répudiation authentification du signataire intégrité des données utilisées dans les certificats mécanisme à clé secrète (vérification ciblée) authentification de l émetteur intégrité des données plus efficaces que les signatures AUTHENTIFICATION 11/58
L authentification symétrique Généralités Message Authentication Codes (MACs) UN EXEMPLE DE MAC NAÏF Soit F k une fonction pseudo-aléatoire et m un message de k blocs à authentifier 1. On découpe m en blocs m 1, m 2,, m n 2. On évalue F k sur chaque bloc, puis on XOR MAC k (m) = F k (m 1 ) F k (m 2 ) F k (m n ) Non sûr! 1. On peut échanger l ordre des blocs 2. Pour tout m, le couple (m m, 0) est valide 3. Si on connaît (m 1, t 1 ) et (m 2, t 2 ), alors (m 1 m 2, t 1 t 2 ) est valide AUTHENTIFICATION 12/58
L authentification symétrique Généralités Message Authentication Codes (MACs) LE CBC-MAC BASIQUE Soit m un message à authentifier 1. On découpe m en blocs m 1, m 2,, m n 2. On applique des chiffrements-xor successifs: m 0 m 1 m 2 m 3 E k E k E k E k t Conditions d emploi 1. Ne jamais utiliser d IV 2. N authentifier que des messages de taille fixe AUTHENTIFICATION 13/58
L authentification symétrique Généralités Message Authentication Codes (MACs) RÈGLE 1: NE PAS UTILISER D IV Soit m = m 1 m 2 un message à authentifier Pour une valeur IV, le tag est: t = E k (m 2 E k (m 1 IV )) La valeur IV = IV m 1 m 1 authentifier le message m 1 m 2 peut être utilisée pour AUTHENTIFICATION 14/58
L authentification symétrique Généralités Message Authentication Codes (MACs) RÈGLE 2: MESSAGES DE TAILLE FIXE UNIQUEMENT On concatène astucieusement deux messages Soit m = m 1 m 2 m 3 un message dont le MAC est t Soit m = m 1 m 2 un message dont le MAC est t Alors le MAC du message m 1 m 2 m 3 m 1 t m 2 est t AUTHENTIFICATION 15/58
L authentification symétrique Généralités Message Authentication Codes (MACs) CBC-MAC: PREUVE DE SÉCURITÉ Théorème CBC-MAC On authentifie des messages de m blocs de n bits, L attaquant fait authentifier q messages, alors: il peut distinguer le MAC d une authentification aléatoire avec une probabilité majorée par mq 2 /2 n En pratique: 1. Si q 2 n/2, on ne prouve rien... 2. Si q = 2 n/2, on peut même forger un MAC valide AUTHENTIFICATION 16/58
L authentification symétrique Généralités Message Authentication Codes (MACs) CBC-MAC : PREUVE DE SÉCURITÉ Définition (prefix-free) Un ensemble de message est dit prefix-free si pour tous messages M N il n existe pas de chaîne de bits A telle que N = M A. Cas particulier : tous les messages sont constitués d exactement n blocs de l bits. Théorème CBC-MAC Si l attaquant fait authentifier q messages prefix-free constitués d au plus n blocs, alors il peut distinguer le MAC d une authentification aléatoire avec une probabilité majorée par nq 2 /2 l (12 + 64n 3 /2 l ). AUTHENTIFICATION 17/58
L authentification symétrique Généralités Message Authentication Codes (MACs) CBC-MAC : PREUVE DE SÉCURITÉ (SUITE) Théorème CBC-MAC Si l attaquant fait authentifier q messages prefix-free constitués d au plus n blocs, alors il peut distinguer le MAC d une authentification aléatoire avec une probabilité majorée par nq 2 /2 l (12 + 64n 3 /2 l ). AUTHENTIFICATION 18/58
L authentification symétrique Généralités Message Authentication Codes (MACs) CBC-MAC : BIRTHDAY ATTACK Soient R, U deux blocs quelconques, et M i un ensemble de 2 l/2 messages de chacun n 1 blocs 1. générer les MACs T i pour tous les messages de n blocs M i R 2. si T i = T j (alors CBC-MAC(M i ) = CBC-MAC(M j )) 3. générer le MAC τ de M i U, c est aussi celui de M j U. AUTHENTIFICATION 19/58
L authentification symétrique Généralités Message Authentication Codes (MACs) CBC-MAC : ATTAQUE PAR LE PARADOXE DES ANNIVERSAIRES (SUITE) AUTHENTIFICATION 20/58
L authentification symétrique Généralités Message Authentication Codes (MACs) EMAC = LE CBC-MAC AMÉLIORÉ EMAC = CBC-MAC en rechiffrant le dernier bloc sorti 1. On découpe m en blocs m 1, m 2,, m n 2. On applique des chiffrements-xor successifs 3. On rechiffre le dernier bloc avec une autre clé: m 0 m 1 m 2 m 3 E k E k E k E k E k t Conditions d emploi Ne pas utiliser la même clé pour surchiffrer AUTHENTIFICATION 21/58
L authentification symétrique Généralités Message Authentication Codes (MACs) EMAC = LE CBC-MAC AMÉLIORÉ EMAC jouit d une preuve de sécurité 1. Après q requêtes, la probabilité de forger un nouveau MAC valide est inférieure à q 2 /2 t+1 (où t est la longueur du tag) 2. Mais si q = 2 t/2, aucune preuve, il y a même une attaque AUTHENTIFICATION 22/58
L authentification symétrique Généralités Message Authentication Codes (MACs) COLLISION SUR EMAC Attaque en 2 t/2 calculs de MAC Par le paradoxe des anniversaires, il existe i et j tels que t = EMAC(M i ) = EMAC(M j ) R E k E k E k E k E k Nouvelle collision t! t On demande le MAC de M i R où R est un bloc quelconque C est aussi un MAC valide pour M j R AUTHENTIFICATION 23/58
L authentification symétrique Généralités Message Authentication Codes (MACs) HMAC Soit M un message à authentifier avec la clé k : ( HMAC k (M) = H k opad ) H(k ipad M) ipad (inner padding) = 0x36, répété sur la longueur de H opad (outer padding) = 0x5C, répété sur la longueur de H Efficacité Très efficace: hachage d un long message, puis hachage d un bloc retenu par l IETF dans IPSEC AUTHENTIFICATION 24/58
Généralités Échange de clé II. ÉCHANGE DE CLÉ II.1. GÉNÉRALITÉS Problématique Modélisation Organisation de la section «GÉNÉRALITÉS» ÉCHANGE DE CLÉ 25/58
Généralités Échange de clé Problématique Modèle PROBLÉMATIQUE Comment s authentifier? Comment se mettre d accord sur une valeur secrète commune? (et pourquoi) ÉCHANGE DE CLÉ 26/58
Généralités Échange de clé Problématique Modèle ÉCHANGE DE CLÉS Chiffrer et authentifier les communications un besoin vital aussi bien en confidentialité qu en intégrité une nécessité de performances Utilisation de cryptographie symétrique (clé commune) Question Comment établir la clé de session? ÉCHANGE DE CLÉ 27/58
Généralités Échange de clé Problématique Modèle ÉCHANGE DE CLÉS Plusieurs modes d établissement de clé (secrète): Distribution de clés: un serveur choisit une clé et la fait «parvenir» à tout le monde Échange de clés: tout le monde participe à la négociation de la clé ÉCHANGE DE CLÉ 28/58
Généralités Échange de clé Problématique Modèle AUTHENTIFICATION Situation naturelle Un client s authentifie auprès d un serveur ÉCHANGE DE CLÉ 29/58
Généralités Échange de clé Problématique Modèle AUTHENTIFICATION Un «client» s authentifie auprès d un «serveur» Situations typiques: contrôle d accès connexion internet, VPN, téléphonie mobile... Principe général Le serveur «met à l épreuve» le client en lui faisant effectuer une opération que seul le client légitime est en mesure de mener à bien correctement ÉCHANGE DE CLÉ 30/58
Généralités Échange de clé Problématique Modèle AUTHENTIFICATION Example (Défi/réponse) Déchiffrement d une quantité aléatoire envoyée par le serveur Alice, Hello Hello, R s = RSA 1 (R) test s e = R? ÉCHANGE DE CLÉ 31/58
Généralités Échange de clé Problématique Modélisation AUTHENTIFICATION Deux cadres distincts pour l authentification Pas d attaque active : après l authentification, le serveur sait qu il dialogue toujours avec le client Possibilité d attaque active : l attaquant peut se substituer au client authentifié après l authentification = recours à l échange de clé ÉCHANGE DE CLÉ 32/58
Généralités Échange de clé Problématique Modélisation ÉCHANGE DE CLÉ Terminologie impropre : plutôt mise en accord de clé Définition (Mise en accord de clé) Génération d un secret commun («clé de session») par deux entités dialoguant sur un canal non sûr Deux scénarios d attaques possibles: attaques passives: canal écouté seulement attaques actives arbitraires ÉCHANGE DE CLÉ 33/58
Généralités Problématique Échange de clé Modélisation PROTOCOLE DE DIFFIE-HELLMAN Permet à deux acteurs d établir un secret commun à travers un canal public x g x g y y La clé commune est g xy ÉCHANGE DE CLÉ 34/58
Généralités Échange de clé Problématique Modélisation ÉCHANGE DE CLÉ ET AUTHENTIFICATION Sans authentification : on ne vérifie pas à qui on parle (on fait confiance) La propriété recherchée est alors la confidentialité de la clé propriété incontournable dans un échange de clé quelle confidentialité? complète (l adversaire A ne peut pas calculer k) indistinguabilité (A ne peut distinguer k d un aléa) quel environnement? quelles exigences si plusieurs sessions en parallèle? attaques passives ou actives (sessions concurrentes)? ÉCHANGE DE CLÉ 35/58
Généralités Échange de clé Problématique Modélisation ÉCHANGE DE CLÉ ET AUTHENTIFICATION Authentification : seuls les utilisateurs légitimes peuvent s authentifier L authentification peut être: unilatérale (p.ex. https) bilatérale, ou mutuelle: chaque partie procède à une telle vérification échange de clé authentifié (AKE) ne réussit que si les identités sont authentiques Même questions sur l environnement et le type d attaquant ÉCHANGE DE CLÉ 36/58
Généralités Problématique Échange de clé Modélisation PROPRIÉTÉS ADDITIONNELLES Intégrité de la clé de session Un attaquant actif ne doit pas pouvoir manipuler les échanges de façon à modifier la valeur finale de la clé de session Risques possibles: l attaquant peut faire échouer le protocole l attaquant peut imposer certains bits de la clé l attaquant peut imposer une valeur de la clé l attaquant peut lier la nouvelle clé aux précédentes (exemple: une même clé (inconnue) est établie deux fois) ÉCHANGE DE CLÉ 37/58
Généralités Problématique Échange de clé Modélisation PROPRIÉTÉS ADDITIONNELLES Impossibilité de contrôler la clé de session Aucun des deux participants d un échange de clé ne doit pouvoir imposer la valeur finale de la clé de session Risques encourus un participant peut imposer une «clé faible» ou simplement une clé connue d un tiers Difficile à garantir en pratique... ÉCHANGE DE CLÉ 38/58
Généralités Échange de clé Problématique Modélisation «SESSION-ID» ET ATTAQUES ACTIVES Une technique simple pour «empêcher» toute altération des messages du protocole : Inclure dans la dérivation de clé un session-id, c-à-d. une quantité dépendant de l ensemble des messages échangés ÉCHANGE DE CLÉ 39/58
Généralités Échange de clé II. ÉCHANGE DE CLÉ II.2. ÉCHANGE DE CLÉ Diffie-Hellman Diffie-Hellman signé Protocole TLS Organisation de la section «ÉCHANGE DE CLÉ» ÉCHANGE DE CLÉ 40/58
Généralités Échange de clé Diffie-Hellman DH signé TLS FAUX ÉCHANGE DE CLÉ Envoie sa clé publique pk E pk (r) aléa r Clé commune = r Bob a manifestement le contrôle de la clé! avantage : si Alice prouve ensuite sa connaissance de la clé, elle s authentifie utilisé dans SSH v1 et SSL ÉCHANGE DE CLÉ 41/58
Généralités Échange de clé Diffie-Hellman DH signé TLS DIFFIE-HELLMAN AUTHENTIFIÉ Protocoles d échange de clé proposé en 1976 article fondateur de la clé publique repose sur la notion de fonction à sens unique non authentifié dans la version de base ÉCHANGE DE CLÉ 42/58
Généralités Échange de clé Diffie-Hellman DH signé TLS ÉCHANGE DE CLÉ DIFFIE- HELLMAN choisit x g x g y choisit y Valeur secrète commune K = g xy = (g x ) y = (g y ) x mod p ou sur courbe elliptique forward-secure : pas de clés long-terme! ÉCHANGE DE CLÉ 43/58
Généralités Échange de clé Diffie-Hellman DH signé TLS CLÉS ÉPHÉMÈRES ET FORWARD-SECRECY Forward-secrecy : les clés de session ne sont pas mises en danger par une fuite des clés long terme Un moyen simple d y parvenir : utiliser des clés publiques éphémères pour protéger la clé de session éventuellement en combinaison avec des clés long-terme Les clés privées éphémères sont effacées sitôt l échange terminé ex. : «Server key» de SSH v1 ÉCHANGE DE CLÉ 44/58
Généralités Échange de clé DH Diffie-Hellman signé TLS ÉCHANGE DE CLÉ DIFFIE-HELLMAN ET ATTAQUES ACTIVES Le protocole est vulnérable aux attaques actives «par le milieu» (man-in-the-middle) : choisit x g x g x g y g y choisit y K A = g xy K B = g x y ÉCHANGE DE CLÉ 45/58
Généralités Échange de clé DH Diffie-Hellman signé TLS DIFFIE-HELLMAN SIGNÉ V1 choisit x vérifie A, g x, sign A (g x ) B, g y, sign B (g y ) vérifie choisit y Évite les attaques par le milieu : impossible pour un attaquant de fournir sign A (g x ) Rejeu possible : si un couple (g x, sign A (g x )) est capturé, il peut être utilisé indéfiniment pour s authentifier comme A mais on ne peut calculer la clé correspondante ÉCHANGE DE CLÉ 46/58
Généralités Échange de clé DH Diffie-Hellman signé TLS STATION-TO- STATION PROTOCOL Diffie-Hellman signé v2 choisit x vérifie A, g x B, g y, sign B (g y, g x ) A, sign A (g x, g y ) choisit y vérifie Le meilleur des deux mondes? évite les attaques par le milieu : impossible pour un attaquant de fournir sign B (g x, g y ) évite le rejeu : la valeur DH du correspondant est aussi signée Mais... ÉCHANGE DE CLÉ 47/58
Généralités Échange de clé DH Diffie-Hellman signé TLS USURPATION D IDENTITÉ x Alice Charlie Bob A, g x C, g x B, g y, sign B (g x, g y ) B, g y, sign B (g x, g y ) A, sign A (g y, g x ) C, sign C (g y, g x ) y Usurpation d identité: tous les messages envoyés par Alice sont vus par Bob comme venant de Charlie Charlie ne connaît pas la clé g xy «Unknown Key-Share attack» (UKS) ÉCHANGE DE CLÉ 48/58
Généralités Échange de clé DH Diffie-Hellman signé TLS USURPATION D IDENTITÉ L usurpation peut avoir des effets catastrophiques Bob est une banque... Alice et Charlie des clients Alice crédite son compte avec de la monnaie électronique la banque crédite le compte de Charlie! ÉCHANGE DE CLÉ 49/58
Généralités Échange de clé DH Diffie-Hellman signé TLS USURPATION D IDENTITÉ L usurpation peut avoir des effets catastrophiques Bob est un central de commandes Alice et Charlie deux avions Bob demande à Charlie sur un secure channel établi grâce à la clé commune «autodestruction immédiate» L ordre est exécuté par Alice! ÉCHANGE DE CLÉ 50/58
Généralités Échange de clé DH Diffie-Hellman signé TLS DIFFIE-HELLMAN SIGNÉ V3 choisit x vérifie A, g x B, g y, sign B (B, g y, g x, A) A, sign A (A, g x, g y, B) choisit y vérifie Preuve de sécurité : forward-secrecy, intégrité de la clé, protection des secrets long-terme (clés de signature),... Norme ISO/IEC 9798-3 ÉCHANGE DE CLÉ 51/58
Généralités Échange de clé DH DH signé Protocole TLS INTRODUCTION SUR SSL/TLS Protocole SSL (Secure Socket Layer): introduit par Netscape Inc. pour sécuriser les transactions protocole de niveau applicatif déployé (1994) avec SSL v2...(des 56 bits, MD5) 1996: passage à SSL v3 (SSL v2 peu sûr et presque plus utilisé) puis TLS 1.0 ( SSL v3) en 1999 actuellement TLS 1.2 (janvier 2008), RFC 4346 ÉCHANGE DE CLÉ 52/58
Généralités Échange de clé DH DH signé Protocole TLS OBJECTIFS DE SÉCURITÉ Fournir un API sécurisée par le biais d objets pouvant être vus comme des sockets par l application qui les utilise Effort de compatibilité: redéploiement d applications existantes sur-couche sécurisése des protocoles courants: HTTP, POP, IMAP,... ÉCHANGE DE CLÉ 53/58
Généralités Échange de clé DH DH signé Protocole TLS DÉROULEMENT D UN PROTOCOLE L établissement (handshake) d une session protégée par TLS se déroule en trois phases: 1. négociation d un algorithme à utiliser (cipher suites) 2. mise en accord de clé de session (key exchange) 3. chiffrement et authentification du flux L authentification est le plus souvent unilatérale (serveur) l authentification mutuelle est lourde à déployer des variantes existent (TLS-PSK, TLS-SRP) ÉCHANGE DE CLÉ 54/58
Généralités Échange de clé DH DH signé Protocole TLS DÉROULEMENT D UN PROTOCOLE Preferred cipher ClientHello Ciphersuite, Random Verify Client Chosen ciphersuite, Random ServerHello Certificate ServerKeyExchange ServerHelloDone Serveur X509 (+ CertificateRequest) ClientKeyExchange PreMasterSecret, Public key ChangeCipherSpec Finished HMAC encrypted and MAC ChangeCipherSpec if verification OK Finished encrypted + MAC ÉCHANGE DE CLÉ 55/58
Généralités Échange de clé DH DH signé Protocole TLS FAIBLESSES DANS SSL2 Un certain nombres de vulnérabilités existaient dans SSLv2 un simple haché (pas de clé) au lieu d un MAC une même clé utilisée pour chiffrement et authentification MAC simpliste et utilisant MD5 seulement fait confiance à TCP pour terminer les données L emploi de SSL v2 est désactivé dans les navigateurs récents ÉCHANGE DE CLÉ 56/58
Généralités Échange de clé DH DH signé Protocole TLS UTILISATIONS Au-dessus d une couche de transport existante pour sécuriser les protocoles classiques: HTTPS, IMAPS, SMTPS... potentiellemenet en utilisant un wrapper (ex: Stunnel) Sécuriser un réseau entier (VPN) au niveau applicatif et non réseau (ex: IPSEC) ÉCHANGE DE CLÉ 57/58
Généralités Échange de clé DH DH signé Protocole TLS IMPLÉMENTATIONS Outil populaire: OpenSSL moins une librairie qu un protocole peu modulaire, beaucoup d améliorations possibles updates fréquents vulnérabilités trouvées ÉCHANGE DE CLÉ 58/58