web-dev-qa-db-fra.com

Que sont les Salt Rounds et comment les sels sont-ils stockés dans Bcrypt?

J'essaie de configurer Bcrypt pour une application de nœud que je fais et j'ai plusieurs questions sur les sels auxquelles j'espère que quelqu'un ici pourra vous aider à répondre.

  • Qu'est-ce qu'un sel rond? Par exemple, dans les documents github ( https://github.com/kelektiv/node.bcrypt.js/ ), il utilise un tour de sel de 10. Qu'est-ce que cela signifie exactement?

  • Le sel généré par Bcrypt est-il toujours le même? Par exemple, si j'enregistre les mots de passe hachés de l'utilisateur dans une base de données, le sel utilisé pour hacher le mot de passe est-il le même pour chaque mot de passe?

  • Comment est stocké le sel? Est-il protégé contre les attaques potentielles?

23
doctopus
  1. Avec "salt round", ils signifient en fait le facteur de coût . Le facteur de coût contrôle le temps nécessaire pour calculer un hachage BCrypt unique. Plus le facteur de coût est élevé, plus les tours de hachage sont effectués. L'augmentation du facteur de coût de 1 double le temps nécessaire. Plus le temps est nécessaire, plus le forçage brutal est difficile.
  2. Le sel est une valeur aléatoire et devrait différer pour chaque calcul, de sorte que le résultat ne devrait presque jamais être le même, même pour des mots de passe égaux.
  3. Le sel est généralement inclus dans la chaîne de hachage résultante sous une forme lisible. Donc, en stockant la chaîne de hachage, vous stockez également le sel. Jetez un œil à ceci réponse pour plus de détails.
27
martinstoeckli