Kryptographie: Der Debian-Bug im OpenSSL-Zufallszahlengenerator

Einer der schwerwiegendsten Fehler in der Geschichte der Kryptographie beschäftigte vor zehn Jahren Nutzer der Debian-Distribution. Wenn man danach sucht, findet man noch heute vereinzelt verwundbare Schlüssel.

Artikel von veröffentlicht am
An einigen Stellen findet man immer noch alte kryptographische Schlüssel, die sich dank eines zehn Jahre alten Debian-Bugs knacken lassen.
An einigen Stellen findet man immer noch alte kryptographische Schlüssel, die sich dank eines zehn Jahre alten Debian-Bugs knacken lassen. (Bild: Bubo/Wikimedia Commons/CC-BY-SA 3.0)

Es war ein GAU in Sachen Verschlüsselung: 2008 entdeckte der Debian-Entwickler Luciano Bello einen Bug, der für einen Zeitraum von zwei Jahren dazu führte, dass der Zufallszahlengenerator von OpenSSL praktisch unbrauchbar wurde. Bis heute finden sich vereinzelt verwundbare private Schlüssel im praktischen Einsatz.

Grund für den Fehler war ein Patch, mit dem eigentlich ein Problem behoben werden sollte. Der originale OpenSSL-Code nutzte für den Zufallszahlengenerator uninitialisierten Speicher. Die Debian-Entwickler störten sich daran, dass das Debugging-Tool Valgrind hierzu eine Warnung ausgab und wollten dieses Problem ausschalten.

Zufallszahlengenerator hatte nur noch 32.768 Möglichkeiten

An sich sprach auch nichts dagegen, doch der Patch enthielt einen gravierenden Fehler. Dieser führte dazu, dass fortan nur noch wenige Daten in den internen Status des Zufallszahlengenerators gelangten. Die einzige Quelle von zufälligen Daten war fortan die Prozess-ID der jeweils laufenden Softwareinstanz. Unter Linux kann die Prozess-ID Werte zwischen 1 und 32.768 annehmen - es gibt also nur eine relativ begrenzte Zahl an Möglichkeiten.

Die größten Auswirkungen hatte der Fehler auf die Erzeugung von kryptographischen Schlüsseln. Er unterschied sich je nach Architektur, Version und Konfiguration des jeweiligen Systems, doch insgesamt gab es für jede Schlüsselgröße nun nur noch einige Hunderttausend mögliche Varianten. Die Folge: Wer mit OpenSSL einen privaten Schlüssel für ein Serverzertifikat erzeugte, musste damit rechnen, dass ein Angreifer schlicht alle möglichen Schlüsselvarianten erzeugte und somit ebenso in den Besitz des privaten Schlüssels kam.

Nicht nur OpenSSL war davon betroffen, auch andere kryptographische Software, die OpenSSL nutzt, erzeugte knackbare Schlüssel, darunter OpenSSH und OpenVPN.

Die Schlüsselerzeugung war dabei nur das offensichtlichste Problem, auch Software, die kryptographische Verbindungen herstellt - etwa ein Webserver -, konnte durch den Bug angegriffen werden. Allerdings gestalteten sich solche Angriffe etwas komplizierter, da der genaue Status des Zufallszahlengenerators nur schwer vorhersehbar ist, wie eine damals veröffentlichte wissenschaftliche Abhandlung erläutert.

Immer noch verwundbare Keys im Einsatz

Obwohl das Ganze schon zehn Jahre her ist, sind vereinzelt immer noch verwundbare private Schlüssel zu finden. 2015 fand der Softwareentwickler Ben Cox bei Github zahlreiche öffentliche SSH-Schlüssel von Entwicklern mit dem alten Debian-Bug. Damit hätte man einige prominente Code-Repositories manipulieren können, etwa das von Python.

