L’Actu de l’innovation

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

Posté le 25 novembre 2009
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.

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 :

Comment se protéger ?

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

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 :

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 :

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