Abo
  • IT-Karriere:

Schlüsselaustausch: KCI-Angriff auf TLS missbraucht Clientzertifikate

Ein komplexer Angriff nutzt eine trickreiche Kombination aus Clientzertifikaten und einem statischen Diffie-Hellman-Schlüsselaustausch. Der Angriff ist nur in sehr speziellen Situationen relevant, doch es zeigt sich wieder einmal, dass das TLS-Protokoll selbst Sicherheitslücken hat.

Artikel veröffentlicht am , Hanno Böck
Beim Schlüsselaustausch mit dem statischen Diffie-Hellman-Verfahren kann manches schiefgehen.
Beim Schlüsselaustausch mit dem statischen Diffie-Hellman-Verfahren kann manches schiefgehen. (Bild: Nopetro~commonswiki/Wikimedia-Commons/CC by-sa 3.0)

Auf der Usenix-Konferenz haben Sicherheitsforscher einen neuen Angriff auf TLS vorgestellt. Beim Key-Compromise-Impersonation-Angriff (KCI) handelt es sich um eine Schwäche im Protokoll selbst und keinen Programmierfehler. Gelingt es einem Angreifer, einen Nutzer mittels Social Engineering davon zu überzeugen, ein bestimmtes Clientzertifikat zu installieren, können damit TLS-Verbindungen zu anderen Servern manipuliert oder übernommen werden. Allerdings funktioniert der Angriff nur, wenn der Client einen statischen Diffie-Hellman-Schlüsselaustausch unterstützt. Dieser gilt als exotisch und wird nur selten unterstützt.

Statischer Diffie-Hellman-Schlüsselaustausch

Stellenmarkt
  1. Modis GmbH, Hilden
  2. Fraunhofer-Institut für Produktionstechnik und Automatisierung IPA, Stuttgart

Bei einem normalen Diffie-Hellman-Schlüsselaustausch, auch Ephemeral Diffie-Hellman genannt, erzeugen beide Kommunikationspartner einen Zufallswert, aus dem die beim Handshake übertragenen Werte berechnet werden. Gemacht wird das vor allem, um Verbindungen mit Forward Secrecy zu gewährleisten. Der statische Diffie-Hellman-Schlüsselaustausch funktioniert hingegen ohne Zufallswert und bietet auch keine Forward Secrecy. Die Eingaben für den Diffie-Hellman-Schlüsselaustausch sind in einem Zertifikat festgelegt.

Bei einem Diffie-Hellman-Schlüsselaustausch haben beide Kommunikationspartner eine geheime Zahl (hier a und b) und potenzieren einen gemeinsamen Generator (g) damit. Der Server sendet also g^a und der Client g^b. Anschließend kann der Server (g^b)^a berechnen und der Client (g^a)^b. Beide Berechnungen ergeben denselben Wert, dieser wird anschließend zur Verschlüsselung und Authentifizierung der Verbindung genutzt. Bei einem gewöhnlichen Diffie-Hellman-Austausch sind a und b Zufallswerte, bei einem statischen Diffie-Hellman-Austausch sind a und b jedoch der private Schlüssel und g^a sowie g^b der öffentliche Schlüssel und Teil des Zertifikats.

Wenn ein Angreifer im Besitz eines Clientzertifikats samt dazugehörigem privatem Schlüssel ist, kann erfolgreich einem Nutzer eine fremde HTTPS-Seite vorgegaukelt werden. Dazu benötigt er zwar ein gültiges passendes Zertifikat der Webseite, allerdings ohne privaten Schlüssel. Der Server schickt nun den Wert g^a, ohne das dazugehörige a zu kennen. Da er aber den geheimen Schlüssel b kennt, kann er ebenso wie der Client die Berechnung (g^a)^b durchführen und damit die Verbindung aufbauen.

Laut den Autoren des Angriffs ist diese Schwäche des statischen Diffie-Hellman-Verfahrens eigentlich seit langem bekannt. Allerdings hatte bislang noch niemand versucht, einen entsprechenden Angriff im Rahmen von TLS durchzuführen und zu dokumentieren.

