Darüber, wie schnell können Sie brute-force-PBKDF2?
Nach dem linkedin-Passwort-hash Leck, habe ich unser Passwort-hashing. Wir verwenden Django 1.4 verwendet PBKDF2, das ist toll und ein Schritt aus dem vorherigen SHA1.
Aber ich bin gespannt wie leicht könnte man brute-force, die. Ich freue mich auf unser Kennwort-Komplexität-Regeln, und ich wundere mich, wie schnell würde es dauern, zu tun, (sagen wir) 8 Länge Kleinbuchstaben ascii-Buchstaben.
Diese Anleitung zum knacken des LinkedIn-Passwort-hash, hat jemand auch das tut, 430 Millionen sha1-hashes pro Sekunde auf einer GPU. http://erratasec.blogspot.ie/2012/06/linkedin-vs-password-cracking.html , Was irgendwie Geschwindigkeiten würden Sie bekommen für PBKDF2?
Hat jemand irgendwelche groben/back-of-the-envelope/ballpark zahlen für, wie schnell könnte man brute-force-PBKDF2?
- Es ist angeblich eine der schwersten wenn nicht die schwerste, um brute-force. (und es ist entworfen, als solche) habe ich keine zahlen parat, aber.
- Im Zusammenhang security.stackexchange.com/questions/12114/...
- PBKDF2 ist viel billiger, um brute-force als scrypt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein writeup über bei agilebits vom Februar, dass der Serviette Berechnungen. Die Kurzfassung:
Also nehmen Sie Ihre erratasec Artikel, dass die benchmarks 430 Millionen SHA-1-hashes pro Sekunde auf einer gpu als baseline - die agilebits Artikel zeigt die Metriken, die nahelegen, dass PBKDF2 mit 10k Iterationen bringen würde, dass auf rund 100 tests pro Sekunde.
Weit von wissenschaftlichen, bringt uns aber im Baseballstadion...
Spezialisierte hardware, wie Sie in bitcoin-mining, ausführen kann, die nach oben von 50 Milliarden hashes pro Sekunde (Anfang 2013. Es ist ein bewegliches Ziel, wie es die hardware wird schneller).
Wenn Sie mit 1.000 Iterationen für PBKDF2, dann ist das schneiden der Angriff um 50 Milliarden pro Sekunde auf 50 Millionen pro Sekunde. 10.000 Iterationen werden 5 Millionen pro Sekunde.
Einer typischen web-server wird jedoch nicht annähernd so schnell ist. Es geht um ein viel langsamer für Sie. Sie müssen tun, einige Tests auf Ihre eigenen Produktions-server und finden von 10.000 Iterationen ist zu langsam.
Also ist es nicht wirklich darum, wie schnell PBKDF2 werden können brute-gezwungen, es zu schnell deinen server überprüfen kann ein Passwort, PBKDF2. Sie müssen entscheiden, wie lange Sie denken, es sollte dauern (halbe Sekunde? eine Zehntel-Sekunde? in einem Hundertstel einer Sekunde?) und passen Sie dann die Anzahl der PBKDF2-Runden, die passen.
Beachten Sie auch die Stärke der Kennwörter, die von Ihren Kunden verwendet. Wenn Sie alle haben hervorragende Passwörter, dann ist es wirklich egal, was für eine hashing-system, das Sie verwenden. Wenn Sie alle mit schrecklichen Passwörter dann PBKDF2 ist nicht gut genug, um Sie zu schützen - Sie müssten mehr exotische wie die hardware gesalzenen hash-Apple verwendet im iPhone, um zu versuchen und drehen Sie eine 4-stellige Zahl in etwas, das zumindest etwas Sicherheit (im Grunde zwingen Sie alle hashing durchgeführt zu werden, ist ein hardware-chip, der absichtlich langsam. verschieben Sie die Daten auf einer anderen hardware und es ist unmöglich zu entschlüsseln).
Vorausgesetzt, dass das Passwort nicht in einem Wörterbuch (die meisten Passwörter sind), dann wird die Stärke des Kennworts berechnet durch die Multiplikation der Anzahl der möglichen Zeichen im alphabet an sich eine hibe für jedes Zeichen. Also, wenn ein Passwort besteht aus Buchstaben (26 Zeichen alphabet) und Ziffern (noch 10 Zeichen) dann haben Sie ein 36-Zeichen-alphabet, und wenn es ist 6 Zeichen lang, Sie vermehren es, indem Sie sich 6-mal.
Also eine 6-stellige alphanumerische Passwort ist 36*36*36*36*36*36, oder wenn Sie es vorziehen: 36^6. Das gibt Ihnen etwa 2,1 Milliarden möglicher Kennwörter... in der Regel nehmen wir an, der hacker wird das eigentliche Passwort über die Hälfte Weg durch, so nennen es 1 Milliarde.
Wenn Sie mit PBKDF2 und 1.000 Iterationen, dann ein hacker mit spezialisierten hardware wird denke mal 1 Milliarde Passwörter in etwa 20 Sekunden. Das ist nicht sehr gut Sicherheit.
Können Sie die Sicherheit verbessern, indem entweder weitere Runden PBKDF2 (die langsam Ihrer website down) oder ihn dazu verleitet, Ihre Benutzer haben bessere Passwörter. Einfach durch den Wechsel zu 7-stellig statt 6, oder durch das hinzufügen von oberen Fall Buchstaben oder auch Symbole, Sie wird sich dramatisch verbessern Ihre Sicherheit.
Wolfram Alpha ist nützlich für das erledigen der Mathematik:
((36 ^ 6) /50 million) seconds
wo 36 ist die Größe des Alphabets und 6 ist die Länge des Kennworts, und 50 Millionen ist die Zahl der Vermutungen pro Sekunde, die ein hacker verwenden können (50 Millionen ist ein schwerer Angreifer gehen nach PBKDF2 mit 1.000 Runden).Wie viele Passwörter gibt es, die in Ihrer Datenbank? Wenn es dauert 20 Sekunden knacken individuelles Passwort, dass mir 30 Tage Mathematik-oder 30 Jahre? Es hängt davon ab, wie viele Kunden Sie haben.
PBKDF2 ist einstellbar. Sie können immer die Kosten erhöhen Wert verringern die Anzahl der möglichen Vermutungen/sec für einen Angreifer. Meine Empfehlung ist, zu entscheiden, wie schnell Sie wollen, dass es läuft auf der Plattform und setzen Sie den Wert entsprechend. Zum Beispiel, Wenn Sie denken, dass 200 hashes/sec ist der ideale Kompromiss in Leistung/Sicherheit, dann erhöhen Sie den Wert und testen Sie, wie lange es dauert, bis die hash-ein paar tausend test-Passwörter, bis Sie mit durchschnittlich etwa 200/sec.
PBKDF2 verwendet auch ein "Salz", die verhindert, dass Angriffe von der Skalierung zwingt den Angreifer separat Angriff jedes einzelnen Kontos. Kombiniert mit stretching (d.h. eine Verlangsamung des Algorithmus), das macht es extrem schwierig, sich zu erholen mehr als eine kleine Anzahl von Konten. Ein Angreifer kann die Fokussierung auf ein Konto und das beste hoffen, oder widmen Sie eine bestimmte Zeit (eine Stunde, ein Tag) für jedes Konto und dann auf den nächsten Zug, wenn er nicht erfolgreich ist.
Mit der LinkedIn-hashes, die Menschen waren in der Lage zu knacken mehr als eine Millionen hashes in einem Tag oder weniger. Mit PBKDF2 laufen bei ~200 Vermutungen/sec, es würde über 9 Stunden nur um herauszufinden, welche der 6,5 M-Konten verwendet werden, "linkedin" als Ihr Passwort. Wenn Sie laufen wollte, eine Liste der 1.000 häufigsten Kennwörter gegen alle diejenigen, hashes, es würde etwa ein Jahr.
Denken Sie daran, dass bcrypt, scrypt, und PBKDF2/PKCS#5/RFC 2898 alle Unterstützung, die unterschiedliche Anzahlen von Iterationen; keiner ist von Natur aus "schneller" oder "langsamer". Einige nehmen mehr RAM (PBKDF2 hat nicht viel RAM), aber das ist über es.
Soweit PBKDF2 Iterationen in bestimmten, einem beliebten GPU-basierte Crack-Programm lassen sich mit einem Handgriff ausgerüstet modernen desktop + 8 GPU ' s bei 1 million versucht, eine zweite gegen WPA2. Als WPA2 ist im wesentlichen PBKDF2(HMAC−SHA1, passphrase, ssid, 4096, 256), das sagt uns, dass eine Maschine testen können, etwas über 4 Milliarden HMAC-SHA1-PBKDF2 Iterationen pro Sekunde. Zehn solcher Maschinen ist natürlich der test über 40 Milliarden solcher Iterationen pro Sekunde.
OWASP Passwort-Spickzettel (https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet) empfiehlt mindestens 64,000 Iterationen im Jahr 2012, die Verdoppelung alle zwei Jahre, oder 90,510 Iterationen im Jahr 2013.