Ratgeber · Kryptografie-Historie

MD5 ist kryptografisch tot: warum und seit wann

MD5 begleitet die IT seit 1992 und ist seit 2004 kryptografisch gebrochen. Was das genau heißt, wann es passiert ist und wofür MD5 heute noch eingesetzt werden darf, lässt sich an einer überschaubaren Reihe von Forschungspapieren und einem berühmten Angriff aus dem Jahr 2012 nachzeichnen.

6 Min Lesezeit 1.295 Wörter 5 FAQs
Jan-Tristan Rudat
Jan-Tristan RudatRedakteur · Kryptografie-Historie & Algorithmen
Geprüft am

1991: Rivest erfindet MD5 als Nachfolger von MD4

Ronald L. Rivest, Mitgründer von RSA Data Security und damals MIT-Professor, entwarf MD5 als Reaktion auf erste Schwächen in seinem Vorgänger MD4. MD4 war 1990 erschienen und sollte einen besonders schnellen Hash für die damals gängige 32-Bit-Hardware liefern. Schon kurz nach Veröffentlichung fanden Bert den Boer und Antoon Bosselaers (1991) Schwächen in der Kompressionsfunktion. Rivest reagierte und veröffentlichte 1991 MD5 als gehärtete Variante, mit mehr Runden, mehr Konstanten und einer zusätzlichen Operation pro Runde.

Im April 1992 wurde MD5 als RFC 1321 standardisiert. Die Spezifikation umfasste 21 Seiten und enthielt eine vollständige Referenz-Implementierung in C. Das war für die damalige Zeit ungewöhnlich offen und führte dazu, dass MD5 innerhalb weniger Jahre in fast jeder Krypto-Bibliothek auftauchte: OpenSSL, GnuPG, Java JCE, .NET, später CommonCrypto auf macOS.

Die Idee war: ein 128-Bit-Hash über beliebig große Eingabe, schnell genug für Software-Implementierung, mit einer behaupteten Kollisions-Resistenz von 2^64 Operationen. Dieser Wert (Birthday Bound auf 128 Bit) war 1992 als praktisch unangreifbar bewertet, weil 2^64 Operationen auf damaliger Hardware Jahrtausende gebraucht hätten.

1996: erste Pseudo-Kollision in der Kompressionsfunktion

Hans Dobbertin, damals beim deutschen BSI (Bundesamt für Sicherheit in der Informationstechnik), veröffentlichte 1996 eine “Pseudo-Kollision” in der MD5-Kompressionsfunktion. Pseudo-Kollision bedeutet: zwei verschiedene interne Zustände führen zu derselben Ausgabe nach einem einzelnen Kompressionsschritt. Es war kein Angriff auf das vollständige MD5, aber ein deutliches Warnsignal an die Forschungsgemeinschaft.

Dobbertins Arbeit zeigte, dass die Diffusion in der MD5-Kompressionsfunktion schwächer war als ursprünglich angenommen. RFC 1321 selbst hatte keine formelle Sicherheitsbeweise enthalten, sondern auf “empirische Analyse” verwiesen. Nach Dobbertins Veröffentlichung begann eine systematische Schwächen-Analyse von MD5 in der Kryptografie-Community.

Bemerkenswert: Schon damals empfahlen Hans Dobbertin und seine Mitstreiter, MD5 für sicherheitskritische Anwendungen durch SHA-1 oder das aufkommende RIPEMD-160 zu ersetzen. Die Empfehlung blieb in der breiten Industrie weitgehend ungehört, weil MD5-Kollisionen praktisch noch nicht erzeugbar waren.

2004: Wang Xiaoyun zeigt erste echte Kollision

