Comment peut-bcrypt ont intégré dans les sels?

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 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 (Rails gestionnaire de connexion) 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?

InformationsquelleAutor Nathan Long | 2011-07-26