Clientzertifikat auf Rechner des Opfers

Um den Angriff praktisch durchzuführen, müssen einige Bedingungen erfüllt sein. Zunächst muss der Angreifer das Opfer dazu bringen, ein Clientzertifikat zu installieren. Das ist allerdings möglicherweise nicht sehr schwer. Clientzertifikate werden eher selten genutzt, aber es ist nicht unüblich, dass Webseiten diese für einen Nutzer erstellen und ihm nachher samt privatem Key zum Download anbieten. Empfehlenswert ist das zwar nicht, vielmehr sollte aus Sicherheitsgründen der private Key immer auf dem Client erstellt werden. Einige Browser bieten dafür den keygen-HTML-Tag an, allerdings wird gerade darüber diskutiert, dieses Feature zu entfernen. Das Userinterface bei der Installation von Clientzertifikaten warnt den Nutzer im Allgemeinen nicht vor möglichen Gefahren, anders als etwa bei der Installation von neuen Root-Zertifikaten. Das ergibt auch Sinn: Im Normalfall sollten zusätzliche Clientzertifikate keine Gefahr darstellen.

Für einen erfolgreichen Angriff benötigt der Angreifer weiterhin ein Serverzertifikat. Da das statische Diffie-Hellman-Verfahren nahezu nie von Webseiten genutzt wird, haben üblicherweise Server kein derartiges Zertifikat. Allerdings: Beim Diffie-Hellman-Schlüsselaustausch mit elliptischen Kurven (ECDH) hat das Serverzertifikat dieselbe Struktur wie ein ECDSA-Zertifikat. Und ECDSA-Zertifikate sind inzwischen recht verbreitet. DSA-Zertifikate ohne elliptische Kurven unterscheiden sich hingegen in ihrer Struktur von Diffie-Hellman-Zertifikaten und können nicht verwendet werden.

Ältere Safari-Versionen betroffen

Von den relevanten TLS-Bibliotheken fanden die Autoren lediglich zwei, die clientseitig den entsprechenden Diffie-Hellman-Austausch unterstützen: OpenSSL und ältere Versionen von Apples TLS-Implementierung, die von Safari genutzt wird. OpenSSL unterstützt allerdings nur die Variante ohne elliptische Kurven und auch erst in der jüngsten Version 1.0.2.

Unter Mac OS X vor der Version 10.5.3 war der Angriff ohne Einschränkungen möglich. Spätere Versionen haben zunächst eine Abfrage eingebaut, in denen die Nutzung des Clientzertifikats individuell bestätigt werden musste. Stimmt der Nutzer dem zu, ist der Angriff weiterhin möglich. In den jüngsten OS-X-Versionen ab 10.8 wurde der entsprechende Code für den statischen Diffie-Hellman-Schlüsselaustausch deaktiviert.

Bei der Nutzung von ECDSA-Zertifikaten für den Angriff gibt es eine weitere Hürde: Die Zertifikate können eine Erweiterung mit dem Namen "X509 Key Usage" haben. In dieser Erweiterung gibt es ein Flag KeyAgreement, das idealerweise für ECDSA-Zertifikate deaktiviert sein sollte. Allerdings ist es aus unklaren Gründen manchmal aktiviert, beispielsweise hat das Zertifikat von facebook.com das entsprechende Flag gesetzt. Ist das Flag deaktiviert, sollte ein Client einen entsprechenden Schlüsselaustausch ablehnen. Generell ist es auch so, dass nicht alle Clients diese Flags prüfen.

Statischer Diffie-Hellman-Schlüsselaustausch hat keine Vorteile

