Fuite de données Yahoo : pourquoi les spécialistes tombent des nues

Yahoo, un des grands noms de l’Internet, utilisait, lorsqu’il s’est fait dérober les données relatives à plus d’un milliard de comptes, un algorithme de chiffrement totalement dépassé, MD5. Choquant, pour certains experts. Même si le portail n’est pas forcément un cas isolé.

Dans le billet de blog de Bob Lord, le RSSI de Yahoo, qui dévoile la fuite de données maousse dont a été victime le portail en août 2013 (pour rappel, des données relatives à plus d’un milliard de comptes ont été dérobées par des individus ou organisations non identifiés), deux lettres et un chiffre interpellent : MD5. Un algorithme de hachage (la transformation d’un message en clair en un message chiffré) connu pour être… totalement obsolète. Les premières alertes sur la faiblesse de l’algorithme remontent au milieu des années 90. Et la mise en œuvre d’attaques exploitant ces failles à 2005. Un malware comme Flame, utilisé dans des opérations de cyberespionnage et découvert en 2012, se sert ainsi des faiblesses de MD5 pour pirater ses cibles. « Yahoo n’a pas un, mais deux trains de retard. MD5 a été remplacé par SHA-1, qui a lui-même été jugé insuffisamment sécurisé et se voit désormais supplanté par SHA-2 », remarque Xavier Lecoq-Bernard, responsable avant-vente pour l’Europe du Sud de Venafi, spécialiste des inventaires de certificats.

Avec ou sans sel ?

Emmanuel Thomé
Emmanuel Thomé

Une lacune connue certes, mais finalement pas si essentielle que cela dans le contexte spécifique d’une base de données de mots de passe, pour Emmanuel Thomé, directeur de recherche à l’Inria Nancy et qui a participé à la découverte de la faille LogJam : « toute la question est de savoir si Yahoo a utilisé du sel ou pas ». En effet, si deux utilisateurs ont le même mot de passe, le résultat ‘haché’ par n’importe quel algorithme – aussi robuste fut-il – sera identique. « Il suffit alors d’employer n’importe quel bon dictionnaire de mots de passe (renfermant les résultats hachés des mots de passe les plus courants, NDLR) et la messe est dite », reprend Emmanuel Thomé. Ajouter du sel revient à mélanger le mot de passe haché avec une chaîne de caractères aléatoires afin de brouiller un peu plus les pistes. Et donc freiner le déchiffrement des mots de passe par les assaillants.

« Avec une base de données d’un milliard de mots de passe, si les données stockées ne sont pas salées, un assaillant effectue une comparaison avec un dictionnaire sur l’ensemble de la base en un seul calcul. Si un salage a été ajouté, le calcul est propre à chaque utilisateur. Donc ce sont un milliard de calculs qu’il faut potentiellement effectuer pour accéder à l’ensemble des mots de passe », illustre Gaëtan Leurent, un autre chercheur de l’Inria auteur d’une étude récente sur les répercussions des faiblesses de MD5. Pour ce dernier, une autre bonne pratique consiste à répéter la fonction de hachage de nombreuses fois, afin une fois encore de « ralentir les attaques ». Un guide récent du NIST (l’Institut américain des standards et des technologies) préconise ainsi de répéter la fonction de hachage au moins 10 000 fois. Comme le résume Gaëtan Leurent, « utiliser le MD5 y compris pour hacher une base de données de mots de passe reste une mauvaise idée, mais ce n’est pas là que peuvent résider les erreurs les plus graves ».

MD5 en 2013 : choquant pour Yahoo

Or, dans son billet de blog, Bob Lord ne précise ni si un salage a été employé, ni le nombre de fois qu’est répétée la fonction MD5. Le RSSI se contente d’indiquer que, parmi les informations dérobées, figurent des « mots de passe hachés (en utilisant MD5) ». Pas vraiment de quoi rassurer pleinement les experts en chiffrement. « Cela laisse planer un doute, observe Emmanuel Thomé. Même si l’intérêt d’un salage est reconnu depuis les années 70, on continue à voir des entreprises ne pas appliquer les bonnes pratiques. » En 2012, LinkedIn avait ainsi connu une fuite de données touchant 6 millions de mots de passe hachés avec SHA-1. Hachés mais non salés.

