Optimale bcrypt travail facteur
Ce serait un idéal bcrypt de travail facteur de hachage de mot de passe.
Si j'utilise un facteur de 10, il faut env .1s de hachage d'un mot de passe sur mon ordinateur portable. Si nous nous retrouvons avec une très occupée site, qui se transforme en une bonne partie du travail tout contrôle populaire des mots de passe.
Il serait peut-être préférable d'utiliser un niveau de 7, réduire le total de hachage de mot de passe à environ .01s pour ordinateur portable-connexion?
Comment décidez-vous de la différence entre la force brute de la sécurité et de coûts d'exploitation?
- Le coût évite des attaques hors connexion. Lorsque "en ligne", vous pouvez utiliser un minimum de délai entre les tentatives (par exemple 5 secondes) pour empêcher une attaque de déni de service.
- Dupliquer sur InformationSecurity: > Recommandé nombre de tours pour bcrypt
- Pour toute personne intéressée, j'ai juste écrit un petit Java CLI outil de test de bcrypt les performances sur les serveurs (ce qui est évidemment important pour l'équilibrage de la sécurité, serveur de charge et de réponse-temps): github.com/cdraeger/hash-performance
Vous devez vous connecter pour publier un commentaire.
Rappelez-vous que la valeur est stockée dans le mot de passe:
$2a$(2 chars work)$(22 chars salt)(31 chars hash)
. Ce n'est pas une valeur fixe.Si vous trouvez la charge est trop élevée, il suffit de faire de sorte que la prochaine fois qu'ils se connectent, vous crypte à quelque chose de plus rapide à calculer. De même, comme le temps passe et vous obtenez de meilleurs serveurs, si la charge n'est pas un problème, vous pouvez mettre à niveau la force de leur hachage lorsqu'ils se connectent.
L'astuce est de le garder de prendre à peu près la même quantité de temps pour l'éternité dans l'avenir avec la Loi de Moore. Le nombre est log2, donc à chaque fois des ordinateurs double de la vitesse, ajouter 1 à la valeur par défaut.
Décider combien de temps vous voulez prendre de la force brutale d'un mot de passe utilisateur. Pour certains courants du dictionnaire de word, par exemple, la création de votre compte probablement déjà prévenu de leur mot de passe a été faible. Si c'est l'un des 1000 mots courants, dire, et il faut un attaquant de 0,1 s à chaque test, qui achète 100s (enfin, certains mots sont plus fréquentes...). Si un utilisateur a choisi "la commune dictionnaire le mot' + 2 chiffres, c'est plus de deux heures. Si votre mot de passe de la base de données est compromise, et l'attaquant ne peut obtenir quelques centaines de mots de passe en un jour, vous avez acheté la plupart de vos utilisateurs des heures ou des jours pour changer en toute sécurité de leurs mots de passe. C'est une question de l'achat de leur temps.
http://www.postgresql.org/docs/8.3/static/pgcrypto.html a quelques temps pour le craquage des mots de passe pour vous d'envisager. Bien sûr, les mots de la liste il y a des lettres au hasard. Les mots du dictionnaire..., Pratiquement parlant, vous ne pouvez pas enregistrer le gars dont le mot de passe est 12345.
$2y$08$fJS4yx0i8kiOzIBIamZ51OWTMrzyE/4je34Oxhw.5xxp3Es7Ke32W
. La raison que j'ai tenté de modifier: Il était clair pour moi si "2 caractères travail" est un chiffre ou une malédiction ou quelque chose, a tester. Voici le résultat du test pour tout le monde de sorte que vous n'avez pas à l'essayer vous-même.