Kritische OpenSSL-Lücke erlaubt gefälschte Server-Zertifikate

Verwundbare Versionen der Kryptobibliothek prüfen die Zertifikatskette nicht richtig, was es Angreifern ermöglicht, eigene Zertifikate für beliebige Domains auszustellen.

In Pocket speichern vorlesen Druckansicht 70 Kommentare lesen
Schlüssel
Lesezeit: 3 Min.
Von
  • Fabian A. Scherschel

Die Entwickler der Kryptobibliothek OpenSSL haben wie angekündigt eine kritische Lücke in ihrer Software geflickt (CVE-2015-1793). OpenSSL prüft demnach das CA-Flag eines Zertifikats unter bestimmten Unständen nicht richtig. Das kann dazu führen, dass ein Angreifer sich als Intermediate-CA ausgeben und eigene Zertifikate für die Webseiten anderer Betreiber signieren kann. Damit kann er sich dann zum Beispiel als die Hausbank des Opfers ausgeben.

In der Prüfung eines Server-Zertifikates muss der Client eigentlich die gesamte Zertifikatskette zurückgehen und prüfen, dass jedes unterschreibende Zertifikat dazu berechtigt ist, Zertifikate auszustellen. Diese Berechtigung wird durch die sogenannte CA-Flag geregelt. Unter bestimmten Umständen prüfen angreifbare OpenSSL-Versionen die Kette aber nicht richtig, so dass ein Besitzer jedes gültigen Zertifikates ein Zertifikat für eine beliebige Webseite (etwa meinebank.de) unterschreiben kann. Um den Bug auszulösen, muss ein Angreifer bei seinem Ziel wohl dafür sorgen, dass die Prüfung der ersten Zertifikatskette fehlschlägt – beim zweiten Versuch mit einer Alternativ-Kette greift dann die Schwachstelle. Der anfällige Code für die Prüfung weiterer Zertifikats-Ketten wurde offenbar erst im Januar in OpenSSL eingefügt.

Bei näherer Betrachtung erscheint die Lücke nicht mehr ganz so dramatisch wie es zunächst den Anschein hat. Server, also das Haupteinsatzgebiet von OpenSSL, sind von der Lücke eher weniger betroffen, da Client-Zertifikate nur in Ausnahmen zum Einsatz kommen. Bei Clients ist die Angriffsfläche ebenfalls kaum vorhanden, da dort nur selten OpenSSL zum Einsatz kommt. Firefox nutzt Mozillas NSS-Bibliothek und der Internet Explorer verwendet die Krypto-Infrastruktur von Windows. Chrome verhält sich ähnlich oder benutzt Googles OpenSSL-Fork BoringSSL. Das kommt auch bei aktuellen Android-Versionen zum Einsatz. Weder BoringSSL noch das OpenSSL auf älteren Android-Versionen haben die Lücke geerbt. Das jedenfalls gibt Adam Langley auf Twitter zu Protokoll, der das BoringSSL-Team leitet und die OpenSSL-Lücke mit entdeckt hatte. Da auch iOS nicht auf OpenSSL setzt, bleiben nicht allzu viele anfällige Client-Applikationen.

Betroffen sind die Versionen OpenSSL 1.0.2c, 1.0.2b, 1.0.1n und 1.0.1o. Die ausgebesserten Versionen (OpenSSL 1.0.2d und 1.0.1p) können auf der Webseite des OpenSSL-Projektes heruntergeladen werden. Ganz neu ist diese Art von Bug übrigens nicht. Apple hatte vor einigen Jahren ein sehr ähnliches SSL-Problem mit iOS. (fab)