Hallo Helena,
„nur an Hand (von) Beispiel(n)“ erklären kann ich Dir dieses nicht, falls Du einen mathematischen Beweis am Beispiel einse Passwortet erwartest. Dazu habe ich im Mathematikunterricht zu wenig aufgepaßt …
Sehr vereinfacht gesagt, ist eine übliche Verschlüsselung sehr angreifbar, wenn man sogenannte „Dictionary-Attacken“ durchführt. Klassisches Beispiel ist die MD5-„Verschlüsselung“ bei Windows NT4. Alle Worte in einem Wörterbuch werden ebenfalls verschlüsselt. Nun vergleicht man den MD5(Hash-Wert) des herauszufindenden Passwortes mit allen gespeicherten MD5-Werten des Wörterbuches. Und das jeder Hash einzigartig ist, finden wir früher oder später eine Übereinstimmung mit einem Eintrag in unserem „Wörterbuch“. Und jetzt haben wir das Passwort im Klartext.
Bei einem „gesalten“ Hash hängen wir an jedes Passwort einen zufälligen Wert, den Salt eben, an.
Jetzt muß der Angreifer zusätzlich jeden Eintrag seine Wörterbuches mit dem ihm unbekannten Salt codieren. Und das dauert und dauert, je nach Qualität des Salts.
Nehmen wir an, Dein Passwort wäre „Helena“. Der MD5-Hash wäre dann „8f5696351d40139b803a68a8cef76cea“. Sieht doch sicher aus, oder!?
Jetzt rufe ich z.B. die Seite:
http://md5crack.com/crackmd5.php
auf, gebe dort den MD5-Wert (8f5696351d40139b803a68a8cef76cea) ein und erhalte folgende Antwort:
„Found: md5(„Helena“) = 8f5696351d40139b803a68a8cef76cea“
Dumm gelaufen …
Bei Einsatz eines Salt würde das verschlüsselte Passwort z.B. aus 2 Teilen bestehen,
dem Salt, z.B.
LPgB0sdgx
und dem Passwort im Klartext, „Helena“, also
LPgB0sdgxHelena
Der MD5-Wert dafür ist
6024de2f64c01c0bd356f1c306b13139
Nun versuches noch einmal auf
http://md5crack.com/crackmd5.php
und das Ergebnis lautet:
„Sorry guess we couldn’t find it“.
Mehr findest Du z.B. hier:
http://de.wikipedia.org/wiki/Salt_%28Kryptologie%29
und hier:
http://www.aspheute.com/artikel/20040105.htm
http://www.webmasterpro.de/coding/article/php-sicher…
Schönen Tag noch
tf