web-dev-qa-db-fra.com

Est-il possible de se faire pirater si mon hachage bcrypt est connu du public?

Je viens de vérifier https://haveibeenpwned.com/ et j'ai remarqué que j'étais pwned, donc j'ai vérifié le fichier qui héberge les détails de mes "informations d'identification", cependant, je vois mon email en clair texte mais le mot de passe sous la forme d'un hachage bcrypt .

Étant donné que les fonctions de hachage sont à sens unique et ne peuvent pas être inversées, dois-je quand même être inquiet et changer tous mes mots de passe ou suis-je trop paranoïaque?

EDIT: Quand je voulais dire "tous mes mots de passe", je voulais dire ceux qui ne sont pas étroitement pertinents/similaires au mot de passe exposé. Évidemment, utiliser le même mot de passe pour presque tous les sites Web est assez stupide IMO.

EDIT 2: Je voudrais vous demander à tous de ne pas partager d'informations sur la façon dont cela est fait. Merci pour votre compréhension.

33
SergeantSerk

Un bref aperçu des algorithmes de hachage faibles par rapport à bcrypt

Avec des algorithmes de hachage de mot de passe faibles, ce que les pirates vont faire est essayer des millions ou des milliards de combinaisons différentes - aussi vite que leur matériel le permet - et de nombreux mots de passe faciles tomberont rapidement sur les tables Rainbow/crackers de mot de passe/attaques basées sur un dictionnaire.

Les attaquants essaieront de comparer une énorme quantité de chaînes à votre hachage, et celui qui valide est très probablement votre mot de passe. Même si ce n'est pas le cas, vous pouvez toujours vous connecter avec car vous avez trouvé une collision.

Cependant, bcrypt est différent. C'est un calcul lent, donc ce craquage sera ralenti énormément. Bcrypt peut aider à ralentir le cracking au point où vous ne pouvez faire que quelques tests par seconde, si cela. Cela est dû au facteur de coût de calcul. Vous devriez lire cette réponse de Thomas Pornin pour une meilleure explication:

Si le nombre d'itérations est tel qu'une invocation bcrypt coûte aussi cher que 10 millions de calculs de MD5, le forçage brutal du mot de passe sera 10 millions de fois plus cher avec bcrypt qu'avec MD5.

C'est le point d'avoir une lenteur configurable: vous pouvez rendre la fonction aussi lente que vous le souhaitez. Ou, plus précisément, aussi lent que vous pouvez le tolérer: en effet, une fonction lente est lente pour tout le monde, attaquant comme défenseur.

Cela dépend donc vraiment du coût de calcul supplémentaire. Certaines solutions matérielles personnalisées sont capables de casser des hachages bcrypt à plus de 52 000 hachages par seconde. Avec une attaque standard et un mauvais mot de passe, vous n'avez pas beaucoup d'espoir de tenir longtemps. Encore une fois, cela dépend du coût de calcul: même cette solution matérielle personnalisée peut être forcée à 2 à 5 hachages par seconde, voire plus lentement.

Ne réutilisez pas les mots de passe si vous vous souciez des comptes.


J'ai déjà trouvé vos informations d'identification et "craqué" votre hachage bcrypt

Mais je ne vais pas vous pirater, ne vous inquiétez pas. C'est juste pour montrer pourquoi vous devez mettre à jour vos informations d'identification et arrêter de réutiliser votre mot de passe. Vous vouliez une réponse, alors quoi de mieux qu'une démonstration en direct?

Vous venez du Royaume-Uni, n'est-ce pas? Votre hachage bcrypt est également $2a$10$omP392PbcC8wXs/lSsKZ5Ojv9.wFQ7opUn7u3YUBNu0kkbff0rB.m, correct? J'ai déjà "craqué" votre mot de passe et je connais vos comptes. Je vous vois, un voleur sur le toit. Ma nouvelle liaison satellite possède à la fois le spectre infrarouge et le spectre des rayons X. Je vois ton cœur battre; Je vois que tu as peur.

Cela va sans dire: vous devez absolument changer vos mots de passe. Commencez à modifier vos informations d'identification maintenant ... avant qu'il ne soit trop tard. Vous devriez être inquiet, et vous devriez changer vos mots de passe. Maintenant.


Oui, bcrypt peut être extrêmement lent, mais ...

En fait, j'ai trouvé un moyen de contourner complètement le processus de forçage brut avec une simple agrégation et corrélation des données. J'ai écrit un petit programme qui relie quelques informations et les compare. Pas un pirate de mot de passe ou quelque chose comme ça, mais à la fin de la journée, cela a fait le même travail.

Pour votre vie privée - et selon votre demande - je ne partagerai pas comment j'ai fait cela ici, mais vous devez savoir que je ne suis pas le seul qui peut le faire. Si je peux le faire, les autres aussi.


Cependant ... vous devez arrêter de réutiliser les mots de passe!

Vous ne voulez vraiment, vraiment pas faire ça. Si un site est compromis, le fait d'avoir des mots de passe différents sur d'autres comptes protège également les autres contre les violations.

Mettez à jour tous vos comptes, même ceux que vous n'avez pas utilisés depuis longtemps, et arrêtez de réutiliser les mots de passe à moins que vous ne vous en souciez pas. Vous voudrez peut-être envisager quelque chose comme KeePass .

49
Mark Buffalo

Vous ne pouvez pas décrypter le hachage, car - comme vous l'avez dit - les fonctions de hachage ne peuvent pas être inversées.

Vous devez toujours changer vos mots de passe. Les attaquants essaieront de forcer le hachage et, en cas de succès, essaieront les informations d'identification sur votre compte de messagerie et éventuellement d'autres sites Web.

Comme vous mentionnez "tous mes mots de passe", il convient également de noter que vous ne devez pas réutiliser les mots de passe pour tout ce qui est à distance important (et vos mots de passe ne doivent pas non plus suivre une structure commune). Pour les comptes jetables, les mots de passe faibles et la réutilisation des mots de passe peuvent être corrects, mais pour toute autre chose, ce n'est pas le cas, exactement à cause de situations comme celles-ci: une fois qu'un serveur est piraté, les attaquants essaieront également les informations d'identification sur différents services.

3
tim