Plus tôt cette année, environ 6,5 millions de hachages de mots de passe de compte LinkedIn ont été publiés sur un forum de pirates. Les hachages étaient de simples résumés SHA1 calculés à partir des mots de passe de l’utilisateur, stockés dans l’infrastructure principale de LinkedIn.
Il n’a pas fallu longtemps aux pirates pour commencer à les casser, plus de la moitié d’entre eux ayant craqué en un rien de temps.
Il y a deux raisons principales pour lesquelles une fissuration aussi rapide était possible:
* l’utilisation de la fonction SHA1 elle-même
* GPU rapides
Jetons un coup d’œil aux deux.
La fonction SHA1 a été principalement conçue pour remplacer la fonction MD5 plus faible. Il a été créé pour être rapide, et c’est effectivement le cas. Sur une carte graphique AMD/ATI 7970, « hashcat » (voir https://hashcat.net/oclhashcat-plus/) calcule un peu plus de deux milliards de hachages SHA1 par seconde. Cela signifie que de nombreuses combinaisons peuvent être testées en très peu de temps.
Pour surmonter ce « problème », des algorithmes modernes et plus sécurisés existent, tels que la fonction sha512crypt utilisée dans Ubuntu et les versions récentes de Fedora Core Linux. Au lieu de 2 milliards de hachages par seconde, la même carte GPU ne craque qu’un peu plus de 12 000 combinaisons sha512crypt par seconde. Par exemple, la vérification d’un milliard de combinaisons sha512crypt prend environ 24 heures; mais moins de 1 seconde pour SHA1.
En raison des GPU rapides d’aujourd’hui, un bon conseil en matière de sécurité est de choisir un mot de passe complexe, qui:
* inclut les caractères majuscules et minuscules
* inclut au moins un caractère d’espace
* inclut les nombres
* inclut plusieurs symboles tels que !@#
* il n’est pas basé sur un mot connu
* sa taille est d’au moins 12 caractères, mais plus il est long, mieux c’est
Beaucoup de personnes que je connais utilisent des phrases de passe d’une taille comprise entre 20 et 50 caractères. C’est un bon conseil qui rend peu probable que même dans le cas où le hachage de votre mot de passe est divulgué, personne ne le déchiffrera.
Imaginez ma surprise aujourd’hui lorsque j’ai essayé de me connecter à un ancien compte Hotmail et que j’ai obtenu ce qui suit:
Les mots de passe des comptes Microsoft peuvent contenir jusqu’à 16 caractères.
Si vous avez utilisé un mot de passe comportant plus de 16 caractères, saisissez les 16 premiers.
Mon mot de passe précédent avait une taille d’environ 30 caractères et maintenant, il ne fonctionne plus. Cependant, je pouvais me connecter en tapant uniquement les 16 premiers caractères.
Cette limitation est bien connue (voir l’excellent article de Graham Cluley sur les limites de mot de passe de divers services) cependant, ce qui a attiré mon attention, c’est qu’en coupant le mot de passe à 16 caractères, cela fonctionnerait.
Pour tirer cette astuce avec des mots de passe plus anciens, Microsoft avait deux choix :
* stockez les mots de passe complets en texte brut dans leur base de données; comparez les 16 premiers caractères uniquement
* calculez le hachage uniquement sur les 16 premiers caractères; ignorer le reste
Stocker des mots de passe en texte brut pour les services en ligne est un non-non certain en matière de sécurité. L’autre choix pourrait signifier que depuis sa création, Hotmail n’utilisait silencieusement que les 16 premiers caractères du mot de passe.
Pour être honnête, je ne sais pas lequel est le pire.
PS: Mon professeur a dit de toujours penser positivement et d’essayer de terminer par une note optimiste. Alors voici: « Merci Google pour GMail ».