Original-URL des Artikels: https://www.golem.de/news/imho-heartbleed-und-die-folgen-tls-entruempeln-1404-105926.html    Veröffentlicht: 17.04.2014 08:21    Kurz-URL: https://glm.io/105926

IMHO - Heartbleed und die Folgen

TLS entrümpeln

Die Spezifikation der TLS-Verschlüsselung ist ein Gemischtwarenladen aus exotischen Algorithmen und nie benötigten Erweiterungen. Es ist Zeit für eine große Entrümpelungsaktion.

Definiert ist sie im RFC 6520: die sogenannte Heartbeat-Erweiterung für den Verschlüsselungsstandard TLS (Transport Layer Security). Sie soll bei langlebigen Verbindungen dafür sorgen, dass Server und Client sich regelmäßig Signale senden, um Verbindungsabbrüche zu vermeiden. Doch benutzt wird dies nirgends. Bei der Recherche zu diesem Artikel gelang es dem Autor nicht, auch nur eine einzige Software ausfindig zu machen, die Heartbeat benötigt. Der Code für diese TLS-Erweiterung sorgte zwar für eine der größten Sicherheitslücken in der Geschichte des Netzes, aber brauchen tut ihn offensichtlich niemand.

Die Heartbleed-Lücke ist nicht das erste Sicherheitsproblem in einer kaum genutzten TLS-Funktion. 2012 machte die sogenannte CRIME-Attacke Schlagzeilen. Sicherheitsforscher hatten herausgefunden, dass die Kompressionsfunktion von TLS unter Umständen Informationen über den verschlüsselten Datenstrom preisgibt. Die lapidare Empfehlung für Webserverbetreiber: Schaltet die TLS-Kompression einfach ab, denn die Browser benutzen sie sowieso nicht.

Ein Blick auf die Standardisierungsdokumente der Internet Engineering Task Force (IETF), die sogenannten RFCs, offenbart eine riesige Zahl an Erweiterungen und zusätzlichen Algorithmen für TLS. Viele davon sind in OpenSSL und anderen Bibliotheken implementiert - und viele davon sind völlig nutzlos, denn niemand macht von ihnen Gebrauch.

Kein HTTPS-Server nutzt ein ECDSA-Zertifikat

Es gibt beispielsweise drei mögliche Schlüsselarten für den Aufbau einer TLS-Verbindung: RSA, DSA und ECDSA. Doch ein Blick auf die gültigen Zertifikate im Netz zeichnet ein eindeutiges Bild: HTTPS-Server nutzen knapp drei Millionen gültige RSA-Zertifikate, sieben gültige DSA-Zertifikate und kein einziges ECDSA-Zertifikat. Bei den nicht validen Zertifikaten sind es zwar einige mehr, aber dabei handelt es sich vermutlich überwiegend um Testinstallationen. Kaum jemand möchte offenbar DSA und ECDSA für normale HTTPS-Webseiten nutzen.

Bei ECDSA, einem Signaturalgorithmus auf Basis elliptischer Kurven, könnte man noch argumentieren, dass seine Zeit noch nicht gekommen ist und Zertifizierungsstellen erst abwarten müssen, bis ein Großteil der Browser diesen Algorithmus unterstützt. Allerdings gibt es auch einige Kritik an ECDSA, und es ist im Moment unwahrscheinlich, dass dieser Algorithmus jemals eine große Verbreitung finden wird.

Fast niemand würde DSA vermissen

Eindeutig ist die Situation allerdings bei DSA. Der Digital Signature Algorithm, ein Standard der US-Behörde Nist, ist eine Abwandlung des Elgamal-Verfahrens und basiert auf dem diskreten Logarithmusproblem. Ursprünglich war DSA nur für eine Schlüssellänge von 1.024 Bit spezifiziert, was aus heutiger Sicht als unsicher gilt. Inzwischen kann man DSA auch mit längeren Schlüsseln einsetzen, das wird allerdings vom Internet Explorer nicht unterstützt. Dass ein Webseitenbetreiber unter diesen Umständen DSA einsetzt, ist kaum anzunehmen. Der Sicherheitsstandard schneidet bei DSA eher schlechter ab als bei RSA. Der Aufwand für einen Angriff ist zwar vergleichbar, aber DSA ist insbesondere dann problematisch, wenn schwache Zufallszahlen eingesetzt werden. Man könnte DSA ohne weiteres aus dem TLS-Standard, aus allen Browsern und aus allen TLS-Bibliotheken entfernen. Kaum jemand würde ihn vermissen.

