Hey
Ich habe zwar schon öfter darüber gelesen, dass MD5 Kollisionen beinhaltet, aber das bedrückte mich nicht weiter, bis ich heute einen Artikel bei Coding Horror laß über die Geschwindigkeit Passwörter zu berechnen. Demnach kann man mithilfe von seiner Grafikkarte, alle 6 Stelligen Passwörter mit Groß/Kleinbuchstaben, Sonderzeichen und Zahlen innerhalb von wenigen Minuten berechnen.
Dies schockte mich doch ein bisschen, da doch von vielen “Experten” (Oder auch hier / oder hier) versichert wurde, dass MD5 mit einem Salt perfekt sicher wäre. (Irgendwie muss ich da grad selber darüber lachen). Bisher habe ich selbst in vielen von meinen Experimenten nur MD5 verwendet, mit verschiedenen Methoden einen Salt zu erstellen.
Bei weiteren Nachforschungen stelle ich fest, dass auch SHA-1 mittlerweile nicht mehr als ganz sicher gilt. Coding Horror schlägt vor bcrypt (Welches auch unter BSD verwendet wird) oder bessere Algorithmen zu verwenden, welche bewusst darauf ausgelegt sind, langsam zu sein. Vor allem sollte, bei der Neuentwicklung einer Applikation, dies gegenüber Mehrfachhashen bevorzugt verwendet werden.
Ich hatte bisher immer gelacht, wenn ich von Mitgliedern der Piratenpartei 30 Stellige Passwörter bekommen habe, aber irgendwo ist diese Vorsichtigkeit auch berechtigt.
Eins ist klar: Wenn man ließt, dass einige Firmen immer noch Passwörter im Klartext speichern, kann man sich nur an den Kopf greifen.
Nachlese:
Secure hash and salt for PHP passwords – Stack Overflow
Schöner hashen mit bcrypt – PHP Gangsta
Passwörter richtig und sicher speichern
PHP Crypt Manual
XKCD also addressed this Topic