Logo ETI Quitter la lecture facile

L’Actu de l’innovation

MD5 : une bombe sur la sécurité de l’Internet

Posté le par La rédaction dans Informatique et Numérique

Une communication présentée le 30 décembre 2008 au 25e " Chaos Communication Congress " a mis le monde de la sécurité Internet en émoi. Ses auteurs ont réussi à construire en utilisant des " collisions md5 " une fausse autorité de certification. De quoi s’agit-il ? Quelles sont les conséquences ? Comment se protéger ? Le point.

Cliquez sur le lien : https://i.broke.the.internet.and.all.i.got.was.this.t-shirt.phreedom.org/ .
Si vous avez au préalable mis la date de votre ordinateur en août 2004 (on verra pourquoi plus tard), vous accèderez de manière sécurisée par SSL et sans aucun avertissement de sécurité à une page qui aurait pu être construite par un pirate ! Heureusement, il n’est est rien. Cette page a été rédigée par de brillants chercheurs dont l’objectif est au contraire d’avertir les utilisateurs d’Internet d’un grave problème de sécurité.

Examinons, comme on devrait le faire pour toute page sécurisée par SSL, le certificat et la chaîne de certification. Il suffit pour cela de cliquer sur le fameux petit cadenas jaune dont la présence assure, ou du moins devrait assurer, la sécurité de la navigation.

  • L’autorité racine est :  » Equifax Secure Global eBusiness CA-1  » qui est reconnue par Internet Explorer et par tous les navigateurs. C’est pour cela qu’il n’y a pas d’avertissement de sécurité.
  • La chaîne de certification comporte une autorité intermédiaire :  » MD5 Collisions Inc.  » dont le nom est pour le moins curieux…
  •  Le certificat serveur est délivré à :  » i.broke.the.internet.and.all.i.got.was.this.t-shirt.phreedom.org  » ce qui correspond bien à la page en question. Ce certificat expire en septembre 2004. C’est pour cela qu’il faut modifier la date de l’ordinateur.

Ce qui est extraordinaire, c’est que mis à part le nom bizarre de l’autorité intermédiaire et la date d’expiration, maladresses qu’un vrai pirate n’aurait certainement pas commises, un utilisateur même averti ne détecte rien d’inquiétant en utilisant les outils standards de visualisation de certificat fournis par MicroSoft par exemple.

De quoi s’agit-il ?

Dans les faits, le certificat de l’autorité intermédiaire n’a jamais été délivré par Equifax ! Il s’agit d’un faux certificat qui est l’aboutissement d’un travail, long, délicat et particulièrement astucieux, accompli par les auteurs de la communication citée [1].Ce certificat permet de délivrer à son tour des certificats qui, par transitivité, sont eux même reconnus par les navigateurs.

Dans les mains d’un pirate, le faux certificat intermédiaire (et sa clé privée associée) permet de créer des certificats utilisateurs, des certificats serveurs et même de signer du code, malversations qui pourraient avoir des conséquences dévastatrices. Mais rassurez-vous la clé privée est gardée en lieu sûr et, de toutes façons, le choix d’une date de validité dépassée rend le dispositif inoffensif.

Quelles conséquences ?

C’est une grande part de la sécurité de l’Internet qui pourrait être mise à mal par un pirate disposant d’un tel certificat, car un principe fondamental a été violé : une autorité de certification ne doit délivrer des certificats qu’à des individus ou à des entreprises en qui on peut avoir confiance :

  • Les services de non répudiation et de confidentialité sont atteints : en construisant un faux certificat pour une victime, on peut signer à sa place n’importe quel message ou n’importe quelle déclaration et en fournissant ce certificat à ses interlocuteurs, déchiffrer tous les documents qui lui sont destinés.
  • Il est possible de créer des sites Web malveillants sécurisé par SSL. Leur visite ne produira aucun avertissement de sécurité et sera même encouragée par la présence rassurante du petit cadenas. Pire, les attaques en coupure sur des serveurs sécurisés deviennent faciles : le pirate peut s’interposer entre l’internaute et un site de paiement par exemple, il pourra ainsi récupérer les coordonnées bancaires de l’internaute sans que celui-ci ne se rende compte de rien !
  • Enfin, en signant une mise à jour ou une distribution d’un logiciel largement utilisé, il devient possible d’infecter un nombre incalculable d’ordinateurs et là encore, l’utilisateur malheureux sera totalement abusé par le logiciel d’installation qui, au lieu de l’avertir d’un danger, lui indiquera qu’il installe un logiciel signé par l’éditeur adéquat.

Comment se protéger ?

