Am 23. Februar 2017 endete eine über zwei Jahrzehnte alte Diskussion mit einem konkreten Beweis. Forscher der Cryptology Group des CWI Amsterdam und von Google Research zeigten die erste praktische Kollision für das vollständige SHA-1. Das Ergebnis trug den Namen SHAttered, und es bestand aus etwas erstaunlich Greifbarem: zwei verschiedenen PDF-Dateien, die denselben SHA-1-Hash besitzen. Beide Dateien tragen den Fingerabdruck 38762cf7f55934b34d179ae6a4c80cadccbb7f0a, obwohl ihr Inhalt sich unterscheidet. Sie können sich davon selbst überzeugen: shattered-1.pdf und shattered-2.pdf liegen direkt auf dieser Seite, ebenso wie das vollständige wissenschaftliche Paper.

Hinter dem Projekt standen unter anderem Marc Stevens, Pierre Karpman, Elie Bursztein, Ange Albertini und Yarik Markov. Ihre Arbeit verwandelte eine theoretische Schwäche in ein reproduzierbares Artefakt und gab der weltweiten Abkehr von SHA-1 einen kräftigen Schub.

Was ist eine Hash-Kollision?

Eine kryptografische Hashfunktion nimmt eine Eingabe beliebiger Länge und erzeugt daraus einen Wert fester Länge, den sogenannten Hash oder Digest. Bei SHA-1 ist dieser Wert 160 Bit lang. Eine gut konzipierte Hashfunktion soll mehrere Eigenschaften erfüllen, und eine davon ist Kollisionsresistenz: Es soll praktisch unmöglich sein, zwei unterschiedliche Eingaben zu finden, die denselben Hash ergeben. Genau diese Eigenschaft hat SHAttered gebrochen. Wenn Sie tiefer einsteigen möchten, was eine Hashfunktion leisten muss, hilft die Übersicht zur Hashfunktion.

Warum ist eine Kollision gefährlich? Hashes dienen als digitaler Fingerabdruck. Software-Verteiler veröffentlichen den Hash einer Datei, damit Sie prüfen können, ob Ihre heruntergeladene Kopie unverändert ist. Digitale Signaturen signieren nicht das gesamte Dokument, sondern dessen Hash. Versionskontrollsysteme identifizieren Inhalte über ihren Hash. In all diesen Fällen gilt eine stillschweigende Annahme: Gleicher Hash bedeutet gleicher Inhalt.

Bricht diese Annahme, lassen sich Angriffe konstruieren. Ein Angreifer könnte ein harmloses Dokument vorlegen, sich eine Signatur darüber besorgen und diese Signatur anschließend auf eine bösartige Variante mit identischem Hash übertragen. Die beiden SHAttered-PDFs zeigen dieses Szenario in seiner reinsten Form: zwei Dateien, ein Fingerabdruck, jede Prüfung über den SHA-1-Wert wird getäuscht.

Warum SHA-1 verwundbar war

SHA-1 wurde 1995 von der NSA entworfen und von NIST standardisiert. Über Jahre galt der Algorithmus als zuverlässig, doch die Kryptoanalyse holte ihn ein. Den entscheidenden Wendepunkt brachte 2005 die Arbeit von Xiaoyun Wang und ihrem Team. Sie zeigten, dass sich eine Kollision theoretisch deutlich schneller finden lässt, als ein simpler Zufallsangriff vermuten würde. Ab diesem Moment galt SHA-1 als gebrochen, allerdings nur auf dem Papier. Niemand hatte die Rechenleistung aufgebracht, um eine echte Kollision tatsächlich zu produzieren.

Die strukturelle Schwäche liegt in der internen Konstruktion. SHA-1 verarbeitet Nachrichten blockweise und mischt die Bits über 80 Runden. Forscher fanden Wege, sogenannte Differentialpfade durch diese Rundenstruktur zu legen. Vereinfacht gesagt: Man führt an zwei Eingaben gezielt kleine Unterschiede ein, die sich über die Runden hinweg gegenseitig aufheben, sodass am Ende derselbe interne Zustand entsteht. Jede Verbesserung dieser Analyse senkte den nötigen Aufwand weiter.

