Ratgeber Netzsicherheit

Zugriffskontrolle per 802.1x

28.10.2009 von Eckhart Traber
Um den User bereits zu überprüfen, bevor er auf das Netz zugreift, gibt es einen häufig unterschätzten Standard: 802.1x. Richtig implementiert, gewährt er eine Grundsicherheit - auch im WLAN.
Foto:

Da Angriffe auf IT-Firmennetze zunehmen, müssen sich Systemverantwortliche Gedanken machen, wie sie ihr Netz gegen unberechtigte Zugriffe schützen. Neben Geräten wie Firewalls und Intrusion-Prevention/Detection-Systemen, welche im Wesentlichen den Datenverkehr überprüfen, gilt es, die Benutzer zu überprüfen, bevor sie auf das Netz zugreifen. Dem dient der schon im Jahr 2001 verabschiedete Protokollstandard IEEE 802.1x. Im Zusammenspiel mit einem Radius-Server (Radius = Remote Authentication Dial-in User Service) erlaubt er eine Port-basierende Authentisierung des Benutzers. Ursprünglich für LAN-Switches konzipiert, erfreut sich der Standard zunehmender Beliebtheit in Wireless-LAN-Umgebungen.

Die Geschichte von 802.1x

Die Idee zu 802.1x kam von Institutionen, die den Zugang zu öffentlichen Netzen einfach kontrollieren wollten (Universitäten, Behörden, Bibliotheken). Die gewünschte Lösung sollte kostengünstig und einfach zu implementieren sein. Dabei wollten die Anwender ihre bestehende Netzinfrastruktur und etablierte Protokolle verwenden. Virtual Private Networks (VPN) erfüllten zwar einige der Voraussetzungen, schieden aber als generelle Lösung aufgrund ihres hohen Ressourcenbedarfs und der komplexen Konfiguration aus.

802.1x-Funktionen

  • Zugangskontrolle (benutzerorientiertes Regelsystem),

  • Abrechnung (Billing und Accounting),

  • Bandbreitenzuweisung (Quality of Service = QoS pro User),

  • Anlegen von Benutzerprofilen (User Personalized Network = UPN),

  • Single Sign-on.

Das Konzept für 802.1x wurde schließlich gemeinsam von 3Com, Hewlett-Packard und Microsoft geschaffen und im Juni 2001 als IEEE-Standard verabschiedet. Das Modell wurde ursprünglich für Switches entwickelt (802.1d) und erst später für WLANs nach dem Standard 802.11 erweitert.

Die Philosophie

Der IEEE-802.1x-Standard stellt eine wichtige Weiterentwicklung der Netzsicherheit dar, da er es ermöglicht, Benutzer schon an einem Netzzugangs-Port zu identifizieren. Mit Hilfe von Single-Sign-on können sich die Benutzer mit einer einzigen Authentifizierung an verschiedenen Systemen und Anwendungen gleichzeitig anmelden, etwa bei Einwahl-Servern, Firewalls, VPNs oder Wireless LANs. Dabei erfolgt die Authentifizierung des Users einmalig an einem zentralen Radius-Server.

Was ist "Radius"?

Alle Provider, die eine Einwahl in ein Netz ermöglichen, stehen vor einem großen Problem. Sie bieten vielen Benutzern an verschiedenen Orten Zugang zum Internet. Aus Sicherheitsgründen muss genauestens geprüft werden, wer Zugang zum Netz bekommt, um einen Missbrauch der Server-Dienste von vornherein auszuschließen. Des Weiteren benötigen die Provider eventuell Mechanismen, die ihnen das Erfassen und Berechnen der Online-Zeiten für die Benutzer ermöglichen. Deshalb braucht man ein leistungsfähiges System, das zentral für Authentisierung, Autorisierung und Accounting (AAA) sorgen kann.

Foto: Lancom

Das tut Radius. Der Service ist in RFC 2865 spezifiziert und kommuniziert über den UDP-Port 1812. Ein Network Access Server (NAS) fungiert als Client des Radius-Servers. Der kann auch als Proxy für andere Radius-Server oder auch für andere Arten von Authentifizierungs-Servern dienen.

Die Kommunikation zwischen Radius-Client und -Server wird dadurch gesichert, dass sich beide Kommunikationspartner gegenseitig durch ein "Shared Secret" authentifizieren und den Datentransfer verschlüsseln können. Radius unterstützt viele Authentifizierungsmöglichkeiten wie zum Beispiel PAP, CHAP, EAP oder Unix-Login und kann viele erweiterbare Attribute zu einem Benutzer verarbeiten und übermitteln.

Mittlerweile sind verschiedene Radius-Server mit 802.1x/EAP-Unterstützung auf dem Markt. Die Palette reicht vom komplexen Kommandozeilen-Tool bis hin zu benutzerfreundlicheren Servern mit eigenem Konfigurations-GUI. Zur Verfügung stehen Software-Server (Windows 2000, 2003, 2008 oder Linux beziehungsweise freie Anbieter) wie auch in Netzhardware (Router, Access Point Switch) integrierte Server.