L’importance du salage dans le cas d’une base de données de mots de passe n’enlève rien à l’obsolescence largement démontrée de MD5. « Le problème avec l’utilisation de cet algorithme y compris dans ce contexte précis, c’est qu’on peut calculer un hash MD5 très, très rapidement, par exemple en utilisant des GPU, détaille Graham Steel, le Pdg de CryptoSense, jeune société offrant un outil vérifiant l’implémentation des bonnes pratiques de chiffrement dans les déploiements applicatifs. Les attaques par dictionnaire sont donc, elles aussi, très rapides. Voir qu’une société comme Yahoo, pour laquelle la gestion des mots de passe est centrale, utilisait encore MD5 en 2013 est extraordinaire ! ». Pour Xavier Lecoq-Bernard, de Venafi, ce n’est toutefois qu’une demi-surprise : « En 2013, les problématiques autour de MD5 restaient une affaire de spécialistes. La sensibilisation à ces questions aujourd’hui provient surtout des éditeurs de navigateurs, qui bannissent petit à petit les technologies obsolètes ». Même remarque du côté de Vincent Nguyen, le directeur du CERT de Wavestone : « bien-sûr que c’est choquant pour une société comme Yahoo. Mais, en 2015, nous sommes encore intervenus après des attaques sur un e-commerçant français, qui stockait ses mots de passe après hachage MD5 et sans salage. »

Migrer vers Bcrypt : pas si simple

Les spécialistes recommandent aujourd’hui l’emploi de fonctions plus robustes –donc nécessitant plus de temps de calcul. Comme Bcrypt avec lequel Yahoo hache désormais les mots de passe de ses utilisateurs. Sans toutefois avoir mis à jour l’ensemble de sa base. « Les entreprises ne doivent pas oublier de mettre en place une politique de migration permettant de suivre l’avancée des contraintes cryptographiques », rappelle Xavier Lecoq-Bernard. Mais cette opération nécessite de demander à tous les utilisateurs de ressaisir un nouveau mot de passe, assure Vincent Nguyen. « Quand vous réalisez cette opération sur l’ensemble de vos utilisateurs, vous pouvez créer un mini-mouvement de panique, laissant à penser que vous avez été hacké. Ce type d’opérations peut créer un conflit entre le business et les équipes en charge de la sécurité », dit-il.

Rappelons que l’emploi de MD5 est surtout déconseillé pour les certificats. Grâce aux attaques par collision, « on peut en effet créer deux certificats qui possèdent la même empreinte ; c’est cette vulnérabilité qui est exploitée par le malware Flame », résume Graham Steel. Une attaque extensible au cas des mots de passe, un hacker pouvant trouver un mot de passe illégitime entrant en collision avec le sésame d’un utilisateur (en produisant le même hash) ? Pas si simple selon Gaëtan Leurent. Ce scénario est en effet sensiblement différent des attaques par collision visant les certificats ; on parle ici d’attaques en préimage. « Si on sait que le haché à inverser est celui d’un mot de passe, on utilise plutôt une attaque par dictionnaire, car l’ensemble des mots de passe utilisés en pratique est relativement petit.  Et il est plus rapide de tester des mots de passe que de faire une attaque en preimage sans hypothèse sur le message en entrée », explique le chercheur. Depuis 2013, les assaillants qui ont récupéré la base de données de Yahoo ont, en tout cas, eu tout le loisir d’essayer l’une ou l’autre de ces techniques.

A lire aussi :

L’ordinateur quantique va rendre tout le chiffrement obsolète

Une IA est capable de concevoir son propre chiffrement

E. Thomé, Inria : « Les clefs de chiffrement de 768 bits ne suffisent plus »

Crédit photo : Neon Tommy via Visual Hunt / CC BY-SA