Aufpassen! Hab ich mich durchaus mit der Sache beschäftigt.
Dirk, dein Gesamter Beitrag bezieht sich darauf, MD4 bzw. MD5 als
Signatur zu verwenden. Heisst: Ich habe eine Nachricht/Zertifikat, erstelle davon die MD5-Summe, damit später überprüft werden kann, ob die Nachricht/Zertifikat geändert wurde.
In dieser Hinsicht sind MD4 und MD5 in der Tat "geknackt". Es ist mit entsprechendem Rechenaufwand daher möglich, die Original-Nachricht (bzw. das Original-Zertifikat) so zu verändern, dass die Prüfsumme gleich bleibt und die Manipulation nicht auffällt.
Einer der letzten grosse real durchgeführten MD5-Angriffe benötigte 200 PlayStation 3 im Cluster, war persönlich am Vortrag dabei als das bekannt gemacht wurde:
http://www.heise.de/security/meldung/25C3-Erfolgreicher-Angriff-auf-das-SSL-Zertifikatsystem-192869.html
Das alles ist schön und gut, hat aber mit meiner Verwendung von MD4 bzw. MD5 absolut gar nichts am Hut, denn MD4 wird hier nicht verwendet, um eine Nachricht zu signieren um sie vor Manipulation zu schützen, sondern die Prüfsumme an sich wird übertragen.
Aus einer MD4/MD5-Summe lässt sich das Original-Passwort nicht rekonstruieren. Wird auch nie gehen, weil es bei Hashes per Definition eine unendliche Anzahl an möglichen (beliebig langen) Passwörtern gibt, die genau die gleiche Summe erzeugen müssen.
Ich verweise hier noch auf den letzten Satz im Sicherheits-Abschnitt von MD5 der
Wikipedia:
Derzeit ist MD5 nur bezüglich der Kollisions-Angriffe geknackt. Deswegen besteht noch keine akute Gefahr für Passwörter, die als MD5-Hash gespeichert wurden, diese Kollisionen sind eher eine Gefahr für digitale Signaturen.
Die einzige reale Möglichkeit, aus einem MD4- oder MD5-Hash (oder auch jedem anderen, noch so sicheren Hashing-Algorithmus) ein passendes Passwort zu bekommen, ist über Rainbow-Tables, also vom Prinzip her eine Variante von Brute-Force.
Und da hilft, unabhängig vom Algorithmus, nur ein langes und kompliziertes Passwort (bzw. Salting, was aber am Ende im Prinzip das gleiche ist).