Auf der Crypto-2004-Konferenz im August 2004 präsentierte Wang Xiaoyun (Shandong-Universität, China) zusammen mit Feng Dengguo, Lai Xuejia und Yu Hongbo den Durchbruch: eine vollständige MD5-Kollision in einer Stunde Rechenzeit auf einem IBM P690 Supercomputer. Die Methode basierte auf einer detaillierten Differenzanalyse der Rundenstruktur und konstruierte zwei verschiedene 128-Byte-Eingaben mit identischem MD5-Hash.

Die Veröffentlichung war ein Schock. Die Konferenz-Sitzung war überfüllt, und in den darauf folgenden Monaten reproduzierten und optimierten andere Forschergruppen den Angriff. Vlastimil Klima zeigte 2005, dass eine Kollision auf einem Standard-PC in unter einer Minute möglich war. Marc Stevens und Arjen Lenstra schrieben einen optimierten Code, HashClash, der auf einer einzelnen modernen GPU MD5-Kollisionen in Sekunden produziert.

Wichtig: Wangs Angriff war “Identical Prefix”. Beide Eingaben beginnen mit demselben gewählten Präfix, dann folgen zwei konstruierte Differenz-Blöcke. Für einen echten praktischen Angriff brauchte es noch einen weiteren Schritt.

2008: Stevens, Sotirov et al. erzeugen Rogue CA Zertifikat

Im Dezember 2008 demonstrierten Marc Stevens, Alex Sotirov, Jacob Appelbaum, Arjen Lenstra, David Molnar, Dag Arne Osvik und Benne de Weger auf dem Chaos Communication Congress in Berlin den ersten praktischen Angriff auf das X.509-Zertifikat-Ökosystem. Sie nutzten eine MD5-Chosen-Prefix-Kollision, um zwei Zertifikate mit demselben MD5-Hash zu erzeugen: ein legitimes für eine Webseite und ein gefälschtes CA-Zertifikat.

Chosen-Prefix bedeutet: der Angreifer wählt zwei verschiedene Präfixe nach Belieben (z.B. einen normalen Server-Namen und einen falschen CA-Namen), die Methode konstruiert zwei Suffixe, sodass beide Gesamtzertifikate denselben MD5-Hash haben. Da die Zertifizierungsstelle damals MD5 zum Signieren nutzte, war die Signatur des legitimen Zertifikats auch eine gültige Signatur des gefälschten.

Der Angriff war ein kontrollierter Proof-of-Concept gegen eine kommerzielle CA (RapidSSL, damals zu Equifax gehörig). Die Forscher informierten Microsoft und die CA-Industrie vorab, das Rogue-Zertifikat wurde nie für echten Schaden eingesetzt. Aber die Botschaft war eindeutig: MD5 ist als Signatur-Hash für Zertifikate untragbar.

2011: RFC 6151 erklärt MD5 für kryptografische Zwecke für tot

Die IETF reagierte spät, aber deutlich. RFC 6151 vom März 2011 (“Updated Security Considerations for MD5 Message-Digest and HMAC-MD5 Algorithms”) legt nüchtern fest, dass MD5 für neue Krypto-Anwendungen nicht mehr verwendet werden sollte. Der RFC listet die zulässigen Restanwendungen: HMAC-MD5 in nicht-kritischen Kontexten, Datei-Identifikation in nicht-adversarialen Settings, Cache-Schlüssel.

Was RFC 6151 ausdrücklich verbietet: digitale Signaturen, Zertifikate, Passwort-Hashing, Schlüsselableitung, MAC-Konstruktionen in sicherheitskritischen Protokollen. Die Begründung ist die etablierte Kollisionsanfälligkeit.

MD5 Zeitstrahl von 1991 bis 2012 1991/92 Rivest: MD5 RFC 1321 1996 Dobbertin: Pseudo-Kollision 2004 Wang Xiaoyun: echte Kollision 2008 Stevens et al.: Rogue CA Cert 2012 Flame-Malware staatlicher Angriff RFC 6151 (März 2011) erklärt MD5 für kryptografische Zwecke offiziell für ungeeignet.
MD5 Zeitstrahl. Zwischen erster echter Kollision (2004) und staatlichem Praxis-Angriff (Flame 2012) lagen acht Jahre.

