it-swarm-eu.dev

Ist "echtes Salz" dasselbe wie "Initialisierungsvektoren"?

In der Frage zu echtes vs. falsches Salz beschreiben die Antworten, wie echtes Salz den Verschlüsselungsalgorithmus stört. Ich weiß ungefähr, wie Initialisierungsvektoren funktionieren. Ist das das gleiche Konzept oder etwas ganz anderes?

38
Bryan Agee

Ein Salz und ein Initialisierungsvektor sind im Folgenden meistens dasselbe Sinn: Es handelt sich um öffentliche Daten, die für jede Instanz neu generiert werden sollten (jedes Hash-Passwort, jede verschlüsselte Nachricht). Bei einem Salt geht es darum, dasselbe Passwort mehrmals verwenden zu können, ohne Schwachstellen zu öffnen. oder, wenn Sie es vorziehen, zu verhindern, dass ein Angreifer die Kosten für Kennwortangriffe teilt, falls dasselbe Kennwort in mehreren Instanzen verwendet werden könnte - genau darum geht es bei vorberechneten (Regenbogen-) Tabellen . Der Sinn einer IV bei der symmetrischen Verschlüsselung mit CBC besteht darin, die Verwendung desselben Schlüssels zum Verschlüsseln mehrerer unterschiedlicher Nachrichten zu tolerieren.

Der Name "Initialisierungsvektor" deutet auf einen sich wiederholenden Prozess über einen gegebenen internen Zustand hin, wobei IV das ist, bei dem der Zustand initialisiert wird. Beispielsweise ist die Hash-Funktion MD5 als wiederholte Aktion einer Komprimierungsfunktion definiert, die den aktuellen Status (128) als Eingabe verwendet Bits) und den nächsten Nachrichtenblock (512 Bits) und gibt den nächsten Zustandswert aus; Zu Beginn wird der Zustand auf einen herkömmlichen Wert initialisiert, der als "IV" bezeichnet wird. In diesem Sinne sind die meisten "Salze", die bei der Passwortverarbeitung verwendet werden, keine "Initialisierungsvektoren". Dies ist jedoch eine Überinterpretation des Ausdrucks.

Dennoch ist das Benennen von Dingen meistens eine Frage der Tradition. Ein "Salz" ist eine Art IV, die:

  • ist an der Verarbeitung eines Passworts beteiligt;
  • sollte für jede Verarbeitungsinstanz unterschiedlich sein (es kann kein fester herkömmlicher Wert sein);
  • braucht nur Eindeutigkeit ("es wird nicht wiederholt"), keine einheitliche Auswahl im Raum möglicher Salze (obwohl eine einheitliche zufällige Auswahl ein guter und billiger Weg ist mit überwältigender Wahrscheinlichkeit Einzigartigkeit zu erlangen, vorausgesetzt, die Salze sind lang genug).

Die Angaben (wie das Salz/IV genau eingefügt wird und an welcher Stelle im Algorithmus) sind ein roter Hering.

46
Thomas Pornin

Die obige Antwort ist richtig, wenn "Salz" im Zusammenhang mit Passwörtern diskutiert wird. Der Begriff "Salz" wird jedoch auch für andere Verwendungen von zufälligen, aber nicht geheimen Werten verwendet.

Für eine sehr strenge Behandlung von Salz in Bezug auf Zufälligkeitsextraktoren lesen Sie Kryptografische Extraktion und Schlüsselableitung: Das HKDF-Schema . Es gibt dort eine Theorie darüber, warum die Verwendung von Salz obligatorisch ist, um generische Zufälligkeitsextraktoren zu erhalten - obwohl dies bei Passwörtern nicht besonders relevant ist.

3
Nakedible