Nachdem mir neulich durch den Selbstversuch mal wieder deutlich geworden ist, wie leicht man an die Zugangsdaten von fremden WPA- oder WEP-gesicherten WLANs durch Einsatz von intelligenten Technologien oder purer Rechenkraft kommt und wie lohnend so ein Angriff aus Sicht des Täters sein kann, da sich bei der WPA(2)-PSK Variante der Schlüssel aus Bequemlichkeit in der Praxis nie ändert, habe ich mir mal Gedanken über meine eigene WLAN Sicherheit gemacht und wie man diese mit ein paar Handgriffen und ein wenig Technik verbessern kann. Während WEP als „Sicherungsmaßnahme“ schon durch konzeptionelle Fehler ausscheidet, ist bei WPA-PSK/WPA2-PSK dem schnellen Cracken nur durch Länge des Schlüssels entgegenzutreten (max. 63 Stellen). Doch diese trügerische Sicherheit wird durch immer umfangreichere Rainbowtables, on-demand Rainbowtable Services und die immer weiter steigende Rechenkraft von Grafikkarten in Kombination mit Software wie aircrack-ng, aircrack-ng-cuda, pyrit (oder aber anderen propietären Programmen) mehr und mehr relativiert. Will ein Angreifer ein fremdes Netz kapern um darüber Schindluder im Netz zu treiben, so muss er nur an einem Tag vorbeifahren, ein einzelnes Paket auffangen, in die Cloud zum Berechnen schicken und kommt 1-2 Tage später wieder, um seiner kriminellen Energie freien Lauf zu lassen.
Die Hauptschwäche ist da gar nicht mal ein angreifbarer Algorithmus, sondern die Zeit, da der PSK aus Ignoranz, Faulheit oder Bequemlichkeit nach der Ersteinrichtung und dem Einrichten von einigen Clients nie mehr oder allenfalls sehr selten geändert wird. Da konnten und können auch keine MAC Filter etwas dran ändern.
Doch dagegen ist schon lange ein Kraut gewachsen, bekannt unter dem ominösen Buzzword: „WPA/WPA2 Enterprise“
Leider ist die Bedeutung dieses Begriffs nicht ganz eindeutig. Hinter WPA2-Enterprise können sich eine Vielzahl von Kommuniktionsprotokollen verbergen, die zwar allesamt ähnlich arbeiten aber zueinander inkompatibel sind und einige Vor- und Nachteile aufweisen. Hauptunterschied ist aber, dass der eigentliche WPA Schlüssel für jeden WLAN Client eigens ausgehandelt wird und auch periodisch ersetzt wird. Damit diese Aushandlung nicht mitgelauscht werden kann, findet sie über einen Sicheren Kanal statt.
Über die Vor- und Nachteile sowie die Funktionsweise der verfügbaren Techniken informiert dieser heise Netze Artikel. Allerdings beherrschen nicht alle Endgeräte alle möglichen Techniken, sodaß man bei einem Spektrum an vielen verschiedenen Clients, auf einen Mischbetrieb setzen muss. Zwar ist es noch immer möglich, dass ein Angreifer Traffic mitschneidet, seine Cloud rechnen lässt und den Inhalt dechiffriert, doch kann er sich mit dem Schlüssel nicht einloggen und den Internetzugang (oder aber gefährlicher: den Zugang zum LAN mit allen Informationen, die dort abzugreifen sind) missbrauchen, denn 1. hat er so nur den WPA Key dieses einen Clients bekommen und 2. ist dieser aller Wahrscheinlichkeit zu dem Zeitpunkt schon zig mal ausgetauscht worden.
Vorraussetzungen:
- ein Access Point, der WPA(2)-Enterprise anbietet
- ein freeradius Server (entweder auf dem gleichen Gerät oder auf einem anderen Rechner / Server / Embedded Device)
Leider muss man dazu sagen, dass die wenigsten Plastikrouter eins von beidem anbieten, bei Standalone Access Point Hardware hat man häufiger noch die Chance, dass ein externer RADIUS Server genutzt werden kann. Ggf. kann man seinen Router mit Alternativfirmware wie dd-wrt oder openwrt umflashen, welche dann die nötige Zusatzfunktionalität bieten oder im Falle einer Fritzbox kann man die Funktion mithilfe des freetz Projekts nachrüsten. Ich hatte bei der Anschaffung bereits drauf geachtet, dass der TL-WA901ND diese Funktion bietet. Als RADIUS-Server (und nebenbei noch für rsnapshot Backups) kommt bei mir eine Dockstar zum Einsatz, die sich wegen der geringen Größe und dem niedrigen Stromverbrauch geradezu anbietet.
Auf dem Dockstar Gerät läuft ein minimales Debian Squeeze (nächster stable Release nach Lenny) auf dem ich freeradius direkt aus der Paketverwaltung nutzen kann. Auf älteren (ubuntu oder debian) Systemen kann es nötig sein, freeradius aus dem backports repo zu ziehen oder fix selbst zu compilieren).
Konfiguration:
Da der Access Point mit dem RADIUS Server verschlüsselt kommuniziert, muss in der /etc/freeradius/clients.conf erstmal der AP mit IP-Adresse und Shared Secret bekannt gemacht werden, umgekehrt muss im AP die IP/Port des Servers eingetragen werden.
/etc/freeradius/clients.conf
client 192.168.XX.YY/32 { secret =shortname = }
Nun brauchen wir noch ne SSL PKI Infrastruktur, welche wir mit OpenSSL basteln (oder ggf. durch Verwendung von OpenVPN oder selbst-signierten SSL-Zertifikaten bereits haben). Konkret brauchen wir eine Certificate Authority (CA – ca.pem), ein Server Certificate + Key (server.pem, server.key) und Zufallsdaten (Symlink von random -> /dev/random). Das legen wir in /etc/freeradius/certs/ ab. Dieses Howto erklärt, wie man das händisch erledigt.
Die Benutzerdatenbank kann auf verschiedenste Arten hinterlegt werden. Von LDAP über MySQL bis hin zu einer einfachen Textdatei ist hier alles möglich, Debian und Ubuntu liefern auch gleich die nötigen Skripte zur Erstellung der Datenstrukturen mit. Einträge in der users-Datei (nur für kleine Benutzerzahlen empfehlenswert, aber dafür vollkommen ausreichend) sähen dann etwa wie folgt aus:
/etc/freeradius/users
"warrior" Cleartext-Password := "" "handy" Cleartext-Password := " " "ex-freundin" Auth-Type := Reject, Reply-Message = " ;-)" "Besucher" Cleartext-Password := "darf-auch-gelegentlich", Login-Time :="Wk1900-2300,Sa0900-2300,Su0900-2000"
Ob die Authentifizierung funktioniert, kann man testen, indem man localhost oder einen anderen Rechner in der clients.conf hinzufügt und folgendes Kommando ausführt:
radtest" " 10 " "
Clients konfigurieren:
Der Networkmanager von Linux hat gar keine Probleme, einfach das ca.pem Zertifikat mit angeben, Benutzer+Password angeben und man ist verbunden.
wpa-supplicant kanns auch von Haus aus, allerdings muss man das in der /etc/wpa_supplicant.conf manuell konfigurieren, wpa_passphrase ist hierbei keine sonderlich große Hilfe.
Das Nokia N900 hatte in der Version PR1.2 einen Bug, sodass man auf PEAP ausweichen musste, ob dies mit dem gerade erschienenen PR1.3 behoben wurde, ist mir (noch) nicht bekannt.
Unter Windows XP, Vista und 7 muss das ca.pem vorher manuell in den Cryptostore importiert werden, wobei Windows 7 dabei nicht in der Lage ist, den richtigen Speicherort selbst auszuwählen, da muss man dann manuell „Zertifizierungsstellen“ auswählen .
Einziger Wermutstropfen bei mir zu hause ist die Nintendo Wii, die partout nur WPA(2)-PSK beherrscht.Aber für die gibts ja zum Glück USB-Ethernet Netzwerkkarten. Andere Spielkonsolen oder Consumergeräte habe ich derzeit nicht im Einsatz.
Kann mir bitte jemand sagen ob es möglich ist statt eines herkömmlichen Clients einen mit dd-wrt geflashten Router im Client Modus verbinden zu lassen. Ich möchte die Endgeräte dann am Lan Naten lassen. Leider ist mir das noch nicht gelungen.
Fritzbox und WPA2 Enterprise geht nicht auch wenn das hier behauptet wird. Auch nicht mit Freetz. Höchstens man installiert ein Openwrt oder ähnliches. Aber definitiv nicht mit AVM Software.
Ja, da hast Du Recht, das ist ein wenig unglücklich formuliert. Den freeradius server für die Clientauthentifizierung kann man mit freetz in der Tat nachrüsten, die AVM Oberfläche zu den WLAN Einstellungen lässt es dann aber dennoch noch immer nicht zu, etwas anderes als PSK zu konfigurieren. Hab mal davon gelesen, dass man nen alternativen hostapd an der AVM Oberfläche vorbei betreiben kann, das geht dann aber wirklich in Richtung arg experimenteller Pfuscherei und würde ich auch nicht empfehlen, dies zu tun.
Nur mal so aus Neugier, wie lange würde es denn trotz der pöhsen Grafikkarten und der noch schlimmeren Cloud dauern, bis man ein 63 stelliges WPA2-PSK (AES) Passwort cracken kann? Bei Groß- und Kleinschreibung, Zahlen und Sonderzeichen kann ich mir nicht vorstellen, dass das in 1-2 Tagen geknackt ist…
Android ab mind. 2.1 funktioniert auch, zumindest mit der PEAP Methode.
Importieren der Zertifikate ist ein bisschen pain-in-the-ass