Doch OpenSSL enthält Code für DSA-Verbindungen. Auch die von Mozilla und Chrome genutzte NSS-Bibliothek unterstützt DSA-Schlüssel - Code, den vermutlich selten jemand zu Gesicht bekommt. Häufig ist in den vergangenen Tagen über das Viele-Augen-Prinzip bei freier Software diskutiert worden. Genau hier liegt das Problem: In den TLS-Bibliotheken gibt es Ecken, die niemanden interessieren, weil sie niemand benutzt. Also wirft auch selten jemand einen Blick darauf. Trotzdem können diese Codeteile zur Gefahr werden, wenn sie in der Standardkonfiguration aktiviert sind. Sollte ein Angreifer eine Sicherheitslücke im DSA-Code finden, könnte er diese möglicherweise mit einem fehlerhaften Zertifikat ausnutzen.

Geister aus der Vergangenheit loswerden

Der Gost-Standard hat einen durchaus treffenden Namen, denn es handelt sich um einen Geist aus der Vergangenheit: Er ist ein Verschlüsselungsstandard aus der Sowjetunion, den die Russische Föderation bis heute mit Updates und neuen Varianten versorgt. Für X.509-Zertifikate kann man Gost bereits benutzen, die entsprechende TLS-Spezifikation existiert nur als Entwurf und wurde nie verabschiedet. Das hält OpenSSL jedoch nicht davon ab, die entsprechenden Algorithmen zu implementieren. Von ihnen geht glücklicherweise keine allzu große Gefahr aus: In der Standardeinstellung sind diese Codeteile zwar vorhanden, werden aber für TLS-Verbindungen nicht genutzt.

Geradezu bizarr mutet angesichts der TLS-Featuritis an, dass es sinnvolle Erweiterungen oftmals sehr schwer haben. Seit über einem Jahr diskutiert die TLS-Arbeitsgruppe über einen Entwurf von Peter Gutmann, der die Sicherheit des CBC-Modus in TLS erhöhen würde. Die Reihenfolge von Authentifizierung (MAC) und Verschlüsselung soll dabei von MAC-then-encrypt auf die bessere Variante Encrypt-then-MAC geändert werden. Encrypt-then-MAC ist absolut sinnvoll und eine direkte Konsequenz aus der Lucky-Thirteen-Attacke, die nur möglich war, weil TLS auf die unsichere Kombination MAC-then-encrypt setzt. Trotzdem bekam Gutmann einigen Gegenwind bei seinen Bemühungen um die Standardisierung.

Der TLS-Standard ist zu komplex geworden

Das OpenBSD-Team hat gerade mit einer Aufräumaktion im OpenSSL-Code angefangen. Dabei ist ihm viel Glück zu wünschen, und es bleibt zu hoffen, dass ein Großteil dieser Änderungen von den OpenSSL-Entwicklern übernommen wird. Die TLS-Arbeitsgruppe wird vermutlich in Kürze den unsicheren Verschlüsselungsalgorithmus RC4 aufgeben. Für TLS 1.3 ist geplant, auf die Kompression, die Renegotiation-Erweiterung und alle Cipher ohne Forward Secrecy zu verzichten. Das wäre immerhin ein Anfang.

Es wird Zeit für eine große Entrümpelungsaktion im TLS-Standard. Das Protokoll ist längst viel zu komplex geworden. In den RFCs sind noch einige Features versteckt, die niemand benötigt. Wir sollten diese abschalten, bevor der nächste Heartbleed-Bug darin entdeckt wird.

IMHO ist der Kommentar von Golem.de. IMHO = In My Humble Opinion (Meiner bescheidenen Meinung nach)  (hab)


Verwandte Artikel:
ROBOT-Angriff: Arbeitsagentur nutzt uralte Cisco-Geräte   
(09.03.2018, https://glm.io/133258 )
Trustico/Digicert: Chaos um 23.000 Zertifikate und private Schlüssel   
(01.03.2018, https://glm.io/133077 )
Middleboxen: TLS 1.3 soll sich als TLS 1.2 verkleiden   
(08.11.2017, https://glm.io/131018 )
Verschlüsselung: TLS 1.3 ist so gut wie fertig   
(16.02.2018, https://glm.io/132828 )
JoltandBleed: Oracle veröffentlicht Notfallpatch für Universitäts-Software   
(20.11.2017, https://glm.io/131238 )

© 1997–2020 Golem.de, https://www.golem.de/