La gravité du problème soulevé nous amène naturellement à examiner quelles contre mesures peuvent être envisagées :

  • Coté utilisateur : comme on vient de le voir, il y a peu de choses à faire car, et c’est là, toute la puissance du procédé, il n’y a pas d’avertissement de sécurité. Cliquer sur le cadenas n’est pas une pratique courante et même un utilisateur averti ne pourra que remarquer l’utilisation suspecte de MD5 dans le champ  » algorithme de signature « .
  • Coté éditeur de navigateur, on peut imaginer d’avertir l’utilisateur de l’utilisation de MD5. Mais cela génèrera énormément de fausses alertes qui troubleront plus l’utilisateur qu’elles ne l’aideront, car dans les faits, MD5 est encore utilisée ! Repérer le faux certificat par sa construction particulière est simple pour une méthode de construction donnée, mais il n’est pas évident que cela fonctionne pour une autre construction…
  • Coté autorité de certification, il y a évidemment une mesure qui s’impose : ne plus utiliser MD5 ! Mais il faut gérer le passé et le présent. Heureusement la méthode de construction du faux certificat est tellement acrobatique (voir l’encadré et la note 1) que de légers changements dans la manière de délivrer des certificats peuvent la mettre en échec. Verisign, propriétaire de la marque, RapidSSL affirme que des contre mesures sont déjà prises et qu’il est désormais impossible de construire à nouveau un faux certificat. A voir… et rien ne dit que cette contre mesure ne soit pas contournable.

Ce qui choque le plus, c’est que la fonction de condensation MD5 est considérée comme non sûre par les cryptanalystes depuis 1996 [3]. D’autres attaques dévastatrices sur cette fonction ont eu lieu en 2005 [4] et en 2006 [5] par une partie des auteurs de cette communication. Le lecteur pourra utilement se reporter à un précédent article sur les fonctions de condensation paru dans cette lettre [2].L’attitude des autorités de certification qui utilisent encore MD5 est incompréhensible et irresponsable. La potentialité du problème est connue depuis plus de 10 ans – il existe des fonctions de condensation sûres – et le remplacement de MD5 ne coûte rien !Il y a un parallèle intéressant à faire avec l’affaire Humpich [6]. Cet informaticien a révélé en 1998 que les clés RSA utilisées dans les cartes bancaires faisaient 320 bits ; or dès 1990, on savait casser de telles clés. Serge Humpich a tenté de prévenir les banques et, devant leur fin de non recevoir, a construit une fausse carte bancaire qui lui a permis d’acheter 2 carnets de métro. Comme pour notre faux certificat, la seule manière de convaincre est la démonstration ! Suite à une plainte des banquiers, Serge Humpich a reçu pour cet exploit la visite du GIGN et fait de la prison. Depuis, la taille des clés est passée de 320 à 768 puis 1.024 (ce qui est encore considéré comme insuffisant). Là, s’arrête le parallèle : Verisign n’a pas porté plainte et a fait une réponse polie… [7]

Comment ont-ils fait ?

Un certificat est constitué de 2 parties :

  • le  » to be signed  » : tbs qui comporte essentiellement l’identité, la clé publique, des dates de validité et un n° de série.
  • la signature de ce tbs par l’autorité de certification : s = SAuth(H(tbs)) où SAuth est la fonction de signature secrète de l’autorité et H une fonction de condensation MD5 en l’occurrence.

Les auteurs de la communication ont construit un tbs1 correspondant à un certificat de serveur SSL classique et un tbs2 correspondant à une autorité intermédiaire qui réalise une collision MD5 avec tbs1. Puis, ils ont demandé à Equifax de signer tbs1 et obtenu s = SEquifax(MD5(tbs1)). Alors comme MD5(tbs1) = MD5(tbs2), s est la signature de tbs2 et le couple (tbs2, s) constitue un faux certificat intermédiaire valide !Deux difficultés ont dû être surmontées :

  • La réalisation de la collision, les travaux [5] sont à l’origine de ce premier exploit.
  • Le fait que dans un certificat dates de validité et n° de série sont déterminés par l’autorité de certification au moment de la signature, donc non connus. Or la connaissance de ces deux éléments est essentielle pour réaliser la collision. Ces deux éléments sont cependant prévisibles (dans Equifax, les n° de série sont séquentiels). Les auteurs de l’article ont réussi à obtenir d’Equifax, un certificat ayant une date de validité et un n° de série donnés en effectuant plusieurs tentatives et en bénéficiant d’un peu de chance.

Par David Artitti, ingénieur des Télécom

Notes
[1] MD5 considered harmful today – Creating a rogue CA certificate. Alexander Sotirov, Marc Stevens, Jacob Appelbaum, Arjen Lenstra, David Molnar, Dag Arne Osvik, Benne de Weger. 25th Annual Chaos Communication Congress :
[2] Quand la cryptanalyse rencontre les fonctions de condensation. David ARDITTI. Lettre TI n°9 octobre 2007.
[3] Cryptanalysis of MD5 Compress (1996) by Hans Dobbertin In Rump Session of EuroCrypt ’96 : [4] Xiaoyun Wang and Hongbo Yu : How to Break MD5 and Other Hash Functions[5] Marc Stevens, Arjen Lenstra, and Benne de Weger : Target Collisions for MD5 and Colliding X.509 Certificates for Different Identities
[6] L’affaire Serge Humpich
[7] La réponse de Verisign

Posté le par La rédaction


Réagissez à cet article

Commentaire sans connexion

Pour déposer un commentaire en mode invité (sans créer de compte ou sans vous connecter), c’est ici.

Captcha

Connectez-vous

Vous avez déjà un compte ? Connectez-vous et retrouvez plus tard tous vos commentaires dans votre espace personnel.

INSCRIVEZ-VOUS
AUX NEWSLETTERS GRATUITES !