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. NÜRNBERGER Versicherung, Nürnberg
  2. terranets bw GmbH, Lindorf bei Wendlingen/Kirchheim

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
Top-Angebote
  1. 79,00€
  2. 59,99€
  3. ab 17,99€
  4. 799,90€

Clemens Hlauschek 14. Sep 2015

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


Folgen Sie uns
       


Sekiro - Test

Ein einsamer Kämpfer und sein Katana stehen im Mittelpunkt von Sekiro - Shadows Die Twice. Das Actionspiel von From Software schickt Spieler in ein spannendes Abenteuer voller Herausforderungen.

Sekiro - Test Video aufrufen
Adblock Plus: Adblock-Filterregeln können Code ausführen
Adblock Plus
Adblock-Filterregeln können Code ausführen

Unter bestimmten Voraussetzungen können Filterregeln für Adblocker mit einer neuen Funktion Javascript-Code in Webseiten einfügen. Adblock Plus will reagieren und die entsprechende Funktion wieder entfernen. Ublock Origin ist nicht betroffen.
Von Hanno Böck


    Elektromobilität: Was hat ein Kanu mit Autos zu tun?
    Elektromobilität
    Was hat ein Kanu mit Autos zu tun?

    Veteranen der deutschen Autoindustrie wollen mit Canoo den Fahrzeugbau und den Vertrieb revolutionieren. Zunächst scheitern die großen Köpfe aber an den kleinen Hürden der Startupwelt.
    Ein Bericht von Dirk Kunde

    1. EU Unfall-Fahrtenschreiber in Autos ab 2022 Pflicht
    2. Verkehrssenatorin Fahrverbot für Autos in Berlin gefordert
    3. Ventomobil Mit dem Windrad auf Rekordjagd

    Jobporträt: Wenn die Software für den Anwalt kurzen Prozess macht
    Jobporträt
    Wenn die Software für den Anwalt kurzen Prozess macht

    IT-Anwalt Christian Solmecke arbeitet an einer eigenen Jura-Software, die sogar automatisch auf Urheberrechtsabmahnungen antworten kann. Dass er sich damit seiner eigenen Arbeit beraubt, glaubt er nicht. Denn die KI des Programms braucht noch Betreuung.
    Von Maja Hoock

    1. Struktrurwandel IT soll jetzt die Kohle nach Cottbus bringen
    2. IT-Jobporträt Spieleprogrammierer "Ich habe mehr Code gelöscht als geschrieben"
    3. Recruiting Wenn die KI passende Mitarbeiter findet

      •  /