Bei TLS-Zertifikaten für Webseiten sollte es theoretisch unmöglich sein, solche verwundbaren Schlüssel zu verwenden. Alle Zertifikate, die damals gültig waren, sind längst abgelaufen. Die Baseline Requirements, ein Regelwerk, auf das sich Zertifizierungsstellen und Browserhersteller geeinigt haben, sieht vor, dass bei der Zertifikatsausstellung geprüft wird, ob ein bekannter kompromittierter Schlüssel verwendet wird. Der Debian-OpenSSL-Bug wird dabei explizit als Beispiel erwähnt.

Trotzdem tauchen immer noch Zertifikate auf, die von dem Bug betroffen sind. Im vergangenen Jahr gelang es dem Autor dieses Artikels, ein Testzertifikat mit verwundbarem Schlüssel bei Let's Encrypt zu erstellen. Let's Encrypt hat inzwischen einen Check eingebaut, der eine solche Zertifikatsausstellung verhindert.

Auch fanden sich in den Daten der Certificate-Transparency-Logs zwei von der Zertifizierungsstelle Certum ausgestellte Zertifikate, deren Schlüssel mit einem verwundbaren Debian-System erzeugt wurden, ebenso Zertifikate der inzwischen nicht mehr von Browsern akzeptierten Zertifizierungsstellen Startcom und Wosign. Bei der Recherche zu diesem Artikel fand sich zudem ein weiteres Zertifikat, ausgestellt von der Zertifizierungsstelle Quo Vadis.

Der Debian-OpenSSL-Bug ist wohl eine der gravierendsten Sicherheitslücken in der Geschichte der Kryptographie. Entscheidend für die Langlebigkeit ist vor allem, dass nicht nur die Verschlüsselung, sondern die erzeugten privaten Schlüssel von der Lücke betroffen waren. Sucht man nach vergleichbaren Bugs, dann fällt einem am ehesten die ROCA-Sicherheitslücke in Infineon-Chips ein. Die führte im vergangenen Jahr dazu, dass unzählige Personalausweise, Krypto-Chipkarten und Produkte wie Yubikeys knackbare Schlüssel erzeugten.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Aktuell auf der Startseite von Golem.de
Künstliche Intelligenz
So funktioniert ChatGPT

Das mächtige Sprachmodell ChatGPT erzeugt Texte, die sich kaum von denen menschlicher Autoren unterscheiden lassen. Wir erklären die Technologie hinter dem Hype.
Ein Deep Dive von Helmut Linde

Künstliche Intelligenz: So funktioniert ChatGPT
Artikel
  1. i4: BMW lässt sich am Berg nicht updaten
    i4
    BMW lässt sich am Berg nicht updaten

    Die Besitzerin eines BMW i4 hat die Fehlermeldung entdeckt, ihr Parkplatz sei zu steil für ein Update der Bordsoftware.

  2. SAP-Chef Christian Klein: Wir werden auch in Deutschland weiter wachsen
    SAP-Chef Christian Klein
    "Wir werden auch in Deutschland weiter wachsen"

    SAP hat die Restrukturierungspläne verteidigt. Der Softwarekonzern aus Walldorf kündigte im Januar einen umfassenden Stellenabbau an.

  3. Entwickler: ChatGPT könnte Google-Job mit 183.000 Dollar Gehalt kriegen
    Entwickler
    ChatGPT könnte Google-Job mit 183.000 Dollar Gehalt kriegen

    Google hat ChatGPT mit Fragen aus seinem Entwickler-Bewerbungsgespräch gefüttert. Die KI könne demnach eine Einsteigerposition erhalten.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • RAM im Preisrutsch - neue Tiefstpreise! • Powercolor RX 7900 XTX 1.195€ • AMD Ryzen 7 5800X3D 329€ • Nur noch heute TV-Sale mit bis 77% Rabatt bei Otto • Lenovo Tab P11 Plus 249€ • MindStar: Intel Core i7 13700K 429€ • Logitech G915 Lightspeed 219,89€ • PCGH Cyber Week [Werbung]
    •  /