Coda Hale de l'article "Comment Stocker en toute sécurité d'un Mot de passe" affirme que:
bcrypt a sels intégré pour éviter que l'arc-en-ciel de la table des attaques.
Il cite ce document, qui dit que dans OpenBSD de la mise en œuvre de l' bcrypt
:
OpenBSD génère 128 bits bcrypt de sel à partir d'un arcfour (arc4random(3)) flux clé, ensemencés avec des données aléatoires du noyau collecte à partir d'un périphérique de timing.
Je ne comprends pas comment cela peut fonctionner. Dans ma conception de sel:
- Il doit être différent pour chaque mot de passe enregistré, ainsi qu'un arc-en-ciel de la table devrait être généré pour chaque
- Il doit être stocké quelque part alors que c'est répétitif: lorsqu'un utilisateur essaie de se connecter, nous prenons leur tentative de mot de passe, répétez la même sel et le hachage de procédure nous avons fait lorsque nous avons été stocké à l'origine de leur mot de passe, et de les comparer
Quand je suis à l'aide de Concevoir avec bcrypt, il n'y a pas de sel de la colonne dans la base de données, donc je suis confus. Si le sel est aléatoire et ne sont pas stockées n'importe où, comment peut-on de manière fiable répétez le processus de hachage?
En bref, comment peut-bcrypt ont intégré dans les sels?