Soll ich ein neues Salt generieren, wenn ich einem Benutzer erlaube, Passwörter zu ändern?

8

In meiner Datenbank habe ich eine Spalte für das Hash-Passwort und das Salt. In meiner Anwendung können Benutzer ihr Passwort ändern. Soll ich das gleiche Salz für das Passwort verwenden oder ein neues generieren? Ist es wichtig für die Sicherheit der Anwendung?

Ivan
quelle

Antworten:

14

Ja. Generieren Sie immer ein neues Salz, wenn das Passwort geändert wird .

Stellen Sie sich die folgenden zwei Szenarien vor:

Bekanntermaßen kein Salzwechsel

Ich weiß, dass Sie das Salz für Ihre Passwörter nicht ändern. Ich sehe, es adminhat ein Salz, das 'xyz' ist, und jetzt zermahle ich den Regenbogentisch für dieses Salz. Es spielt keine Rolle, in was Sie Ihr Administratorkennwort ändern, ich weiß es.

Wiederholte Passwörter

Ich weiß, dass der Benutzer ein Hash-Passwort von 'xyz: abcdef' hatte ( xyzist das Salz, abcdefist das Hash-Passwort). Dann später sehe ich, dass die Hash-Informationen 'xyz: 012345' sind - ok, sie haben ihr Passwort geändert. Später sehe ich das gehashte Passwort als 'xyz: abcdef' und ich weiß, dass sie es wieder in das erste Passwort geändert haben .

Diese beiden Szenarien, in denen dem Angreifer unnötige Informationen gegeben werden, werden trivial vermieden, indem jedes Mal, wenn ein Kennwort generiert wird, neues Salt generiert wird.


Sie werden feststellen, dass Kursivschrift "Wenn das Passwort geändert wird" oben ist. Dies wurde nach einem Kommentar von darkhogg hinzugefügt, in dem gefragt wurde, ob ein häufigeres Wechseln des Salzes "besser, schlechter oder einfach nutzlos" ist.

Auf Security.SE die Frage, wie oft ich mein Salz zurücksetzen soll? beantwortet dies. Ändern das Salz mehr häufiger als die Kennwortänderungen gibt einem möglichen Angreifer mehr Informationen über das Passwort als nur ein Hash.

Wenn Sie das Salt häufiger als das Passwort ändern, bedeutet dies nicht, dass ein Angreifer durch die neuen Informationen stärker behindert wird, da das gleiche korrekte Passwort unabhängig vom Salt weiterhin funktioniert.

Gemeinschaft
quelle
Dies könnte für eine andere Frage ausreichen, aber ... Wäre es besser, schlechter oder einfach nutzlos, das Salz von Zeit zu Zeit (z. B. 10 bis 30 Tage) nach einer erfolgreichen Anmeldung zu ändern?
Darkhogg
@ Darkhogg das ist in der Tat eine interessante Frage und wäre wahrscheinlich etwas, das man zu Security.SE gehen sollte .
3
Ich denke, ich habe gerade meine Antwort gefunden, ich werde sie der Vollständigkeit
halber