Hinzu kommt die kurze Ausgabelänge. Mit 160 Bit liegt der Aufwand für einen generischen Geburtstagsangriff bei etwa 2^80 Operationen. Das ist viel, lag aber bereits in Reichweite gut ausgestatteter Angreifer, und die strukturellen Abkürzungen drückten die Zahl noch weiter nach unten.

Was das Team tat

Die Forscher kombinierten jahrelange Kryptoanalyse mit massiver Rechenleistung. Ihr Angriff war eine sogenannte Identical-Prefix-Kollision: Beide Dateien beginnen mit demselben Präfix, danach folgt für jede Datei ein sorgfältig berechneter Kollisionsblock, der die internen Zustände wieder zusammenführt. Nach diesem gemeinsamen Punkt kann beiden Dateien identischer Inhalt angehängt werden, ohne den Hash zu verändern.

Das PDF-Format diente als ideale Bühne. PDFs erlauben es, Bytes einzubetten, die ein Betrachter nie zu Gesicht bekommt. Die beiden Dokumente nutzen genau diese Freiheit, um sichtbar unterschiedlich zu wirken und dennoch denselben SHA-1-Wert zu erzeugen. Der Angriff zerfiel in zwei Phasen. Zuerst suchte ein verteiltes Rechensystem nach einem passenden Near-Collision-Block. Diese erste Phase verschlang den Großteil der Ressourcen und lief auf einer heterogenen Infrastruktur aus CPUs und GPUs. Die zweite Phase ergänzte den finalen Block, der die Kollision abschloss.

Der Rechenaufwand

Insgesamt erforderte SHAttered rund 9,2 Trillionen SHA-1-Berechnungen, was ungefähr 2^63,1 Operationen entspricht. Diese Zahl ist gewaltig, und doch markiert sie den eigentlichen Durchbruch. Ein reiner Brute-Force-Geburtstagsangriff auf einen 160-Bit-Hash bräuchte rund 2^80 Berechnungen. Der SHAttered-Angriff war damit etwa hunderttausendmal schneller als der naive Weg. Genau dieser Sprung machte das Unmögliche bezahlbar.

Ansatz Größenordnung der SHA-1-Berechnungen Relative Kosten
Brute-Force-Geburtstagsangriff (160 Bit) ~2^80 Referenzwert
SHAttered (Identical-Prefix) ~2^63,1 (etwa 9,2 Trillionen) etwa 100.000-mal günstiger

Zur Einordnung beschrieb das Team die erste Phase als das Äquivalent von vielen tausend CPU-Jahren plus zusätzlicher GPU-Jahre. Eine solche Rechenleistung liegt außerhalb der Möglichkeiten einer Privatperson, ist für gut finanzierte Organisationen jedoch durchaus erreichbar. Genau das war die zentrale Botschaft: Ein praktischer Angriff auf SHA-1 war keine ferne Theorie mehr, sondern eine Frage des Budgets.

Eine kurze Zeitleiste

Jahr Ereignis
1995 SHA-1 wird als Standard veröffentlicht
2005 Wang et al. zeigen die erste theoretische Schwächung
2017 SHAttered liefert die erste praktische Kollision
ab 2017 Browser und Zertifizierungsstellen beschleunigen den Ausstieg

Die Folgen und der Wechsel zu SHA-256

Die Reaktion kam schnell und entschlossen. Browser-Hersteller hatten SHA-1-Zertifikate bereits seit 2016 zurückgedrängt, doch SHAttered lieferte das endgültige Argument. Zertifizierungsstellen stellten die Ausgabe neuer SHA-1-Zertifikate für das öffentliche Web ein. Sicherheitsbewusste Protokolle und Dateiformate stiegen auf stärkere Alternativen um.

Den Kern der Migration bildete die SHA-2-Familie, allen voran SHA-256. Mit einer Ausgabelänge von 256 Bit und ohne bekannte praktische Schwäche wurde SHA-256 zum neuen Standard für Zertifikate, Signaturen und Integritätsprüfungen. Wer verstehen will, warum dieser Nachfolger als sicher gilt, findet die Details in der Erklärung zu SHA-256.

Auch Git geriet ins Blickfeld. Das Versionskontrollsystem identifiziert Commits und Objekte über SHA-1, was nach SHAttered berechtigte Bedenken auslöste. Als unmittelbare Schutzmaßnahme integrierten Git und andere Projekte eine Kollisionserkennung, die verdächtige Eingaben aufspürt, welche den Mustern eines SHAttered-artigen Angriffs ähneln. Praktischerweise stammt diese Erkennung teils von denselben Forschern, die den Angriff entwickelt hatten.

