Warum ist es wichtig, dass mehrere Zeichenfolgen denselben Hash-Wert ergeben? Jedes Mal, wenn der Benutzer sein Kennwort eingibt, wird es zum selben Wert gehasht, und damit wird der Benutzer authentifiziert. Die Eingabe eines beliebigen anderen Kennworts wird mit ziemlicher Sicherheit nicht mit dem gehashten Wert übereinstimmen. Wenn Sie eine gute Hash-Funktion verwenden, die einen 64-Bit-Wert liefert, stehen die Chancen, dass ein anderes Kennwort mit dem des Benutzers übereinstimmt, etwa fünfstellig zu eins.
Sie schützen sich davor, dass Insider die Kennwörter der Benutzer kopieren und die tatsächlichen Kennwörter preisgeben, wenn die Sicherheit verletzt und die Kennworttabelle kompromittiert wird. Die Standardtechnik besteht darin, dem Kennwort einige zusätzliche Bits hinzuzufügen (das Salt, das für jedes Konto unterschiedlich sein sollte) und eine starke Hash-Funktion zu verwenden.
Wenn Sie das tun, ist es sehr schwierig, ein Passwort zu finden, das einen bestimmten Hash ergibt, es sei denn, Sie probieren ein Passwort nach dem anderen, bis Sie das richtige gefunden haben. Hashing bietet auf diese Weise Schutz vor Insidern und Eindringlingen: Der Zugriff auf die Passworttabelle reicht nicht aus, um sich als jemand anderes anzumelden.
Es ist möglich, dass zwei Benutzer dasselbe Passwort haben oder (obwohl dies äußerst unwahrscheinlich ist) Passwörter, die denselben Hash-Wert ergeben. Mit dem Salt sehen sie in der Kennworttabelle nicht gleich aus, so dass kein Eindringling oder Insider durch einen Blick in die Tabelle erkennen kann, dass sein Kennwort mit dem eines anderen identisch ist.
Ein weiterer Vorteil ist, dass viele Menschen Passwörter wiederverwenden, insbesondere für Konten, die nicht sicher sein müssen. (Alle meine Konten mit Finanzdaten haben unterschiedliche und gute Passwörter, aber ich verwende dasselbe nicht so starke Passwort für verschiedene Foren.) Mit Salt und Hash ist es nicht möglich festzustellen, ob mein Kennwort auf Website A dasselbe ist wie auf Website B, selbst wenn beide Kennworttabellen vorhanden sind.
0 Stimmen
Ich habe in meiner Antwort über den Geburtstagsangriff gesprochen: de.wikipedia.org/wiki/Geburtstag_Anschlag Sie gibt die Wahrscheinlichkeit einer Kollision angesichts der Anzahl der Versuche und der Anzahl der möglichen Hashes (basierend auf den Bits) an. Dies gilt für einen Brute-Force-Angriff. Die Wahrscheinlichkeit ist höher, wenn der Hash "geknackt" werden kann.
0 Stimmen
stackoverflow.com/questions/615704/
0 Stimmen
Vielleicht finden Sie meine Artikelserie zu diesem Thema interessant. blogs.msdn.com/ericlippert/archive/tags/Salt/default.aspx
0 Stimmen
Eine Lib für dies: encrypto.codeplex.com