2010-12-13 10 views
15

Ich habe gelesen über die Gawker Vorfall und mehrere Artikel sind nur in Bezug auf bcrypt Hash Passwörter aufgetaucht und ich möchte sicherstellen, dass meine Hash-Mechanismus sicher genug ist vermeiden Sie den Wechsel zu einer anderen Methode. In meiner aktuellen Anwendung habe ich mich für eine PBKDF2 Implementierung mit sha2-512 und mindestens 1000 Iterationen entschieden.Passwort Verschlüsselung: PBKDF2 (mit sha512 x 1000) vs Bcrypt

Kann ich nach Meinungen zur Verwendung von PBKDF2 vs Bcrypt fragen und ob ich eine Änderung implementieren soll?

Antwort

27

Sie sind gut mit PBKDF2, keine Notwendigkeit, zu bcrypt zu springen.

Obwohl die Empfehlung, 1000 Iterationen zu verwenden, im Jahr 2000 gemacht wurde, würden Sie jetzt viel mehr wollen.

Auch Sie sollten mehr Sorgfalt bei bcrypt mit:

Es ist auch erwähnenswert, dass während bcrypt stärker als PBKDF2 für die meisten Arten von Passwörtern ist es hinter lange Paßphrasen fällt; Dies resultiert aus der Unfähigkeit von bcrypt, mehr als die ersten 55 Zeichen einer Passphrase zu verwenden, während unsere geschätzten Kosten und NISTs. Schätzungen der Passphrase-Entropie deuten darauf hin, dass die 55-Zeichen-Beschränkung von bcrypt nicht ist, was derzeit wahrscheinlich Probleme verursacht, Implementierer von Systemen, die auf bcrypt angewiesen sind, sollten diese Einschränkung umgehen (z. B. durch "Pre-Hashing"). eine Passphrase, um in die 55-Zeichen-Grenze zu passen) oder Schritte zu zu unternehmen, um zu verhindern, dass Benutzer im 56. und nachfolgenden Zeichen zu viel Passwort-Entropie eingeben (z. B. indem Benutzer einer Website ihr Passwort in eine Eingabe eingeben) Box, die nur Platz für 55 Zeichen bietet).

From scrypt paper [PDF]

Das heißt, es gibt auch scrypt.

Alle Vergleiche wären unvollständig oben erwähnt, ohne die Tabelle aus dem Scrypt Papier:

Estimated cost of hardware to crack a password in 1 year.

Iteration zählt für PBKDF2-HMAC-SHA256 verwendet gibt es 86.000 und 4.300.000.

+5

"Benutzer einer Website bitten, ihr Passwort in ein Eingabefeld einzugeben, das nur Platz für 55 Zeichen bietet." Es tut mir leid, aber wie ist das für die reale Welt? Ich kann kaum 8 Zeichen Passwörter finden. – m33lky

+6

Ich kenne einen Typ, der Sequenzen großer Schachspiele als Passwörter verwendet. Er salzt die Sequenzen mit den Namen der Spieler, Daten, Städten usw. Ich kenne eine andere Person, die Verse aus epischen Gedichten verwendet, mit absichtlichen Fehlern eingeführt. Es gibt viele Möglichkeiten, um lange Passwörter zu erhalten. – Cheeso

+1

Es sollte angemerkt werden, dass ein Fehler in dem Scrypt-Papier vorlag, und der tatsächliche algorithmische Cutoff von bcrypt ist 72 Zeichen. Es gibt also noch einen Cutoff, aber er hat noch 128 Bit Entropie. Das ist extrem wichtig. – ircmaxell

-7

Kommentar (re: der Titel):

  • keine Verschlüsselung (reversible) verwenden Passwörter zu speichern, es sei denn, Sie müssen.
  • Da Sie eine Hash-Option (nicht umkehrbar) als Alternative vorgestellt haben, nehme ich an, dass Sie keine Reversibilität benötigen.

Meinungen über die Verwendung PBKDF2 vs Bcrypt und , ob ich eine Änderung implementieren sollten?

Meine Meinung:

Verwenden PBKDF2 über Bcrypt. (Ich habe einfach mehr Vertrauen in SHA als Blofish, ohne Grund)

Ob für, ob Sie eine Änderung implementieren sollten, ich weiß nicht, was Sie fragen.

Edited, um die Verschlüsselung/Hashing-Diskussion deutlicher von der Angabe meiner Präferenzen w/r/t-Algorithmus zu trennen.

+0

"Implementieren Sie eine Änderung" bedeutet, konvertieren Sie meine Skripts zu bcrypt statt der PBKDF2 Algo zu verwenden. – buggedcom

+4

Ich glaube nicht, dass bcrypt Verschlüsselung ist. Es ist ein One-Way Hashing-Mechanismus basierend auf BLOWFISH – buggedcom

+0

BCrypt * ist * ein Hash-Algorithmus. –