2012: Flame nutzt MD5-Kollision für gefälschtes Microsoft-Zertifikat

Im Mai 2012 entdeckten Kaspersky Lab, CrySys Lab und Iran’s CERT die Spionage-Malware Flame im Nahen Osten. Bei der Analyse stellte sich heraus, dass Flame über den Windows-Update-Mechanismus weitere Module nachlud, signiert mit einem Zertifikat, das nach einer Microsoft-Root-CA aussah, aber nicht von Microsoft signiert war.

Die Erklärung: Flame nutzte eine neuartige Chosen-Prefix-Kollision gegen MD5, um aus einem legitimen Microsoft-Terminal-Server-Lizenz-Zertifikat ein gefälschtes Code-Signing-Zertifikat zu erzeugen. Microsoft hatte in einer obskuren Sub-CA noch MD5 zum Signieren verwendet, die Flame-Autoren fanden die Lücke und bauten eine Kollision, die ihnen ein gefälschtes Update-Zertifikat lieferte.

Microsoft reagierte mit Security Advisory 2718704 vom 3. Juni 2012. Drei betroffene Zertifikate wurden widerrufen, der Terminal-Server-Lizenz-Pfad neu strukturiert, MD5 final aus allen Microsoft-Signatur-Pfaden entfernt. Der Vorfall war der erste dokumentierte staatliche Cyberangriff, der auf einer expliziten MD5-Kollision basierte.

Was MD5 heute noch darf

Trotz alledem ist MD5 nicht aus jedem Anwendungsfeld verbannt. Wo keine Angreifer im Spiel sind, ist MD5 weiterhin ein nützlicher schneller Hash. Konkret zulässig:

  • Cache-Keys in CDNs und Web-Frameworks (Etag, Last-Modified-Hash). Hier zählt nur, dass derselbe Input denselben Schlüssel produziert.
  • Daten-Deduplizierung in Backup-Systemen, ergänzt durch eine zweite Verifikation. BorgBackup verwendet MD5 als schnellen Vor-Filter, dann SHA-256 zur eigentlichen Inhalts-Adressierung.
  • Datenbank-Fingerprints zum schnellen Vergleich von Records. Postgres md5() ist eine Standard-Funktion und in nicht-sicherheitskritischen ETL-Pipelines weit verbreitet.
  • Übertragungsfehler-Erkennung in Protokollen, die ihre eigene Authentifikation haben (z.B. innerhalb einer TLS-Verbindung).

Nicht erlaubt sind: alles, was mit digitalen Signaturen, Zertifikaten, Passwörtern, Schlüsseln, Tokens oder MAC zu tun hat. Hier muss SHA-256 oder besser zum Einsatz kommen. Wer MD5 in einem solchen Kontext findet, sollte den Migrationsplan zur Geschäftsführung tragen, weil Audit-Bewertungen (PCI-DSS, ISO 27001, BSI-Grundschutz) MD5-Reste regelmäßig als Findings vermerken. Für die Algorithmus-Defaults auf hash-generieren.de verweisen wir auf die Methodik-Seite und die Autorenseite Jan-Tristan, die den Kontext zur Algorithmus-Auswahl dokumentiert.

Was hängenbleibt

MD5 war ein Designerfolg in der frühen 90ern und ist seit 2004 kryptografisch tot. Drei Daten genügen für das Lebensbild: 1992 RFC 1321, 2004 erste Kollision (Wang Xiaoyun), 2012 erster staatlicher Praxis-Angriff (Flame). RFC 6151 von 2011 ist die formale Begräbnisrede. Wer heute MD5 in einer Signatur, einem Zertifikat oder einem Passwort-Hash findet, hat eine technische Schuld zu begleichen. Für nicht-kryptografische Anwendungen darf MD5 weiterleben, in der Krypto-Welt ist es Geschichte.