Das Extensible Authentication Protocol (EAP)

Das Extensible Authentication Protocol (EAP) wurde ursprünglich für das Point-to-Point Protocol (PPP) entwickelt und ist in den RFCs 2284 und 2716 spezifiziert. Mit Hilfe von EAP können zwei Kommunikationspartner vor der eigentlichen Authentifizierung aushandeln, welche Authentifizierungsmethode angewandt werden soll. Aufgrund der Ausführung als Application Programming Interface (API) werden auch zukünftig entwickelte Authentisierungsprotokolle auf EAP aufsetzen können. EAP beschreibt in einem einfachen Frage-Antwort-Verfahren den Austausch der Authentifizierungsdaten vom Benutzer zum Authentisierungs-Server und dessen Antwort. Dabei können beliebige Authentifizierungsmechanismen wie Kerberos, SecurI oder Zertifikate benutzt werden. EAP wird entweder in Verbindung mit PPP verwendet oder als Protokoll-Framework zum Authentifizierungsdatenaustausch in anderen Protokollen, so etwa auch in IEEE 802.1x. Für die Anwendung von EAP über 802.1x werden die Authentifizierungsdaten mittels EAPoL (Extensible Authentication Protocol over LAN) oder im Fall von Wireless entsprechend EAPoW übertragen.

So funktioniert EAP

Das Extensible Authentication Protocol (EAP) fordert den Benutzer auf, sich zu authentifizieren. Seine Authentisierungsinformationen werden zunächst an den Port beziehungsweise den Authenticator weitergeleitet. Sobald dieser die Daten empfangen hat, leitet er sie an einen AAA-Server, im Normalfall einen Radius-Server, weiter. Dieser identifiziert anhand der hinterlegten Benutzerprofile den User, das heißt, er entscheidet, ob der User Zugriff auf die angefragten Services erhält. In einigen Fällen übernimmt der Radius-Server die Authentifizierung nicht selbst, sondern leitet die Daten an eine weitere Authentifizierungseinheit weiter, im Normalfall an einen Verzeichnisdienst (LDAP-Server, Directory Server). Im Falle einer nicht erfolgreichen Authentifizierung bekommt der Authenticator eine entsprechende Information, die dafür sorgt, dass der Port nicht aktiviert wird, also den Modus Authentication on/Port off einnimmt, beziehungsweise das Standard- Systemverhalten beibehält (Authentication on/Port on with Default Policy). In beiden Fällen erhält der Benutzer keinen Zugriff auf die angefragten Services. Wenn dagegen die Authentifizierung erfolgreich verläuft, wird die entsprechende Meldung, die der Radius-Server an den Switch oder Access Point zurücksendet, mit der Funktionsbezeichnung "Radius/EAP Success" versehen. Der Authenticator schaltet danach sofort den entsprechenden Port für den uneingeschränkten Datentransport frei.

Authentifizierung durch gegenseitige Zertifikate

Das EAP-Transport Layer Security Protocol ist eine Erweiterung und besteht aus einer Kombination von EAP mit SSL. Es verlangt eine gegenseitige zertifikatsbasierende Authentifizierung des Servers und des Clients auf der Transportschicht. Aktuell sind eine Reihe Clients für EAP-TLS für Linux (zum Beispiel Open1x), Mac OS X ab Version 10.3 "Panther" und Microsoft Windows (ab Windows 2000 mit Patch, ab Windows XP nativ) erhältlich.

Bei anderen Betriebssystemen kann eine Dritthersteller-Software installiert werden, um die Funktion nutzen zu können. Das Open1x-Projekt hat sich zum Ziel gesetzt, mit einer eigenen 802.1X-Implementierung viele Systeme zu unterstützen. Verwendbar sind auch Netzkomponenten, die eine Web-basierende Authentifizierung gestatten.

Als Vorteil von EAP-TLS kann man die Favorisierung durch Microsoft und die Integration in Windows sehen - die notwendige gegenseitige, zertifikatsbasierende Authentisierung spricht allerdings gegen dieses Verfahren.

Authentifizierung durch Username/Passwort und Server-Zertifikat

Das EAP-Tunneled Transport Layer Security Protocol erweitert EAP-TLS um eine sehr praktische Funktion. Bevor sich der Benutzer gegenüber dem Server authentifizieren muss, wird mit dem Server-Zertifikat ein sicherer TLS-Tunnel zwischen WLAN-Client und Authentisierungs-Server dynamisch aufgebaut. In diesem Tunnel kann sich dann der Benutzer beim Authentisierungs-Server mittels Username/Passwort identifizieren. Damit entfällt die Notwendigkeit eines eher umständlich zu nutzenden Benutzerzertifikats. Wie bei SSL-(TLS-)Authentisierungen über das Internet üblich, werden nur noch Server-seitige Zertifikate zur gegenseitigen Authentisierung des Benutzers und des Servers zwingend benötigt. Das EAP-TTLS-Verfahren ist damit einfacher als EAP-TLS, da nur Server-seitige Zertifikate notwendig sind.