suit: md5 decodieren?

Beitrag lesen

MD5 und SHA-1 (was crypt macht, weiß ich gerade nicht) sind für normale Anwendungen völlig ausreichend, wenn man die Funktionen richtig einsetzt. Dazu gehört z.B., dass man Kennwörter nicht einfach so in die Hashfunktion steckt, sondern vorher Konstante oder zufällige Texte mit dem Kennwort verknüpft. Einfach damit das kennwort länger wird.

und nicht so leicht kolisionen auf kurze, bekannte zeichenketten gefunden werden bzw es nicht so leicht möglich ist, rainbowtables zu durchsuchen

Ansonsten lassen sich simple kennwörter mit 8 Zeichen oder weniger mit Hash-Listen, Rainbowtables usw. sehr schnell aus den Hashs zurückextrahieren.

richtig - ABER wenn der salt (dieses anhängsel vor dem hashen) eine kurze zeichenkette ist, ist das ermitteln des klartextpasswords aus rainbowtables sehr leicht, auch wenn der salt nicht bekannt ist

beispiel, der salt-wert ist "foo" und man verfügt über eine userdatebank mit irre vielen benutzern, hier gibts sicher ein paar helden die als passwörter abc, 123 usw verwenden - was dann die werte "abcfoo" und "123foo" ergibt - diese findet man wiederum schnell in verschiedenen rainbowtables - wenn der salt-wert bekannt ist, ist es sehr einfach die klartextpasswörter "zurückzurechnen" sofern das gesaltete passwort in der rainbow-tabelle vorkommt bzw man generiert eine neue damit

angenommen zu einem hash existieren 3 mögliche klartexte in der rainbow tabelle und der salt "foo", der hinten angehängt wird, ist bereits bekannt:

  • geheim1
  • geheim2
  • und geheim3foo
    in diesem fall ist es extrem unwahrscheinlich, dass "geheim3" nicht dass klartext passwort ist

aus diesem grund sollte der salt-wert immer möglichst komplex (sonderzeichen) und lange sein, um potentiell einfache passwörter zu schützen und in weiter folge auch die komplexeren, die sich sonst nach bekanntwerden des hashes leichterer ermitteln ließen - eine rainbow-tabelle mit einem bekannten prä oder suffix bei den klartextphrasen ist wesentlich kleiner als eine generische ;)