Best Practices: Salzen & amp; Passwörter pfeffern?

Stieß ich auf eine Diskussion, in der ich lernte, dass das, was ich getan, war nicht in der Tat Passwörter Salzen, sondern würzen Sie, und ich habe da begonnen die beiden mit einer Funktion wie:

hash_function($salt.hash_function($pepper.$password)) [multiple iterations]

Ignorieren des gewählten hash-Algorithmus (ich will, dass das eine Diskussion von Salzen & Paprika und nicht konkrete algorithmen sondern ich bin mit einem secure), ist dies eine sichere option, oder sollte ich etwas anderes zu tun? Für diejenigen, die nicht vertraut mit den Begriffen:

  • Einen Salz ist eine zufällig generierte Wert in der Regel gespeichert mit dem string in der Datenbank sollen es unmöglich machen, zu verwenden hash-tables die Passwörter zu Cracken. Wie jedes Kennwort hat seinen eigenen salt, müssen Sie alle brute-gezwungen, einzeln, um zu knacken; aber als das Salz in der Datenbank gespeichert ist mit dem Passwort-hash, Datenbank Kompromiss bedeutet verlieren.
  • Einen Pfeffer ist ein site-wide statischen Wert getrennt von der Datenbank gespeichert (in der Regel hart codiert in der Anwendung source-code), die bestimmt ist, geheim. Es ist so, dass sich ein Kompromiss der Datenbank würde nicht dazu führen, die gesamte Anwendung Passwort-Tabelle brute-forceable.

Ist es etwas, was ich bin fehlt, und ist das Salzen & pfeffere meine Passwörter die beste option zum Schutz meiner user ' s security? Gibt es eine potenzielle Sicherheitslücke, es zu tun auf diese Weise?

Hinweis: nehmen Sie für die Zwecke der Diskussion, dass die Anwendung & Datenbank gespeichert werden, auf separaten Maschinen, nicht teilen, Passwörter, etc. also ein Verstoß gegen die Datenbank-server bedeutet nicht automatisch eine Verletzung des application Servers.

InformationsquelleAutor der Frage Glitch Desire | 2013-06-03

Schreibe einen Kommentar