Ce matin j’ai reçu un email de la part de Yahoo intitulé : “Information Sécurité Importante pour les utilisateurs Yahoo”. 5 minutes plus tard j’ai clôturé mon compte, certainement le mieux à faire en termes de protection des données.
Il s’agissait en réalité d’un email, dans lequel Yahoo admettait que je faisais partie du milliard de victimes de la faille de sécurité, qui a eu lieu à une échelle tout simplement incroyable.
Ce n’est pas le fait que cette faille de sécurité soit la plus importante jamais constatée, qui m’a poussé à bout et m’a incité à clôturer mon compte. Ce n’est pas non plus le fait que ce soit la deuxième méga faille de sécurité que Yahoo ait avoué, et de plus la même année.
Enfin, ce n’est pas non plus dû au fait que Yahoo, apparemment, n’ait pas eu le moindre soupçon concernant cette faille, avant que les services de police ne le préviennent (même si cela a certainement aidé à me convaincre définitivement).
La goutte d’eau qui a fait déborder le vase a été cette partie de l’email de Yahoo :
Les données volées des comptes utilisateurs peuvent comprendre des noms, des adresses emails, des numéros de téléphones, des dates de naissance, des mots de passe hashés (en utilisant MD5), et, dans certains cas, les questions de sécurité chiffrées ou non chiffrées, et les réponses associées.
Après cela vous avez de quoi être nerveux, et de quoi devenir presque fou (des dates de naissance dans la nature depuis 3 ans …), mais je suis un expert en mots de passe et le hashage des mots de passe (avec MD5) a attiré mon attention.
MD5 est une fonction de hashage. L’idée est que la suivante : quelle que soit l’entrée, à savoir un mot de passe sur 8 caractères ou bien l’œuvre complète de Shakespeare, vous obtiendrez une valeur de votre hash pseudo aléatoire sur 128 octets en sortie.
L’utilité des hashs, pour le stockage des mots de passe, est que ces sorties ne sont pas réversibles : si vous savez le mot de passe, vous pouvez alors calculer le hash correspondant, cependant si vous savez le hash, vous ne pourrez jamais remonter au mot de passe de départ.
Le hashage permet aux sites internet de vérifier que votre mot de passe est correct, et ce sans avoir besoin de le stocker. Tant que le hash du mot de passe que vous utilisez lorsque vous vous connecter correspond au hash enregistré, vous avez pour cela entrer le bon mot de passe.
Le hashage MD5 n’est pas un bon choix pour ce type de hashage, car en réalité il ne produit pas vraiment des hashs aléatoires, et il est possible de créer des collisions de hashs MD5, où deux entrées différentes produisent le même hash.
Son utilisation a donc été abandonnée, en faveur de meilleures fonctions de hashage, depuis 20 ans maintenant.
Cependant, il ne s’agit pas encore de la raison pour laquelle j’ai fermé mon compte !
Je n’ai pas fermé mon compte car Yahoo utilisait le hashage MD5, plutôt qu’une autre fonction avec moins de risques de collisions, je l’aurais de toutes les façons fermé, et ce même si Yahoo avait utilisé un hashage de type SHA-3.
J’ai clôturé mon compte car un bon vieux hash en clair n’est plus suffisant pour garder mon mot de passe secret et en sécurité.
Un cybercriminel qui vole une base de données contenant des hashs de mots de passe, peut très bien deviner les mots de passe qu’elle contient. Le procédé est le suivant : devinez un mot de passe, passez le par une fonction de hashage, et regardez si le résultat du hashage correspond à une des entrées de la base de données.
Les tentatives du cybercriminel pour deviner les mots de passe sont importantes, mais la rapidité est cruciale. Plus il pourra faire des tentatives, plus de mots de passe il pourra découvrir au final.
Lors d’une attaque hors ligne, contre une victime qui ne sait absolument pas que son mot de passe a été volé, les cybercriminels ont alors toutes les cartes en main. Ils utilisent n’importe quel équipement spécialisé dans le craquage de mots de passe, et ils peuvent prendre tout leur temps !
Un stockage de mots de passe efficace, consiste à rendre votre mot de passe trop difficile, trop long à deviner ou bien trop coûteux, pour que cela en vaille la peine, et ce même si votre adversaire pourra générer des centaines de milliards de hashs par seconde.
Les hashs, pris seuls, ne sont pas une barrière suffisante. Ils doivent plutôt être utilisés comme un élément faisant partie d’une routine de stockage de mots de passe du type “salés, hashés stretchés” plus complexe, telle que PBKDF2 ou scrypt.
Le salage ajoute une dimension “secrète” et unique à votre mot de passe, ainsi même si quelqu’un l’utilise, vous aurez quand même un hash différent. Les cybercriminels devront réaliser deux tentatives successifs réussies, pour pouvoir craquer deux mots de passe identiques, et non plus une.
Le stretching signifie la répétition du hashage encore, encore, et encore, en général des milliers de fois, et ce pour chaque mot de passe.
Pour voir l’impact du choix du mode de stockage des mots de passe, vous n’avez qu’à observer le cas Ashley Madison. Lorsque le site de rencontres a été victime d’une faille de sécurité, sa base de données de mots de passe a été récupérée par des experts en sécurité. Certains mots de passe étaient stockés sous la forme de hashs MD5, et d’autres étaient salés, hashés et stretchés, en utilisant bcrypt.
Beaucoup d’experts en sécurité n’ont tout simplement pas essayé de craquer les hashs bcrypt, cependant un blogueur l’a fait et a réussi à récupérer 4 000 mots de passe, après 7 jours passés 24h/24 à craquer les mots de passe. Un autre blogueur a passé 10 jours à craquer les hashs MD5, et a réussi à deviner 11 millions d’entre eux.
Ainsi, sans aucun doute, Yahoo aurait dû utiliser la fonction MD5 comme un algorithme au sein d’un système de salage, hashage et stretching, et s’il l’avait fait, pourquoi ne pas le dire ? Utiliseriez-vous une phrase qui a déjà été utilisée pour décrire une méthode de stockage de mots de passe populaire, mais absolument peu efficace, et ce pour évoquer une méthode qui quant à elle l’est ?
La compagnie m’a laissé interpréter ces mots au travers de mon filtre, qui a pris en considération tout ce qui avait pu se passer auparavant. Aucun doute sur ce point. En mettant à jour les clés RSA à la dernière minute, pour pouvoir fournir le protocole de sécurisation, des années après que ses concurrents l’aient proposé, Yahoo a pris l’habitude d’être à la traîne.
Dans le contexte de cette lenteur, le fait que Yahoo en 2013 utilisait une méthode de stockage de mots de passe archaïque, ne paraissait pas inacceptable. Tous les autres faisaient de même.
Afin de fermer votre compte Yahoo, comme je l’ai fait, lisez le guide Yahoo pour fermer son compte. Si vous voulez effectivement fermer votre compte, ayez en tête que cela prend 90 jours, donc n’oubliez pas de changer votre mot de passe par la même occasion.
Pour plus d’informations sur le stockage des mots de passe, n’hésitez pas à lire l’article sur le stockage des mots de passe de ses utilisateurs.
Faille de sécurité Yahoo : compte à cause du hashage MD5
Billet inspiré de Yahoo breach: I’ve closed my account because it used MD5 to hash my password, par Mark Stockley, Sophos NakedSecurity.
Anonymous
…et comme si ça suffisait pas yahoo conserve en mémoire vos anciens mots de passe. Plus vous en changez plus sa base de données grandie.