MD5 – Message Digest Algorithm 5
Abkürzung: MD5
Ronald Rivest entwarf MD5 1991 als Nachfolger von MD4. Über ein Jahrzehnt war es die Standardhashfunktion für Prüfsummen, Zertifikatssignaturen und Passwortspeicherung. Heute ist es das Lehrbuchbeispiel für eine gebrochene Hashfunktion — und immer noch im Einsatz.
Wie MD5 arbeitet
Die Funktion verarbeitet die Eingabe in Blöcken von 512 Bit und führt dabei einen 128 Bit großen Zustand mit, der nach dem letzten Block das Ergebnis bildet. Ausgegeben werden 128 Bit, als Hexadezimalzahl 32 Zeichen:
d41d8cd98f00b204e9800998ecf8427e (leere Eingabe)
Die Konstruktion folgt dem Merkle-Damgård-Prinzip, dasselbe Grundmuster wie bei SHA-1 und SHA-256. Daraus erbt MD5 auch die Anfälligkeit für die Längenerweiterung.
Der Bruch
Die Kollisionsresistenz fiel in Stufen.
2004 und 2005 veröffentlichte eine Gruppe um Xiaoyun Wang ein Verfahren, mit dem sich Kollisionen in Stunden statt in astronomischen Zeiträumen finden lassen.
2008 führte eine Forschergruppe die Folgen vor: Sie erzeugte ein gefälschtes Zwischenzertifikat einer Zertifizierungsstelle, indem sie eine Kollision zwischen einem harmlosen Antrag und einem Zertifikat mit Signierrechten konstruierte. Die Stelle signierte den harmlosen Antrag — die Signatur passte auf beide.
2012 wurde dieselbe Technik in der Schadsoftware Flame gefunden, dort gegen eine Signaturkette für Windows-Updates.
Heute findet gängige Hardware Kollisionen mit frei wählbarem Präfix in Sekunden. Das heißt: Ein Angreifer kann sich zwei Dokumente mit beliebig unterschiedlichem Inhalt bauen, die denselben MD5-Wert ergeben.
Was genau gebrochen ist
Die Unterscheidung ist wichtig, weil sie erklärt, warum MD5 nicht überall gleich gefährlich ist.
Kollisionsresistenz: vollständig gebrochen. Zwei frei wählbare Eingaben mit gleichem Hashwert sind einfach zu erzeugen.
Zweite-Urbild- und Einwegeigenschaft: praktisch nicht gebrochen. Zu einem gegebenen Hashwert oder einer gegebenen Datei eine passende zweite zu finden, ist weiterhin außer Reichweite.
Deshalb ist HMAC-MD5 nicht unmittelbar unsicher — die HMAC-Konstruktion hängt kaum an der Kollisionsresistenz. RFC 6151 rät von der weiteren Verwendung trotzdem ab, weil die Grundlage nicht mehr tragfähig ist. Für Signaturen und Zertifikate dagegen ist MD5 vollständig unbrauchbar, denn dort ist Kollisionsresistenz die tragende Eigenschaft.
Wo MD5 noch auftaucht
Der Unterschied zwischen Integrität gegen Zufall und Integrität gegen Absicht entscheidet, ob eine Verwendung tragbar ist.
Prüfsummen gegen Übertragungsfehler. Ein defektes Bit auf dem Weg erzeugt keine Kollision — dafür müsste jemand sie absichtlich konstruieren. Als Erkennung von Kopierfehlern taugt MD5 weiterhin. Als Nachweis, dass ein Download nicht manipuliert wurde, nicht mehr.
Dateideduplizierung. Speichersysteme erkennen gleiche Blöcke am Hashwert. Solange niemand gezielt Kollisionen einspeist, funktioniert das.
Altlasten in Protokollen. CHAP bildet seine Antwort mit MD5, RADIUS schützt das Passwortfeld damit. Beides ist in der Norm festgeschrieben und nicht einseitig ablösbar.
Passwortdatenbanken. Hier ist MD5 doppelt falsch: nicht nur wegen der Funktion selbst, sondern weil sie absichtlich schnell ist. Gängige Hardware probiert Milliarden Kandidaten je Sekunde durch, und für unsalzierte MD5-Werte verbreiteter Passwörter existieren fertige Tabellen.
Was stattdessen
Für Prüfsummen und Signaturen SHA-256. Für Passwörter keine reine Hashfunktion, sondern ein absichtlich langsames Verfahren wie Argon2, scrypt oder bcrypt.
Ein praktischer Hinweis zur Umstellung: Wer MD5-Werte in einer Datenbank ersetzen will, kann die Passwörter nicht umrechnen — sie liegen nicht im Klartext vor. Üblich ist, den neuen Wert bei der nächsten Anmeldung zu bilden und den alten dann zu löschen.