Sites Inria

English version

Sécurité

5/03/2015

FREAK : comment trouver la faille

Portrait de Karthikeyan Bhargavan Karthikeyan Bhargavan

L’équipe Prosecco d'Inria, dirigée par Karthikeyan Bhargavan, a découvert en novembre dernier une faille dans le protocole TLS, utilisé pour sécuriser les échanges sur internet. Les explications d’Antoine Delignat-Lavaud, doctorant au sein de l’équipe.

Qui a découvert la faille Freak ?

La faille a été découverte au sein de l'équipe Prosecco, à Inria-Paris Rocquencourt, dirigée par Karthikeyan Bhargavan . Nous travaillions sur la recherche et l'exploitation de vulnérabilités dans le protocole TLS avec un logiciel de test créé par Alfredo Pironti , avec l’aide de Benjamin Beurdouche , lorsqu’il était stagiaire dans notre équipe. Ce projet avait débuté au cours de l’été 2014 et s’est terminé en novembre.

La faille Freak est-elle une « négligence », comme cela a été écrit ?

Il faut savoir que tester les implémentations de protocoles de sécurité n’est pas un exercice facile. Nous cherchions à tester de manière exhaustive si les implémentations de TLS respectent la séquence de messages associés aux différentes familles d’algorithmes cryptographiques prises en charge par le protocole, ce qui n’avait jamais été fait auparavant.

Notre approche consiste à soumettre à ces implémentations des séquences incorrectes de messages, puis à regarder celles qui sont acceptées. Or, envoyer des séquences incorrectes qui restent  cohérentes n'est pas facile car le contenu de chacun de ces messages dépend de celui des messages envoyés précédemment

Par exemple, sur la famille d'algorithmes RSA, la clé de chiffrement de la session est générée par le client et envoyée chiffrée avec la clé publique contenue dans le certificat du serveur. Pour les familles « RSA Export », c'est un peu différent : le serveur envoie une clé RSA courte (512 bits) signée avec la clé privée du certificat.Troisième exemple encore différent,  celui des messages Diffie-Hellman : le serveur choisit un groupe et signe les paramètres de ce groupe avec sa partie publique et l'envoie au client.

Dans le cas de Freak c'est le même code qui gère l'échange RSA standard et RSA Export. Dans cette attaque, le serveur annonce qu'il va faire un échange RSA standard (c'est le client qui chiffre avec la clé publique), mais si un attaquant injecte aussi une clé éphémère signée comme dans la séquence Export, un client vulnérable va utiliser cette clé faible pour chiffrer la clé de la session. C’est là qu’est la faille.

Comment expliquer que cette faille ait perduré ?

C’est un problème caractéristique dans la conception de protocoles cryptographiques. Beaucoup d’efforts sont faits pour vérifier qu’une implémentation est conforme aux standards et permet l’interopérabilité (positive testing). Mais il y a souvent de gros manquements dans le negative testing , qui consiste à vérifier que des instances incorrectes sont bien rejetées. Tester l’intégralité des comportements invalides est une vraie question de recherche, en particulier pour un protocole aussi complexe. Nous testons en particulier des séquences mélangeant des messages utilisés dans différentes familles d’algorithmes, puisque tester toutes les situations est impossible, car elles sont potentiellement infinies.

Nous observons les mêmes vulnérabilités apparaître dans des implémentations différentes du protocole TLS, ce qui prouve que le manque d’évaluation du comportement de ces implémentations face à des séquences incorrectes est généralisé.

Quelles sont les prochaines étapes pour Prosecco ?

FREAK représente pour nous  une avancée, nous allons publier un article à l’occasion de la prochaine conférence IEEE Security & Privacy qui a lieu en mai. Une version provisoire de cet article est déjà disponible sur notre site smacktls.com.

Ce n’est pas la première attaque que nous découvrons sur le protocole TLS. Plus généralement, nous avons découvert une quinzaine de vulnérabilités dans différents navigateurs au cours des deux dernières années. Nous sommes intéressés par les attaques, mais une partie importante de nos recherches consiste à vérifier formellement TLS, ainsi que notre propre implémentation miTLS, développée en collaboration avec Microsoft Research et l’institut espagnol IMDEA. Nous travaillons aussi sur la nouvelle version 1.3 du protocole, qui est en cours de standardisation par l’IETF.

Les enjeux scientifiques

Tout un pan de la recherche en informatique a pour objet de sécuriser la transmission des informations personnelles et confidentielles (courrier, démarches administratives, transactions bancaires) et de la protéger contre des actions malveillantes (hacking, phishing). Une cinquantaine d’équipes de recherche Inria mène des recherches en lien avec la sécurité informatique, et cette problématique est au cœur des travaux d’une quinzaine d’entre elles (cryptographie, protocoles de communication…).

Mots-clés : Faille Sécurité Equipe-projet PROSECCO FREAK Protocole TLS

Haut de page

Suivez Inria