6 Stimmen

Warum sollte ein Salz die gleiche Länge wie der gehashte Wert haben?

Ich habe gelesen, dass ein Salz, das verwendet werden soll, die gleiche Länge haben sollte wie das gehashte Passwort, was ist der Grund dafür? Wird es den Passwortschutz erhöhen? Ich habe es hier gelesen:

Um es für einen Angreifer unmöglich zu machen, eine Lookup-Tabelle für jedes mögliche Salz zu erstellen, muss das Salz lang sein. Eine gute Faustregel ist, ein Salz zu verwenden, das die gleiche Größe wie die Ausgabe der Hash-Funktion hat. Zum Beispiel ist die Ausgabe von SHA256 256 Bits (32 Bytes), daher sollte das Salz mindestens 32 zufällige Bytes lang sein.

9voto

Vlad Punkte 8776

Hier finden Sie eine gute Beschreibung, warum Passwort-Salze benötigt werden.

Nein, Ihr Salz muss nicht dieselbe Länge wie das Passwort haben. Tatsächlich macht das keiner der in dem Artikel aufgeführten Implementierungen. Im Allgemeinen verdoppeln Sie für jedes hinzugefügte Bit Salz das Speicherbudget eines Angreifers.

Ein 10-Byte-Salz sollte also für das heutige Technologieniveau ausreichen. Beachten Sie auch, dass das Salz ein binärer Wert ist, während Passwörter es nicht sind, daher sollte die Salzlänge in Bits/Bytes und nicht in Zeichen gemessen werden.

4voto

Ilmari Karonen Punkte 47398

Es besteht kein besonderer Bedarf dafür, dass das Salz so lang sein muss, obwohl es sicherlich nicht schadet.

Die einzige wirkliche Anforderung, die ein Salz erfüllen sollte, ist, dass es global eindeutig sein sollte. Selbst das ist keine harte Anforderung, in dem Sinne, dass ein paar doppelte Salze einem Angreifer nicht wirklich helfen. Nur wenn Sie eine Menge von Duplikaten haben, beginnt das Salz seine Wirksamkeit zu verlieren.

Insbesondere aufgrund des Geburtstagsparadoxons sollten Salze, wenn sie zufällig ausgewählt werden, idealerweise mindestens 2·log2(n) Bits lang sein, wobei n die maximale Anzahl von Benutzern ist, die Sie erwarten (oder allgemeiner gesagt, die maximale Anzahl von Benutzern, die Sie bei Ihrer gewählten Hash-Methode verwenden möchten). Natürlich ist es immer eine gute Idee, zusätzliche Sicherheitsmargen zu haben.

Insbesondere beträgt die Gesamtbevölkerung der Erde etwas mehr als 232. Das bedeutet, dass selbst wenn jeder einzelne Mensch auf dem Planeten ein Konto für Ihr System registrieren würde, ein 64-Bit-Salz immer noch ausreichend wäre.

2voto

Bohemian Punkte 386825

Die Stärke des Salzes sollte meiner Meinung nach etwa gleich stark sein wie die Stärke des Passworts, da beide gegen Brute-Force-Angriffe resistent sein sollten.

Ein einfaches Salz wäre verwundbarer, aber selbst ein einfaches Salz macht Angriffe um ein Vielfaches aufwändiger als wenn kein Salz vorhanden wäre.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X