Erstellt am: 13. 4. 2014 - 17:47 Uhr
Der "Heartbleed"-Bug und die NSA
Zur laufenden Debatte, ob der fatale "Heartbleed Bug" nun eine absichtlich gesetzte Hintertür oder doch ein bloßer Designfehler in einer Erweiterung zum TLS/SSL-Protokoll ist, lässt sich nun Einiges bereits mit Sicherheit sagen. Von Auswirkung und "Machart" sieht der Heartbleed Bug nachgerade wie eine prototypische NSA-Backdoor aus, die im Rahmen des berüchtigten "Bullrun"-Programm der NSA gezielt in Verschlüsselungsstandards eingeschleust wurde.
Update 2014 04 16
Zwei technische Details wurden weiter unten präzisiert
Heartbleed
Obendrein gibt es auffällige, stukturelle Parallelen zwischen "Heartbleed" und einer nachgewiesenermaßen von der NSA gesetzten "Backdoor" im selben TSL/SSL-Protokoll. Ein internationales Team akademischer Kryoptographen hat diese Hintertür gerade in mühsamer Kleinarbeit analysiert. Der "Heartbleed"-Bug unterscheidet sich von dieser echten Hintertür in einem entscheidenden Punkt, der dagegen spricht, dass "Heartbleed" in dieselbe Kategorie fällt. (siehe weiter unten).
In Österreich haben unmittelbar nach dem Bekanntwerden dieser fatalen Sicherheitslücke die Aufräumarbeiten begonnen und dürften weitgehend abgeschlossen sein. Weltweit waren am Wochenende weit über 80 Prozent der anfälligen Server durch ein Sicherheitsupdate von OpenSSL geschützt
Bei der Recherche zum Thema hat der Wiener Sicherheitsforscher Michael Kafka nun quasi nebenbei herausgefunden, dass dieses heimtückische NSA-Programm bereits wesentlich länger läuft, als bis jetzt angenommen wurde. Der (virtuelle) Ort der Handlung ist ebenfalls derselbe wie das Setting rund um den "Heartbleed"-Bug. Alle in Folge geschilderten Vorgänge sind in jenem Gremium passiert, aus dem sämtliche Internetstandards stammen, der Internet Engineering Task Force (IETF).
Das "Bullrun"-Programm der NSA
Im Rahmen von "Bullrun", das gerade unter Netzwerkern und Sicherheitsspezialisten für besondere Empörung gesorgt hat, schleusen NSA-nahe Techniker möglichst plausibel wirkende Änderungen und Erweiterungen in bestehende Verschlüsselungsprotokolle ein, um diese auszuhebeln. Vom Phänomen passt der "Heartbleed"-Bug hier also ganz exakt ins Schema: Mit TSL/SSL betrifft er noch dazu jenes Protokoll, auf dem so gut wie alle Verschlüsselungsvorgänge im Internetverkehr aufsetzen.
Der gravierende Designfehler ist nämlich nicht erst in der Umsetzung in der verbreiteten "OpenSSL"-Version entstanden, er ist vielmehr bereits in der übergeordneten Protokollerweiterung "Heartbeat" selbst angelegt. In beiden Fällen war der deutsche Techniker Robin S. maßgeblicher Autor, sowohl die "Heartbeat-Erweiterung" zum TLS/SSL-Protokoll wurde von ihm eingebracht, wie er auch für die praktische Umsetzung in OpenSSL verantwortlich zeichnet.
Die Heartbeat-Erweiterung wurde im Februar 2012 als IETF-Standard mit der Nummer RFC 6520 verabschiedet
heartbleed
Diagnose Herzblutung
An dieser Schlüsselpassage der "Heartbeat"-Erweiterung zum TLS/SSL Protokoll gibt es für den Sicherheitsexperten Kafka gleich mehrere Auffälligkeiten. Zum einen sei es ziemlich ungewöhnlich, dass einer Protokollerweiterung, die eigentlich nur dazu dienen solle, dass der Server die Verbindung während des Verschlüsselungsvorgangs nicht abbreche, gleich 16 Bit zugewiesen werden, sagte Kafka zu ORF.at.
Das britische Pendant im GCHQ zum "Bullrun"-Programm der NSA nennt sich "Edgehill", der Ansatz ist dabei identisch. Kernstück ist in beiden Fällen, dass der Verschlüsselungsaufbau kompromittiert wird, weil Zufallszahlen eben nicht zufällig sind. Bereits 2011 wurde ein von GCHQ-Technikern eingebrachter Normenentwurf des European Telecom Standards Institute, hier als "Facebook-Überwachungsstandard ausführlich beschrieben. Dass es sich dabei um ein Teilprogramm von Bullrun/Edgehill handelt, wurde erst nach Edward Snowdens Enthüllungen klar.
Mit diesen "Heartbeat Messages" solle ja nur ein Art "ping" an den Server gehen, um zu verhindern, dass ein Abbruch eine Neuaushandlung eines Schlüssels für die aktuelle Session erzwingt", sagte Kafka. Zweck der "Heartbeat"-Erweiterung sei es ja, zu vermeiden, dass mehrere Aushandlungsverfahren für diese temporären Schlüssel pro "Session" nötig werden.
Fatale Großzügigkeit
Ebenso ungewöhnlich, weil wenig sinnhaft für den ursprünglichen Zweck sei, dass neben dem eigentlichen "Ping"-Befehl selbst auch noch frei definierbare Variablen gesetzt werden müssten. "Weist man dem Vorgang obendrein noch 16 Bit zu, dann könnten damit 64 Kilobyte angesteuert werden.", so Kafka weiter: "Hier war man bereits auf Standardebene wohl etwas zu großzügig".
Diese "Generosität" führt dazu, dass ein Angreifer den eigentlichen Befehl mit einer falschen Angabe über "payload lenghth" (Paketgröße), das ist die Anzahl der im Befehl verwendeten Buchstaben, kombinieren kann. In Folge wirft bis zu 64 Kilobyte seines RAM-Speichers an den Angreifer aus. Daher kommt auch der Name "Heartbleed", denn wiederholte Angriffe bringen den Server dazu, den jeweiligen RAM-Inhalt in 64-KB-Paketen nacheinander auszuspucken. Fatalerweise ist irgendwann auch der geheime Schlüssel des Servers mit dabei. Von da an ist der betreffende Rechner restlos und dauerhaft kompromittiert, so, als würde keine Verschlüsselung verwendet.
Parallelen zu einer echten Backdoor
Der Anfang April veröffentlichte Bericht des internationalen Kryptografenteams über nachweislich von NSA-Technikern im selben Protokoll an anderer Stelle eingebrachte Erweiterungsvorschläge ist in diesem Zusammenhang besonders interessant. Die Spezialisten rund um den Kryptografieprofessor Matthew Green unterziehen da einen bereits seit längerem als verdächtig geltenden Generator von (Pseudo-)Zufallszahlen namens "Dual EC DRBG", der ebenfalls von NSA-Technikern stammt, einem Feldversuch. Mit dem Grad an eingebrachter Zufälligkeit steht und fällt jeder Verschlüsselungsvorgang, sind diese Zahlen nämlich berechenbar, nützt auch der sicherste Schlüssel nichts.
"Wenn man 'Dual Elliptic Curve' ein Spiel mit dem Feuer ist, dann bedeutet die Zugabe von 'Extended Random', sich gleichzeitig mit Benzin zu übergießen", so kommentiert Matthew Green den Feldversuch "On the Practical Exploitability of Dual EC in TLS Implementations"
Dass Dual-EC-DRBG aufgrund seiner integrierten Gleichungen für elliptische Kurven hier eklatante Schwächen hat, wurde bereits 2008 erstmals ruchbar. Die Folge war, dass Dual-EC-DRBG keine besonders große Verbreitung in den Umsetzungen fand, weil man dafür eben andere Zahlengeneratoren verwendete. Die führende Verschlüsselungsfirma RSA setzte ihn jedoch in mehreren Produkten trotzdem ein, da es sich bei "Dual EC DRBG" eben um eine Norm des "National Standards Institute" der USA handelte.
Aus den oberen Etagen der NSA
Im Jahr 2008 wurde in der IETF nun eine Erweiterung zum TLS/SSL-Protokoll namens "Extended Random" vorgeschlagen. Auch dieser Entwurf stammt von der NSA, allerdings nicht von irgendeinem Techniker. Als Co-Autorin ist Margaret Salter ausgewiesen und die ist technische Leiterin des "Information Assurance Directorate" (IAD).
Das ist eine der beiden Hauptabteilungen, aus denen die NSA besteht. Während das "Signal Intelligence Directorate" (SIGINT) der NSA für Spionage zuständig ist, ist das IAD mit der Absicherung der eigenen Informationslinien gegen Spionage betraut. "Extended Random" stammt also nachgewiesenermaßen aus der obersten Etage der NSA-Führung.
Verblüffende Knackeffekte
Der Zwischenbericht des Kryptografenteams brachte Anfang April zwei grundlegende Erkenntnisse. In einem Feldversuch mit einem speziell zum Brechen von Algorithmen optimierten Rechnercluster im Gegenwert von 40.000 Dollar gelang es den Kryptografen, einen Verschlüsselungsvorgang, der seine Zufallselemente aus dem Dual EC DRBG bezog, innerhalb von 90 Minuten zu knacken. Das entsprach etwa den Prognosen; die eigentliche Überraschung passierte aber erst, als die Protokollerweiterung "Extended Random" zusätzlich implementiert wurde.
Die Prozedur, um den verwendeten Schlüssel herauszurechnen, wurde durch "Extended Random" um den Faktor 65.000 beschleunigt, was große Verblüffung unter den Forschern zur Folge hatte. Die auf weniger als drei Sekunden reduzierte "Knackzeit" dieser Kombination hätte nämlich dafür gesorgt, dass die NSA Serverschlüsselungen quasi am Fließband knacken kann. Der Protokollerweiterung "Extended Random" für TLS/SSL selbst war diese verblüffende Wirkung ebenso wenig anzusehen, wie man vornherein gemutmaßt hätte, dass eine fehlerhafte Implementation der "Heartbeat"-Erweiterung dazu führen kann, dass ein entsprechend angegriffener Server mit dem Auswerfen von 64 Kilobyte seines RAM-Zwischenspeichers reagiert.
Der Ursprung des "Bullrun"-Programms
"Der Angriff besteht hier aus zwei Elementen", sagte Kafka, "ein insgesamt schwacher Krypto-Algorithmus wird durch eine Schwächung auf Ebene des TLS/SSL-Protokolls durch Extended Random kompromittiert. Etwa 40 Prozent der "Zutaten" für die Zufallszahlen sind einem Angreifer nämlich von vornherein bekannt, weil sie noch vor dem Verschlüsselungsvorgang im Klartext übertragen werden."
extended random
Anders als bei der durchaus nützlichen "Heartbeat"-Erweiterung, war den in der IETF beteiligten Technikern aus der Zivilgesellschaft unklar, welche praktischen Vorteile die Erweiterung "Extended Random" bringen sollte. Beі der Recherche in einem weiteren IETF-Archiv, das auch alle abgelehnten Entwürfe dauerhaft listet, machte Kafka dann eine erstaunliche Entdeckung. Bereits 2006 war ein fast wortidenter Entwurf unter dem Titel "Opaque Random" bei der IETF eingereicht worden - ebenfalls von Margaret Salter, die ungefähr um diese Zeit auch zur Technischen Leiterin des IAD befördert wurde.
Auch 2006 war der Entwurf aus den nämlichen Gründen wie später 2008 abgelehnt worden. "Es ist nur klar, dass dies die 'untere Ebene' irgendeines Mechanismus ist, der irgendwas Nützliches tun soll", hieß es dazu auf der IETF-Mailinglist 2008. Da man nichts Näheres darüber wisse, könne man dem Entwurf auch nicht zustimmen. "Opaque Random" wurde abgelehnt.
Der fast wortgleiche Entwurf von "Opaque Random" ist mit 13. Dezember 2006 datiert
heartbleed
"Bullrun" wurde bereits 2006 gestartet
Nach dieser Entdeckung Kafkas muss die Laufzeit des "Bullrun"-Programms der NSA nun rückdatiert werden. "Opaque Random" ist das früheste bis jetzt bekannte Indiz dafür, dass dieses heimtückische Programm zur Sabotage der internationalen Verschlüsselungsstandards in seinen Grundzügen bereits 2006 feststand. Es muss schon bald nach Amtsantritt des im Frühjahr 2014 pensionierten NSA-Direktors Keith Alexander geplant worden sein, der dieses Amt im August 2005 angetreten hatte.
Michael Kafka ist seit Jahren Mitorganisator der Deespec-Konferenz an Wien. Die unterscheidet sich von anderen Sicherheitskonferenzen, weil es dort statt der üblichen Präsentationen von Produkten gibt, "Hands-On"-Workshops mit ausgewählten Hackern der Oberklasse gibt. Ebenso ungewöhnlich ist, dass Vertreter von Behörden bis hin zu den Geheimdiensten ebenso ausdrücklich willkommen sind, wie Mitglieder der Hacker-Community.
Was die "Heartbeat"-Protokollerweiterung betrifft, so unterscheidet sich die in einem entscheidenen Punkt, wie man sieht. Während die IETF-Techniker in "Opaque Random" bzw. "Extended Random" keine nützliche Funktion für das TLS/SSL-Protokoll erkennen konnten, hat die Heartbeat-Funktion eine durchaus praktische Bedeutung. Sie verhindert Abbrüche des Verschlüsselungsvorgangs, wodurch eine rechenintensive Neuaushandlung von Sitzungsschlüsseln hintangehalten wird. Die Belastung des Servers wird so bei jedem einzelnen Verschlüsselungsvorgang verringert.
Wie es zu "Heartbleed" kam
Auch dafür, wie es zur einigermaßen rätselhaften, weil viel zu "großzügigen" Parametrierung für die "Heartbeats" im TLS/SSL-Protokoll kam, gibt es mittlerweile eine technisch schlüssige Erklärung. Die Parameter wurden offensichtlich eins zu eins von einem eng verwandten Protokoll namens "Datagram Transport Layer Security (DTLЅ) übernommen, wo solch frei zu setzende Parameter tatsächlich Sinn ergeben.
DTLS ist weit stärker von Abbrüchen des Verschlüsselungsvorgangs gefährdet und auch die Größe der Datenpakete ist dabei ein kritisches Element. Eine dort tatsächlich notwendige Maßnahme gegen Abbrüche des Verschlüsselungsvorgangs wurde so eins zu eins in TLS übernommen, wo eine solche Parametrierung dann die erwähnten, fatalen Folgen zeitigte: den "Heartbleed"-Bug.
Das NSA-Dementi folgte auf diese Story von Bloomberg, die ebenso davon ausgeht, dass die NSA hie NSA Bescheid gewusst haben muss
Notwendiges Dementi der NSA
Auch die NSA setzte in dieser rundum erstaunlichen Angelegenheit einen für sie ungewöhnlich eindeutigen Schritt. Eine Sprecherin dementierte jede Beteiligung am "Heartbleed"-Bug. Weiters dementiert wurde, dass die NSA überhaupt über die Existenz des Bugs länger Bescheid wusste, als die breite Öffentlichkeit. Hätte man den "Heartbleed"-Bug nämlich gekannt, wäre die Öffentlichkeit von der NSA über diese Gefahr informiert worden, hieß es.
Angesichts dessen, dass die NSA über eine ganze Armee von Mathematikern und Technikern verfügt, deren Kernaaufgabe es ist, genau solche Schwachstellen in der Verschlüsselung zu finden, ist das wenig glaubhaft. Dieses Dementi war jedoch aus rechtlichen Gründen nötig, weil OpenSSL auch von US-Behörden und Unternehmen massenhaft genützt wird.
Wenn das Direktorat für Informationssicherheit IAD der NSA, dessen Kernaufgabe wiederum ist, die Kommunikation von US-Behörden und Unternehmen gegen andere Geheimdienste zu sichern, davon gewusst und nicht davor gewarnt hätte, wäre das einem krassen Verstoß gegen die Mission des IAD gleichgekommen.
Dringender Expertentipp
Jetzt sei der genaue Zeitpunkt für einen Passwortwechsel vor allem bei jenen Websites, die auf SSL/TLS basieren, sagt Michael Kafka. Auch wenn der betreffende Webserver gar kein Problem hatte, sei dies ein guter Anlass, den eigenen Umgang mit Passwörtern im Web zu überdenken.
Böse Überraschungen der Zukunft
"Opaque Random" bzw. "Extended Random" entstammen beide aus der Anfangszeit des Bullrun-Programms, während die Entwicklung seit 2009 noch völlig unaufgearbeitet ist. Auch Michael Kafka meint, dass die eigentlich bösen Überraschungen erst noch kommen werden, ein starkes Indiz dafür findet sich in der Statistik der RFCs im IETF. Von insgesamt 26 RFC-Entwürfen aus der NSA seit dem Jahr 1975 (sic!) datieren zwei Drittel in die Jahre ab 2009. Anders als die "opaken" oder "erweiterten" Zufallszahlen wurde das Gros dieser Vorschläge auch in den Standardrang erhoben.
Aus diesem Grund ist eine Folgestory in Vorbereitung.