Lorsque des violations de données est passé d’une menace occasionnelle à une réalité persistante au début des années 2010, une question revenait sans cesse alors que les organisations de victimes, les chercheurs en cybersécurité, les forces de l’ordre et les gens ordinaires évaluaient les retombées de chaque incident : quel algorithme de hachage de mot de passe avait la cible utilisée pour protéger les mots de passe de ses utilisateurs ?
Si la réponse était une fonction cryptographique défectueuse comme SHA-1 – sans parler du cauchemar des mots de passe stockés en clair sans aucun brouillage de cryptage – la victime avait plus à s’inquiéter car cela signifiait que ce serait plus facile pour celui qui a volé les données pour casser les mots de passe, accéder directement aux comptes des utilisateurs et essayer ces mots de passe ailleurs pour voir si les gens les avaient réutilisés. Si la réponse était l’algorithme connu sous le nom de bcrypt, cependant, il y avait au moins une chose de moins à paniquer.
Bcrypt fête ses 25 ans cette année, et Niels Provos, l’un de ses co-inventeurs, affirme qu’avec le recul, l’algorithme a toujours eu une bonne énergie, grâce à sa disponibilité open source et aux caractéristiques techniques qui ont alimenté sa longévité. Provos a parlé à WIRED d’une rétrospective sur l’algorithme qu’il a publiée cette semaine dans Usenix ;login:. Comme tant de bêtes de somme numériques, il existe désormais des alternatives plus robustes et sécurisées à bcrypt, y compris les algorithmes de hachage connus sous le nom de scrypt et Argon2. Provos lui-même dit que le jalon d’un quart de siècle est suffisant pour bcrypt et qu’il espère qu’il perdra en popularité avant de célébrer un autre anniversaire majeur.
Une version de bcrypt a été livrée pour la première fois avec le système d’exploitation open source OpenBSD 2.1 en juin 1997. À l’époque, les États-Unis imposaient encore des limites d’exportation strictes sur la cryptographie. Mais Provos, qui a grandi en Allemagne, a travaillé à son développement alors qu’il vivait et étudiait encore là-bas.
“Une chose que j’ai trouvée si surprenante, c’est à quel point il est devenu populaire”, dit-il. “Je pense que c’est probablement en partie parce qu’il résolvait en fait un problème réel, mais aussi parce qu’il était open source et n’était encombré d’aucune restriction à l’exportation. Et puis tout le monde a fini par faire ses propres implémentations dans tous ces autres langages. Donc, ces jours-ci, si vous êtes confronté à vouloir faire du hachage de mot de passe, bcrypt sera disponible dans toutes les langues dans lesquelles vous pourriez éventuellement opérer. Mais l’autre chose que je trouve intéressante, c’est qu’il est même toujours d’actualité 25 ans plus tard. C’est juste fou.
Provos a développé bcrypt avec David Mazieres, un professeur de sécurité des systèmes à l’Université de Stanford qui étudiait au Massachusetts Institute of Technology lorsque lui et Provos ont collaboré sur bcrypt. Les deux se sont rencontrés via la communauté open source et travaillaient sur OpenBSD.
Les mots de passe hachés sont soumis à un algorithme pour être transformés cryptographiquement de quelque chose de lisible en un brouillage inintelligible. Ces algorithmes sont des “fonctions à sens unique” faciles à exécuter mais très difficiles à décoder ou à “craquer”, même par la personne qui a créé le hachage. Dans le cas de la sécurité de connexion, l’idée est que vous choisissez un mot de passe, la plate-forme que vous utilisez en fait un hachage, puis lorsque vous vous connectez à votre compte à l’avenir, le système prend le mot de passe que vous avez entré, hachage puis comparez le résultat au hachage du mot de passe enregistré pour votre compte. Si les hachages correspondent, la connexion sera réussie. De cette façon, le service ne collecte que les hachages à des fins de comparaison, pas les mots de passe eux-mêmes.