KRACK Attacks

Gespeichert von Matthias Heinz am Mi, 18.10.2017 - 11:25

Viel wurde in den letzten Tagen schon zu KRACK geschrieben, einer Sammlung von Schwächen beim Schlüsselaustausch in WPA2. Das BSI warnt sogar vor Onlinebanking oder -shopping über WLAN.

Aber von vorne. Das vermutlich wichtigste Problem an KRACK hat damit zu tun, wie Accesspoint und Client (zum Beispiel ein Laptop, Tablet oder Handy) ihre Schlüssel austauschen. Zur Erinnerung, bei WPA2, egal ob Personal oder Enterprise, haben beide Seiten ein gemeinsames Geheimnis, nämlich ein Passwort. Beim Schlüsselaustausch geht es nun darum, dass beide Seiten sich beweisen, dass sie das Geheimnis kennen, ohne das Passwort sich gegenseitig zuzuschicken. Letzteres wäre fatal, da in diesem Teil des Verbindungsaufbaus die Kommunikation unverschlüsselt stattfindet. Dieser Teil heißt 4-Way-Handshake, da vier unterschiedliche Nachrichten ausgetauscht werden.

Jetzt kann es aber passieren, dass die dritte Nachricht, vom Accesspoint kommend, beim Client nicht ankommt. Daher sendet der Accesspoint diese Nachricht mehrfach, wenn keine Antwort darauf erfolgt. Diese Nachricht enthält einen vom Accespoint erzeugten Schlüssel. Das wird dazu gemacht, dass nicht jede WLAN-Verbindung den gleichen Schlüssel benutzt und andere Teilnehmer, auch wenn sie das Passwort für das WLAN-Netz kennen, nicht mitlesen können. In vielen Implementierungen in den Clients ist es nun so, dass die dritte Nachricht ohne Prüfung übernommen wird. Bei der ersten "dritten" Nachricht ist das noch kein Problem, da diese mit den Informationen aus den zuvor gesendeten Nachrichten erstellt wird und nur erzeugt werden kann, wenn beide das gemeinsame Geheimnis kennen.

Jetzt kommt das "Replay" ins Spiel. Die dritte Nachricht kann mitgeschrieben und von anderer Stelle erneut an den Client geschickt werden. Dieser Client übernimmt die Daten in der Nachricht ungefragt und setzt dabei einige interne Felder zurück, bspw. den internen Zähler.

Hier muss ich ein wenig weiterausholen. In der Kryptographie ist es wichtig, dass der gleiche Schlüssel nie zweimal benutzt wird. Wird ein Schlüssel mehrfach benutzt, dann kann man einfach mit statistischen Analysen der Schlüssel zurückgerechnet und die Verbindung entschlüsselt werden. Um also sicherzustellen, dass der Schlüssel sich bei jeder Nachricht verändert, benutzen beide Seiten einen internen Zähler, der mit jeder Nachricht hoch gesetzt wird. Der interne Zähler wird ebenfalls dazu benutzt, um den Schlüssel damit abzuwandeln und schon hat man für jede Nachricht einen eigenen Schlüssel.

Bei KRACK ist es nun möglich diesen Zähler zurückzusetzen. Hat man zuvor die Verbindungsdaten mitgeschnitten, lässt sich jetzt der Schlüssel berechnen und die Daten mitlesen.

Bei älteren Implementierungen, wie WPA-TKIP kann sogar die gesamte Verbindung übernommen werden.

Betroffen hiervon sind erstmal nur Clients. Jedoch lässt sich das gleiche Verfahren auf andere WLAN-Funktionen anwenden, wie zum Beispiel fast BSS transition, womit ein Client schnell zwischen zwei Accesspoints hin und her wechseln kann, auch als Roaming bekannt. Handys machen das im Mobilfunk-Netz ständig, bei WLAN ist das aber noch recht unüblich, daher sind davon kaum Accesspoints betroffen.

Ist also die Panik vom BSI angebracht?

Nein, ist es nicht. Onlineshopping und Onlinebanking gehen beide hinter dem Accesspoint über das Internet und dem Internet ist niemals zu vertrauen. Daher benutzen wir für solche Verbindungen schon jetzt SSL (zu erkennen am https vor der Webadresse) als zusätzliche Verschlüsselung.

Auch braucht es einen starken Accesspoint in der Nähe, damit der Client das Replay überhaupt mitbekommt und annimmt.

Angreifbar ist alles, was unverschlüsselt über das WLAN läuft. Seien es Dateifreigaben, die nicht Passwort-gesichert sind, aber auch Daten an Drucker, egal ob im LAN oder WLAN, da Druckbefehle oftmals unverschlüsselt ablaufen.

Was ist zu tun?

Macht Updates! Die großen Hersteller von Betriebssystemen haben alle schon Patches zur Verfügung gestellt, fast alle Linux-Distributionen haben ebenfalls Patches erhalten. OpenBSD war sogar noch schneller, weil sie sich nicht an das Embargo gehalten haben (dafür bekommen sie die Informationen das nächste Mal später. Es ist ein moralisches Problem, was ihnen so abgenommen wird).

Die meisten Accesspoints sind übrigens nicht betroffen, weil sie die angreifbaren Verfahren überhaupt nicht unterstützen. Aber auch hier gilt: Besser einmal beim Hersteller nachschauen oder nachfragen, als später im Regen stehen.

Was ist mit alten Android-Geräten? Tja, das ist eine gute Frage. Zum Wegwerfen sind sie zu schade und ohne WLAN für kaum noch etwas zu gebrauchen. Es gibt LineageOS, als Ersatz für das ursprüngliche Android. Wenn es das Handy unterstützt, dann ist jetzt ein guter Zeitpunkt es darauf zu installieren. Ansonsten hilft vielleicht Nachfragen beim Hersteller. Wenn genug von euch das machen, dann hat es vielleicht Erfolg. Selbes gilt übrigens auch für andere WLAN-fähige-Geräte, viele ältere davon werden keinerlei Update erfahren. Besonders in sicherheitskritischen Bereichen sollten diese nicht mehr verwendet werden.

Ansonsten wäre es jetzt ein guter Zeitpunkt für Produkthaftung für Software auf EU-Ebene, die Hersteller dazu verpflichtet einen angemessenen Zeitraum lang Updates zur Verfügung zu stellen und vielleicht sogar soweit geht nach diesem Zeitraum dazu verpflichtet den Sourcecode offenen zu legen, damit die Geräte nach Ablauf des Supportzeitraums eben nicht nur noch als Briefbeschwerer taugen.