FAQ

Häufige Fragen

Wer hat MD5 entwickelt und wann?

Ronald L. Rivest, einer der drei R-Buchstaben in RSA, hat MD5 1991 am MIT entworfen. Die Spezifikation wurde im April 1992 als RFC 1321 veröffentlicht. MD5 löste den Vorgänger MD4 ab, an dem Hans Dobbertin 1992 bereits ernsthafte Schwächen gezeigt hatte. MD5 galt für etwa ein Jahrzehnt als sicherer Standard und wurde in unzähligen Protokollen verbaut: PGP-Fingerprints, SSL/TLS-Zertifikate, Apache-Authentifizierung, Linux-Paket-Checksums. Die Allgegenwart erklärt, warum die spätere Ablöse so langwierig war.

Wann gab es die erste echte MD5-Kollision?

Im August 2004, auf der Crypto-2004-Konferenz in Santa Barbara. Wang Xiaoyun von der Shandong-Universität präsentierte zusammen mit Feng, Lai und Yu eine Methode, die in etwa einer Stunde Rechenzeit auf einem IBM P690 zwei verschiedene Inputs mit demselben MD5-Hash erzeugte. Der Angriff war Identical-Prefix: zwei Nachrichten mit identischem Anfang und konstruierten Differenz-Blöcken. Innerhalb von Wochen reproduzierten andere Forschungsgruppen den Angriff und verkürzten ihn auf Minuten.

Was war das Besondere an Flame 2012?

Flame war eine staatliche Cyberwaffe, die im Mai 2012 entdeckt wurde und seit mindestens 2010 im Nahen Osten Spionage betrieb. Das Bemerkenswerte aus Krypto-Sicht: Flame nutzte eine bis dahin unbekannte MD5-Chosen-Prefix-Kollision, um ein gefälschtes Microsoft-Zertifikat zu erzeugen, das den Windows-Update-Mechanismus untergrub. Microsoft musste daraufhin alle MD5-basierten Zertifikate aus dem Trust-Store entfernen. Der Vorfall ist der bekannteste praktische Schaden durch MD5-Schwäche und beschleunigte den Branchen-Umstieg auf SHA-256.

Darf ich MD5 heute überhaupt noch verwenden?

Für nicht-kryptografische Zwecke ja, für kryptografische nein. RFC 6151 vom März 2011 stellt das klar: MD5 ist nicht mehr empfohlen für digitale Signaturen, Zertifikate, MAC-Konstruktionen oder Passwort-Speicherung. Was MD5 weiterhin darf: Checksums gegen Übertragungsfehler (wo kein Angreifer beteiligt ist), Cache-Keys, Datei-Deduplizierung in Backup-Systemen mit ergänzender Verifikation, schneller Datenbank-Fingerprint für Performance-Optimierung. Das BSI listet MD5 in TR-02102-1 seit Jahren nicht mehr als zulässig.

Wie schnell lässt sich heute eine MD5-Kollision erzeugen?

Eine Identical-Prefix-Kollision rechnet ein moderner Laptop in Sekunden bis Minuten. Eine Chosen-Prefix-Kollision (die für Angriffe auf Zertifikate und Signaturen relevant ist) braucht ein paar Stunden auf einer GPU. Tools wie HashClash von Marc Stevens automatisieren das. Im Vergleich: Eine SHA-256-Kollision würde mit heutiger Hardware etwa 2^128 Operationen benötigen, was rechnerisch nicht in der Reichweite irgendeines Akteurs liegt, auch nicht staatlicher Nachrichtendienste.

Anzeige

Quellen

Worauf dieser Ratgeber sich stützt

Veröffentlicht · zuletzt geprüft
Verantwortlich: Jan-Tristan Rudat
Anzeige
Anzeige
Anzeige
Anzeige