À quelle vitesse pouvez-vous la force brute PBKDF2?
Après l'linkedin hachage de mot de passe de fuite, j'ai été à la recherche à notre hachage de mot de passe. Nous à l'aide de Django 1.4 qui utilise PBKDF2, qui est grand et un cran au dessus de la précédente SHA1.
Cependant, je suis curieux de voir comment on pourrait facilement la force brute. Je suis à la recherche de nos règles de complexité des mots de passe, et je me demande à quelle vitesse il faudra faire (dire) 8 longueur de bas de casse des lettres ascii.
Ce guide à la fissuration de l'LinkedIn hachage de mot de passe, quelqu'un a fait de 430 millions de sha1 hachages par seconde sur un GPU. http://erratasec.blogspot.ie/2012/06/linkedin-vs-password-cracking.html Quel genre de vitesse que vous obtenez pour PBKDF2?
Quelqu'un a une rude/retour-de-la-enveloppe/ballpark chiffres pour à quelle vitesse on pourrait la force brute PBKDF2?
Connexes security.stackexchange.com/questions/12114/...
PBKDF2 est beaucoup moins cher par la force brute que scrypt.
OriginalL'auteur Rory | 2012-07-02
Vous devez vous connecter pour publier un commentaire.
Il y a un writeup sur au agilebits à partir de février qui ne la serviette calculs. La version abrégée:
Donc, en prenant votre erratasec article que les points de référence de 430 millions de hachages SHA-1 par seconde sur un gpu comme une base de référence - le agilebits l'article montre des indicateurs qui suggèrent PBKDF2 avec 10k itérations apporterait que, jusqu'à environ 100 tests par seconde.
Loin d'être scientifique, mais nous met dans la bonne fourchette...
Bah! Le lien est mort.
OriginalL'auteur xelco52
PBKDF2 est ajustable. Vous pouvez toujours augmenter la valeur de coût afin de réduire le nombre de suppositions/sec pour un attaquant. Ma recommandation est de décider combien de temps vous voulez qu'il fonctionne sur votre plate-forme et définissez la valeur de coût en conséquence. Par exemple, Si vous pensez que 200 hachages/sec est un idéal compromis performance/sécurité, puis augmenter la valeur de coût et de tester combien de temps il faut pour hacher quelques milliers de tester les mots de passe jusqu'à ce que vous êtes à une moyenne d'environ 200/sec.
PBKDF2 utilise également un "sel" qui empêche les attaques de mise à l'échelle en forçant l'attaquant séparément attaque de chaque compte individuel. Combiné avec des étirements (c'est à dire de ralentir l'algorithme), ce qui rend extrêmement difficile de récupérer plus d'un petit nombre de comptes. Un attaquant peut se concentrer sur un seul compte et de l'espoir pour le meilleur ou consacrer un certain laps de temps (une heure, une journée) pour chaque compte, puis passer à la suivante s'il n'a pas réussi.
Avec LinkedIn tables de hachage, les gens étaient capables de faire craquer plus d'un million de hachages en un jour ou moins. Avec PBKDF2 de course à ~200 devine/s, il faudrait environ 9 heures juste pour savoir qui de la de 6,5 M de comptes utilisés "linkedin" comme mot de passe. Si vous voulez exécuter une liste de 1 000 mots de passe communs à l'encontre de tous ceux de tables de hachage, il faudrait environ un an.
OriginalL'auteur Steven Alexander
Rappelez-vous que bcrypt, scrypt, et PBKDF2/PKCS#5/RFC 2898 tout le soutien varier le nombre d'itérations; aucun n'est naturellement "plus rapide" ou "lent". Certains prennent plus de RAM (PBKDF2 ne pas prendre beaucoup de RAM), mais c'est tout.
Autant que PBKDF2 itérations en particulier, populaire une à base de GPU programme de craquage peut gérer avec un parée de bureau moderne + 8 GPU à 1 million tente une seconde contre WPA2. Comme le WPA2 est essentiellement PBKDF2(HMAC−SHA1, mot de passe, ssid, 4096, 256), qui nous dit qu'une machine de test un peu plus de 4 milliards de HMAC-SHA1 PBKDF2 itérations par seconde. Dix de ces machines, bien sûr, serait de tester plus de 40 milliards de telles itérations par seconde.
OWASP Mot de passe Feuille de Triche (https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet) recommande au moins de 64 000 itérations en 2012, doubler tous les deux ans, ou 90,510 itérations en 2013.
OriginalL'auteur PBKDF2 explanation
Spécialisé matériel, tel qu'utilisé dans le bitcoin mining, peut effectuer plus de 50 milliards de hachages par seconde (au début de 2013. C'est une cible en mouvement que le matériel devient plus rapide).
Si vous faites de 1 000 itérations de PBKDF2 alors qui va couper l'attaque vers le bas à partir de 50 milliards de dollars par seconde à 50 millions de dollars par seconde. De 10 000 itérations sera de 5 millions de dollars par seconde.
Un serveur web standard ne sera toutefois pas n'importe où près aussi vite. Ça va être un beaucoup plus lent pour vous. Vous avez besoin de faire quelques tests sur votre propre serveur de production et peuvent trouver de 10 000 itérations est trop lent.
Il n'est donc pas vraiment sur la façon rapide PBKDF2 peut être brute forcé, c'est sur la rapidité de votre serveur peut vérifier une PBKDF2 mot de passe. Vous devez décider combien de temps vous pensez qu'il doit prendre (une demi-seconde? un dixième de seconde? un centième de seconde?) et puis d'ajuster le nombre de PBKDF2 des tours en fonction de cela.
Également considérer la force des mots de passe utilisés par vos clients. Si ils ont tous une excellente mots de passe, alors il n'a vraiment pas d'importance ce que le hachage de système que vous utilisez. Si ils sont tous à l'aide de terribles mots de passe puis PBKDF2 est pas assez bon pour se protéger - vous besoin pour obtenir plus exotiques tels que le matériel salé de hachage utilise Apple dans l'iPhone pour essayer de transformer un nombre à 4 chiffres dans quelque chose qui a au moins une certaine sécurité (en gros, ils obligent le hachage pour être exécutées par un microprocesseur, qui est délibérément lent. déplacer les données vers tout autre matériel et qu'il est impossible de décrypter).
En supposant que le mot de passe n'est pas dans un dictionnaire (la plupart des mots de passe), puis la force du mot de passe est calculée en multipliant le nombre de caractères dans l'alphabet par lui-même un hibe pour chaque personnage. Donc, si un mot de passe a des lettres (26 caractères de l'alphabet) et de chiffres (10 caractères), puis vous avez un 36 caractères de l'alphabet, et si c'est 6 caractères de long vous de le multiplier par lui-même 6 fois.
Donc un 6 caractères alphanumériques mot de passe est 36*36*36*36*36*36, ou si vous préférez: 36^6. Qui vous donne environ 2,1 milliards de mots de passe possibles... en général, nous supposons que le hacker va trouver le mot de passe réel à environ mi-chemin par le biais, ainsi 1 milliard de dollars.
Si vous utilisez PBKDF2 et 1 000 itérations, puis un pirate informatique spécialisé avec le matériel suppose que 1 milliard de mots de passe en environ 20 secondes. Ce n'est pas très bon de sécurité.
Vous pouvez améliorer la sécurité à l'aide de tours de plus de PBKDF2 (ce qui va ralentir votre site web vers le bas) ou par convaincre vos utilisateurs à avoir de meilleurs mots de passe. Tout simplement en passant à 7 chiffres au lieu de 6, ou en ajoutant des lettres majuscules ou même des symboles, elles vont considérablement améliorer leur sécurité.
Wolfram Alpha est utile pour faire le calcul:
((36 ^ 6) /50 million) seconds
où 36 est la taille de l'alphabet et 6 est la longueur du mot de passe, et à 50 millions le nombre de conjectures par seconde, un pirate peut utiliser (50 millions de dollars est un grave attaquant aller après PBKDF2 avec 1 000 tours).Combien de mots de passe dans votre base de données? Si il faut 20 secondes pour le crack de mot de passe individuel, qui m'30 jours de math ou 30 ans? Il dépend de la façon dont beaucoup de clients que vous avez.
OriginalL'auteur Abhi Beckert