Eine wichtige Unterscheidung sei betont. SHAttered demonstrierte eine Kollision, also zwei vom Angreifer wählbare Eingaben mit demselben Hash. Das ist nicht dasselbe wie eine Preimage-Attacke, bei der man zu einem vorgegebenen Hash eine passende Eingabe findet. Gegen Preimage-Angriffe bleibt SHA-1 weiterhin widerstandsfähig. Für jeden Einsatzzweck, der von Kollisionsresistenz abhängt, etwa digitale Signaturen, ist SHA-1 jedoch endgültig ungeeignet.

Bedeutung heute

Warum sollte ein Angriff von 2017 noch interessieren? Weil seine Lehren weiterwirken. SHAttered führte vor Augen, dass kryptografische Primitive ein Verfallsdatum besitzen. Ein Algorithmus, der jahrelang als sicher galt, kann durch bessere Analyse und billigere Rechenleistung kippen. Die Konsequenz lautet kryptografische Agilität: Systeme sollten so gebaut sein, dass sich ihre Hashfunktion austauschen lässt, bevor ein Bruch zum Notfall wird.

Eine zweite Lehre betrifft den Unterschied zwischen theoretisch und praktisch gebrochen. Zwischen Wangs Resultat von 2005 und der echten Kollision von 2017 lagen zwölf Jahre. In dieser Zeitspanne hielten manche SHA-1 noch für tolerierbar. SHAttered beendete diese Debatte und mahnt, Warnsignale aus der Kryptoanalyse ernst zu nehmen, statt auf den finalen Beweis zu warten.

Die Prinzipien hinter Hashfunktionen und ihrer Sicherheit reichen weit über Zertifikate hinaus. Sie bilden das Fundament für moderne Anwendungen wie verifizierbare Zufälligkeit. Wer sehen möchte, wie ein nachprüfbarer Fairness-Beweis auf solchen Bausteinen aufbaut, kann sich anschließend mit Provably Fair beschäftigen. Einen breiteren Überblick über das gesamte Themenfeld bietet unsere Kryptografie-Übersicht, und der Ausgangspunkt für das SHAttered-Projekt bleibt die Startseite.

Häufige Fragen

Ist SHA-1 heute vollständig unsicher?

Für jeden Zweck, der Kollisionsresistenz benötigt, ja. Digitale Signaturen und vergleichbare Anwendungen sollten SHA-1 nicht mehr verwenden. Gegen Preimage-Angriffe gilt SHA-1 weiterhin als widerstandsfähig, doch dieser Restschutz rechtfertigt keinen Neueinsatz. Die klare Empfehlung lautet, auf SHA-256 oder eine andere moderne Funktion zu wechseln.

Bedeutet die Kollision, dass jeder meine SHA-1-Hashes fälschen kann?

Nein. Der Angriff verlangte etwa 2^63,1 Berechnungen und damit eine Rechenleistung im Bereich vieler CPU- und GPU-Jahre. Das liegt für gut finanzierte Organisationen in Reichweite, nicht aber für eine beliebige Einzelperson mit einem Laptop. Die eigentliche Gefahr besteht darin, dass die Kosten mit der Zeit weiter sinken, weshalb die Migration trotzdem dringend bleibt.

Was ist der Unterschied zwischen einer Kollision und einer Preimage-Attacke?

Bei einer Kollision sucht der Angreifer zwei beliebige Eingaben mit demselben Hash und kann beide frei gestalten, genau wie bei den SHAttered-PDFs. Bei einer Preimage-Attacke ist der Hash fest vorgegeben, und gesucht wird eine Eingabe, die genau diesen Wert erzeugt. Eine Preimage-Attacke ist deutlich schwerer, und SHAttered hat sie nicht demonstriert.

Kann ich die kollidierenden Dateien selbst überprüfen?

Ja. Laden Sie shattered-1.pdf und shattered-2.pdf herunter und berechnen Sie deren SHA-1-Werte mit einem beliebigen Werkzeug. Beide ergeben denselben Digest 38762cf7f55934b34d179ae6a4c80cadccbb7f0a, obwohl sich die Dateien unterscheiden. Die technischen Details dazu stehen im Paper.