Zottels Zeug
 Sat, 25 Jul 2015 00:28:22 +0200 zuletzt bearbeitet: Sat, 25 Jul 2015 00:51:13 +0200  
Über einen Post in meiner Matrix wurde ich darauf aufmerksam, dass erste Geschäfte (zumindest in England) Wifi-Tracking benutzen, um die Kundenströme zu analysieren: Über deren Wifi-Signale werden die Handys der Kunden ständig geortet, so wird klar, wer wann wohin gegangen ist.
Das rief in mir die Frage hervor, warum das überhaupt möglich ist. Welchen Sinn macht es, wenn WLAN-Clients, die gerade nicht mit einem Netzwerk verbunden sind, ständig Signale nach draußen senden? Sie könnten doch auch einfach passiv scannen, ob bekannte oder offene WLANs in der Nähe sind? Es stellt sich heraus: Das könnten sie durchaus, machen sie aber nicht.

WLAN-Grundlagen


Um sich mit einem WLAN zu verbinden, muss der Client einen sogenannten Probe Request senden. Der Access Point antwortet dann, und die beiden können sich miteinander verbinden. Da so ein WLAN sich auf unterschiedlichen Kanälen befinden kann, sendet der Client Probe Requests auf allen Kanälen, die er beherrscht, bis er eine Antwort bekommt.
Wenn man die SSID des eigenen Netzwerks nicht versteckt hat, sendet außerdem der Access Point zehnmal pro Sekunde sogenannte Beacons aus. Das sind kleine Pakete, die die SSID und Informationen zum Netzwerk enthalten, etwa unterstützte Übertragungsraten und Verschlüsselungsalgorithmen.
Das sollte ja eigentlich reichen, um ein WLAN zu finden. Tut es auch. Trotzdem senden offenbar alle gängigen Client-Implementationen ständig Probe Requests in die Welt, in der Hoffnung, von irgendeinem Netz Antwort zu erhalten. Anscheinend geht es dadurch ein wenig schneller.

Wifi-Tracking


Diese Probe Requests enthalten die MAC-Adresse des Wifi-Clients, also die eindeutige Hardware-Adresse des Netzwerk-Interfaces. Das macht das Tracking erst möglich, denn so kann man die einzelnen Handys voneinander unterscheiden. Gängige Android-Implementationen senden ca. alle 15 Sekunden Probe Requests in die Welt und sind so mit geeigneter Ausrüstung (mindestens drei WLAN-Receiver im Empfangsbereich und die nötige Software) nachverfolgbar.

Versteckte SSIDs


Manch sicherheitsbewegter WLAN-Betreiber nutzt gern die Option seines WLAN-Routers, die SSID zu verstecken. Das führt dazu, dass der Router keine Beacons mehr sendet. Klingt erstmal gut: Wenn sich jemand in der Nähe die verfügbaren Wifi-Netze auflisten lässt, ist meines nicht dabei. Also wird es bestimmt auch weniger wahrscheinlich, dass sich ein Hacker an meinem Netz versucht, oder?
Leider führt dieser Schritt nicht zu mehr, sondern zu weniger Sicherheit, oder besser: Die Sicherheitslage verändert sich nicht, aber die Privatsphäre-Situation verschlechtert sich.
Denn: Jetzt ist das Aussenden von Probe Requests wirklich die einzige Möglichkeit, sich mit diesem WLAN zu verbinden. Und damit ein Probe Request jetzt noch vom Access Point beantwortet wird, muss er die SSID enthalten, nicht nur, wie bei den sonst üblichen Anfragen, ein allgemeines „Hallo, ist da wer?“
Wenn mein Handy ein oder mehrere WLANs in seiner Liste der bekannten Netzwerke hat, bei denen die SSID versteckt ist, sendet es mit jedem Probe Request diese SSIDs mit in die Welt. Jeder, der zuhören möchte, sei es im Geschäft oder in der U-Bahn, erhält so eine Liste der WLANs mit versteckten SSIDs, mit denen ich mich gerne verbinde. Bei ungewöhnlichen SSIDs kann dadurch auch die Ortung meiner bevorzugten Netze möglich sein.
Dabei habe ich zu Hause aber keine Sicherheit gewonnen: Sobald mindestens ein Client im Netzwerk eingebucht ist (er muss nicht einmal auf Daten im Netzwerk zugreifen), gehen ständig Daten hin und her. Mit entsprechenden Sniffer-Tools kann das leicht detektiert werden, und die „versteckte“ SSID bekommt man bei der Gelegenheit auch gleich geliefert.
Natürlich – das Netz taucht nicht auf, wenn man mit einem normalen Client danach sucht. Das Finden von WLANs mit einem Sniffer sollte aber wesentlich schneller und effizienter sein als die normale Discovery, deshalb gehe ich davon aus, dass Leute, die den Plan haben, sich in ein WLAN einzuhacken, eher solche Tools benutzen als die Standard-Discovery – zumal speziell für diesen Zweck entwickelte Werkzeuge es auch leicht machen dürften, angreifbare WLAN-Router ausfindig zu machen.
Wenn nicht den größten Teil des Tages kein einziger Client eingeloggt ist, ist der Sicherheitsgewinn durch eine versteckte SSID also genau null. Dafür handelt man sich aber einen Privatsphäreverlust ein.

Gegenmaßnahmen


Grundsätzlich ist es sinnvoll, wenn WLAN am Handy immer dann aus ist, wenn es nicht benötigt wird. Der einfachste Schritt in diese Richtung ist die Einstellung, dass WLAN ausgeschaltet sein soll, wenn das Handy gerade nicht benutzt wird. Oder natürlich, WLAN manuell auszuschalten, wenn man aus dem Haus geht. Das spart auch sehr viel Akku.
Mit entsprechenden Tools kann man das auch automatisieren. Tasker unter Android kann etwa bestimmte Funktionen ausführen, wenn man in Reichweite bestimmter Funkmasten ist – unter anderem WLAN ein- und ausschalten. Etwas einfacher zu konfigurieren sind entsprechende Tools, die genau für den WLAN-Zweck geschaffen sind und das gleiche tun. Da ich selbst Tasker nutze, kann ich hier keine Empfehlungen abgeben – für entsprechende Kommentare bin ich dankbar.
Die beste Lösung ist ein Patch für den Android-Kernel, den ich bei den xda-developers gefunden habe: Dadurch wird die WLAN Discovery komplett passiv: Das Handy lauscht nur den Beacons, die ihm über den Weg laufen, und meldet sich, wenn die SSID zu einem bekannten Netz passt. Hat man aber versteckte SSIDs in der Liste der bekannten Netzwerke, bleibt trotzdem alles beim alten: Hier ist ohne das ständige Aussenden von Probe Requests ja gar keine Verbindung zum Netz möglich.
Natürlich sollte man auch darauf achten, dass die eigene SSID nicht gerade „Netgear“ oder ähnlich ist – dann gibt es doch zu viele Netze da draußen, von denen das Handy glaubt, sie zu kennen, und entsprechend sein Schweigen bricht und versucht, sich anzumelden.
Ich weiß nicht, wie verbreitet dieser Patch in aktuellen Custom ROMs ist – ich habe schon lange keines mehr verwendet.
Wird wohl Zeit, das wieder einmal zu tun.
Einer von Vielen
 Sat, 25 Jul 2015 23:35:42 +0200 
Vielen Dank!