À quel point est-il difficile de craquer bcrypt ?
mer, 22/11/2023 - 11:52
En début d’année, l'équipe de recherche de Specops partageait des données sur le temps nécessaire aux pirates informatiques pour déchiffrer les mots de passe des utilisateurs en utilisant l'algorithme MD5 et en exploitant des équipements informatiques de pointe. Ici, l'équipe se penche sur l'évaluation de la robustesse de l'algorithme de hachage bcrypt en exposant ses mots de passe chiffrés à une puissance de calcul équivalente. Cette étude intervient en parallèle à l'intégration de 49 millions de mots de passe compromis dans le service Specops Breached Password Protection.
Différents types d'algorithmes de hachage
Le stockage des mots de passe en texte brut ne devrait jamais être envisagé, car il expose des informations à toute personne non autorisée ayant accès à la base de données. De nos jours, la majorité des systèmes utilisent des algorithmes de hachage pour sécuriser les mots de passe stockés, réduisant ainsi le risque que représente un attaquant qui pourrait accéder à la base de données de mots de passe du système. En raison de la nature unidirectionnelle de ces algorithmes de hachage, la seule manière de retrouver le mot de passe réel à partir de son hachage est de tenter de le deviner à l'aide de techniques de force brute.
Qu'est-ce que bcrypt et comment cela fonctionne-t-il ?
bcrypt a été conçu en 1999 en utilisant l'algorithme de chiffrement Blowfish comme base. Il transforme le mot de passe d'un utilisateur en une chaîne de caractères de longueur fixe au sein d'une fonction de hachage unidirectionnelle, ce qui garantit qu'il ne peut pas être inversé pour retrouver le mot de passe original. Lorsque l'utilisateur se connecte, bcrypt ré-hache le mot de passe et compare cette nouvelle valeur à celle stockée dans la mémoire du système pour vérifier leur correspondance. En cas de mots de passe en texte brut de courte longueur, ce processus peut les étendre pour les rendre plus longs et plus complexes.
Pour renforcer la sécurité, bcrypt incorpore également une valeur aléatoire à chaque hachage de mot de passe, garantissant ainsi son caractère unique et le rendant extrêmement difficile à deviner par des attaques de type dictionnaire ou force brute. Cette technique est appelée "salage", et le résultat est une chaîne de 22 caractères ajoutée en amont du hachage du mot de passe, ce qui le rend encore plus résistant à la tentative de déchiffrement par force brute. Le salage renforce considérablement la sécurité des mots de passe en les rendant plus impénétrables aux attaques de force brute et de dictionnaire.
De plus, bcrypt se distingue des autres algorithmes de hachage grâce à l'utilisation d'un "facteur de coût". Ce paramètre indique combien d'itérations de mot de passe ont été effectuées avant que le hachage ne soit généré, et il est ajouté en amont du salage. Le facteur de coût permet de déterminer le nombre d'itérations de mot de passe et de tours de hachage à effectuer, ce qui a pour effet d'augmenter considérablement le temps, les efforts et les ressources de calcul nécessaires pour obtenir la valeur de hachage finale. Cette caractéristique ralentit de manière significative le processus de déchiffrement par force brute.
Le temps requis pour déchiffrer les mots de passe hachés avec bcrypt est significatif. La création d'un hachage bcrypt prend du temps, et il en va de même pour son déchiffrement. Un acteur malveillant peut être amené à abandonner, manquer de puissance de calcul, ou cela peut donner aux équipes de sécurité le temps nécessaire pour détecter une activité suspecte. Même avec des ordinateurs plus puissants, le processus de déchiffrement par force brute de bcrypt reste long en raison du nombre variable d'itérations de mot de passe.
Est-ce que le hachage bcrypt peut empêcher la compromission des mots de passe ?
En bref, non. Bien qu'il offre un moyen de protéger les mots de passe stockés contre les devinettes, HaveIBeenPwned comporte de nombreux exemples où les hachages bcrypt ont été exposés lors de violations de données. Par exemple, en février 2018, l’application de régime et d'exercice MyFitnessPal a subi une violation de données. L'incident a exposé 144 millions d'adresses e-mail uniques ainsi que des noms d'utilisateur, des adresses IP et des mots de passe stockés sous forme de hachages SHA-1 et bcrypt (les premiers pour les comptes plus anciens, les seconds pour les comptes plus récents).
Comme le montre le tableau ci-dessous, un algorithme de hachage de mot de passe solide n'a plus de sens une fois qu'un mot de passe a été compromis. Bloquer l'utilisation de mots de passe compromis connus est une partie essentielle de la défense contre les attaques de devinettes de mots de passe.
Noé Mantel, Spécialiste Produit chez Specops commente : "Les attaquants ont généralement tendance à éviter de forcer un algorithme de hachage tel que bcrypt, pour les raisons que nous avons évoquées dans cette recherche. Ils préfèrent cibler des vulnérabilités plus faciles, comme les mots de passe d'Active Directory qui ont déjà été compromis lors de violations de données. L'une des plus grandes menaces pour les organisations réside dans la réutilisation de mots de passe par les utilisateurs. Même si les mots de passe professionnels de vos employés sont stockés de manière sécurisée, dès lors qu'ils les réutilisent sur un site moins sécurisé qui subit une violation de données, les attaquants pourraient potentiellement accéder à votre réseau."
Le tableau présente les temps nécessaires pour briser des hachages en utilisant une méthode de force brute avec des équipements modernes, en tenant compte des hypothèses suivantes. Cette configuration est identique à celle que nous avons employée pour les recherches sur le craquage de MD5. Elle est réalisable pour la plupart des acteurs malveillants cherchant à déchiffrer les mots de passe d'une organisation. Cependant, pour obtenir des résultats optimaux, il serait préférable de disposer d'une puissance de calcul supérieure à celle utilisée ici :
• Hardware : la Nvidia RTX 4090. À date, il s'agit du matériel le plus rentable généralement disponible pour effectuer des attaques de craquage de mots de passe. Il s'agit d'une carte graphique gaming phare qui peut être achetée par les consommateurs et qui est largement abordable avec un prix de vente conseillé d'environ 1599 dollars. Pour générer ces données, une Nvidia RTX 4090 hypothétique est utilisée.
• Software : Hashcat. En général, une RTX 4090 standard atteindra environ 164 GH/s dans Hashcat (ce qui peut être considéré comme l'équivalent de 164 000 000 000 de tentatives de mot de passe par seconde).
Les hypothèses matérielles ci-dessus peuvent sembler coûteuses, cependant, compte tenu des paiements de rançon dans les millions, les coûts peuvent sembler minimes. Cependant, certains attaquants peuvent trouver des résultats plus rapides et moins chers avec des services cloud."
"Lorsque nous parlons aux équipes informatiques, elles comprennent généralement les risques de la réutilisation de mots de passe", poursuit Noé Mantel, "mais il n'est pas toujours facile de convaincre les décideurs de voir ce qui est essentiellement un danger caché. Espérons que ces tableaux de craquage de mots de passe peuvent aider les équipes informatiques à obtenir l'adhésion à la gestion des mots de passe compromis. Il s'agit d'un risque qui ne devrait vraiment pas être négligé dans tout programme de sécurité des mots de passe."