Abo
  • Services:

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. wesernetz Bremen GmbH, Bremen
  2. SCHUFA Holding AG, Wiesbaden

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
Blu-ray-Angebote
  1. (2 Monate Sky Ticket für nur 4,99€)
  2. (u. a. Der Marsianer, Spaceballs, Titanic, Batman v Superman)
  3. 4,99€

Clemens Hlauschek 14. Sep 2015

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


Folgen Sie uns
       


Rimac Concept Two (C_Two) angesehen (Genf 2018)

Wir haben uns auf dem Genfer Autosalon 2018 den C_Two von Rimac angesehen.

Rimac Concept Two (C_Two) angesehen (Genf 2018) Video aufrufen
God of War im Test: Der Super Nanny
God of War im Test
Der Super Nanny

Ein Kriegsgott als Erziehungsberechtigter: Das neue God of War macht nahezu alles anders als seine Vorgänger. Neben Action bietet das nur für die Playstation 4 erhältliche Spiel eine wunderbar erzählte Handlung um Kratos und seinen Sohn Atreus.
Von Peter Steinlechner

  1. God of War Papa Kratos kämpft ab April 2018

Facebook-Anhörung: Zuckerbergs Illusion von der vollen Kontrolle
Facebook-Anhörung
Zuckerbergs Illusion von der vollen Kontrolle

In einer mehrstündigen Anhörung vor dem US-Senat hat Facebook-Chef Mark Zuckerberg sein Unternehmen verteidigt. Doch des Öfteren hinterließ er den Eindruck, als wisse er selbst nicht genau, was er in den vergangenen Jahren da geschaffen hat.
Eine Analyse von Friedhelm Greis

  1. Facebook Verschärfte Regeln für Politwerbung und beliebte Seiten
  2. Facebook Messenger Zuckerbergs Nachrichten heimlich auf Nutzerkonten gelöscht
  3. Böswillige Akteure Die meisten der zwei Milliarden Facebook-Profile ausgelesen

BeA: Rechtsanwaltsregister wegen Sicherheitslücke abgeschaltet
BeA
Rechtsanwaltsregister wegen Sicherheitslücke abgeschaltet

Das deutsche Rechtsanwaltsregister hat eine schwere Sicherheitslücke. Schuld daran ist eine veraltete Java-Komponente, die für einen Padding-Oracle-Angriff verwundbar ist. Das Rechtsanwaltsregister ist Teil des besonderen elektronischen Anwaltspostfachs, war aber anders als dieses weiterhin online.
Eine Exklusivmeldung von Hanno Böck

  1. BeA Secunet findet noch mehr Lücken im Anwaltspostfach
  2. EGVP Empfangsbestätigungen einer Klage sind verwertbar
  3. BeA Anwälte wollen Ende-zu-Ende-Verschlüsselung einklagen

    •  /