2009-11-18 13 views
12

Hallo Leute, die ich über das Paßwort-Salzen gelesen habe, aber das könnte ein wenig seltsam klingen. Aber wie kann ich das Salz lagern und sichern? In einer Multi-Tire-Architektur zum Beispiel verwende ich die GUID der Client-Maschine, um mein Salz zu generieren, dann wird der Benutzer auf eine einzelne Maschine beschränkt, aber wenn ich zufälliges Salz verwende, muss es irgendwo gespeichert werden. Vor ein paar Tagen habe ich eine Beispielanwendung gesehen, bei der der Hash und das Salt auf dem Client-System generiert wurden, sobald ein neuer Benutzer erstellt wurde. Anschließend werden das gesalzene Passwort und der Hash an den Server übertragen, wo sie im SQL-Server gespeichert werden. Aber wenn ich diese Methode befolge und die Datenbank kompromittiert wird, sind die Passwörter und die Salt-Werte für jedes Passwort für die X-Person verfügbar. Also, sollte ich wieder die Passwörter salzen/verschlüsseln und auf Serverseite Salz erhalten? Was ist die beste Methode zum Salzen?Was ist die beste Art Salz zu salzen und zu lagern?

Antwort

22

Das Speichern des unverschlüsselten Salzes in der Datenbank neben den Hash-Passwörtern ist kein Problem.

Der Zweck des Salzes ist nicht geheim zu halten. Es ist der Zweck, für jeden Hash unterschiedlich zu sein (d. H. Zufällig) und lang genug, um die Verwendung von rainbow tables zu verhindern, wenn ein Angreifer seine Hände in die Datenbank bekommt.

Sehen Sie diese excellent post zum Thema von Thomas Ptacek.

bearbeiten @ ZJR: Selbst wenn die Salze vollständig öffentlich wären, würden sie immer noch den Vorteil von Rainbow-Tabellen besiegen. Wenn Sie ein Salz und gehasht Daten haben, umkehren das Beste, was Sie tun können, um die rohe Gewalt ist (vorausgesetzt, dass die Hash-Funktion kryptographisch sicher ist)

bearbeiten @ n10i: Siehe für secure hash function Wikipedia-Artikel. Wie für die Salzgröße verwendet die beliebte bcrypt .gensalt() - Implementierung 128 Bit.

+0

Hashing ich den Zweck des Salzes würde sagen, ist nicht ** ** öffentlich, entweder zu sein. – ZJR

+0

können Sie bitte erklären "Hash-Funktion ist kryptografisch sicher". Entschuldigung, ich bin neu in der Kryptographie. auch in deiner Antwort hast du erwähnt "lange genug, um die Verwendung von Regenbogen-Tabellen zu besiegen" Wie lange sollte das Salz sein, um lang genug zu sein? – Neel

Verwandte Themen