Die Abhilfe für den KCI-Angriff ist relativ simpel: Da der statische Diffie-Hellman-Schlüsselaustausch - egal ob klassisch oder mit elliptischen Kurven - keine echten Vorteile bringt und mangels Forward Secrecy nicht dem Stand der Technik entspricht, sollte man ihn schlicht nicht benutzen. Sowohl Server als auch Clients sollten die entsprechenden Cipher-Modi deaktivieren und ausschließlich die Ephemeral-Diffie-Hellman-Modi anbieten. Weiterhin ist es sinnvoll, wenn Zertifikate die Key-Usage-Erweiterung korrekt setzen und Clients diese korrekt prüfen.

Insgesamt ist der Angriff nur in sehr seltenen Fällen relevant. Interessant ist er trotzdem: Es zeigt sich wieder einmal, dass die extrem hohe Komplexität von TLS mit zahlreichen kaum bekannten und selten genutzten Features zu Problemen führen kann. Viele Teile der TLS-Spezifikation sind offenbar nicht hinreichend auf Sicherheitsprobleme untersucht.



Anzeige
Hardware-Angebote
  1. 72,99€ (Release am 19. September)
  2. 259€ + Versand oder kostenlose Marktabholung
  3. 80,90€ + Versand
  4. 289€

Clemens Hlauschek 14. Sep 2015

Neue Infos zu dem Angriff, inklusive eines Demo-Videos (PoC Attacke gegen Facebook) gibt...


Folgen Sie uns
       


Katamaran Energy Observer angesehen

Die Energy Observer ist ein Schiff, das ausschließlich mit erneuerbaren Energien betrieben wird und seinen Treibstoff zum Teil selbst produziert. Wir haben es in Hamburg besucht.

Katamaran Energy Observer angesehen Video aufrufen
Mobile-Games-Auslese: Magischer Dieb trifft mogelnden Doktor
Mobile-Games-Auslese
Magischer Dieb trifft mogelnden Doktor

Ein Dieb mit Dolch in Daggerhood, dazu ein (historisch verbürgter) Arzt in Astrologaster sowie wunderschön aufbereitetes Free-to-Play-Mittelalter in Marginalia Hero: Golem.de stellt die spannendsten neuen Mobile Games vor.
Von Rainer Sigl

  1. Hyper Casual Games 30 Sekunden spielen, 30 Sekunden Werbung
  2. Mobile-Games-Auslese Rollenspiel-Frühling mit leichten Schusswechseln
  3. Gaming Apple Arcade wird Spiele-Flatrate für iOS und MacOS

WD Blue SN500 ausprobiert: Die flotte günstige Blaue
WD Blue SN500 ausprobiert
Die flotte günstige Blaue

Mit der WD Blue SN500 bietet Western Digital eine spannende NVMe-SSD an: Das M.2-Kärtchen basiert auf einem selbst entwickelten Controller und eigenem Flash-Speicher. Das Resultat ist ein schnelles, vor allem aber günstiges Modell als bessere Alternative zu Sata-SSDs.
Von Marc Sauter

  1. WD Black SN750 ausprobiert Direkt hinter Samsungs SSDs
  2. WD Black SN750 Leicht optimierte NVMe-SSD mit 2 TByte
  3. Ultrastar DC ME200 Western Digital baut PCIe-Arbeitsspeicher mit 4 TByte

Final Fantasy 7 Remake angespielt: Cloud Strife und die (fast) unendliche Geschichte
Final Fantasy 7 Remake angespielt
Cloud Strife und die (fast) unendliche Geschichte

E3 2019 Das Remake von Final Fantasy 7 wird ein Riesenprojekt, allein die erste Episode erscheint auf zwei Blu-ray-Discs. Kurios: In wie viele Folgen das bereits enorm umfangreiche Original von 1997 aufgeteilt wird, kann bislang nicht mal der Producer sagen.

  1. Final Fantasy 14 Online Report Zwischen Cosplay, Kirmes und Kampfsystem
  2. Square Enix Final Fantasy 14 erhält Solo-Inhalte und besonderen Magier
  3. Rollenspiel Square Enix streicht Erweiterungen für Final Fantasy 15

    •  /