defense.at Onlinemagazin

Radius, Remote Authentication and Dial – In User Service

 

Radius, Remote Autentifizierung für Dial In Zugänge und Services

Viele fragen sich vielleicht, was Leute meinen, wenn irgendwo erklärt wird "...und die Authentifizierung wird per Radius - Server abgewickelt...". Nun ja, dahinter steckt der Radius - Dienst / das Radius - Protokoll, welches ich hier näher erläutern will.

Problemstellung

Beim Remote Access eines Users in ein gesichertes Netzwerk ist die eindeutige Authentifizierung ein großes Problem. Um einen flexiblen Remotezugriff über verschiedene NAS (= Network Access Server) zu ermöglichen, kann somit ein zentraler Authentifizierungsserver verwendet werden. Um die Einwahl durchführen zu können, muss eine Kommunikation zwischen dem Client, dem Einwahlknoten und dem Authentifizierungsserver bestehen. Dies ist erforderlich, um Informationen, wie z.B. Benutzernamen auszutauschen. Diese Kommunikation wird über das Radius – Protokoll abgewickelt.

Radius – Aspekte

Es wird eine Client/Server – Architektur verwendet. Der NAS dient als Client für den Radius – Server, welcher Benutzerinformationen weitersendet und entsprechende Aktionen setzt, welche aus der Serverantwort resultieren. Zur Authentifizierung können am Radius – Server verschiedene Mechanismen konfiguriert werden. So werden z.B. PPP (= Point to Point Protocol) PAP (= Password Authentication Protocol) und CHAP (= Challenge Handshake Authentication Protocol) unterstützt.

Radius – Struktur

Das Radius – Protokoll verwendet als Transport Layer Protokoll das UDP. Zur Adressierung des Radius – Netwerkdienstes ist der UDP – Port 1812 zuständig.

Das Paket

Folgende Felder werden verwendet:

.) Code ... Sinn des Paktes
.) Referenz ,,, Identifier
.) Länge ... des Pakets
.) Authenticator
.) Attribute ... z.B. Benutzername, Passwort, etc.

Eigentlich sind alle Felder wichtig (sonst wären sie ja nicht im Header dabei), aber ich will nun den Authenticator näher erläutern, da dieser auch für die Sicherheit des Protokolls sehr wichtig ist:

Beim Authenticator kann zwischen dem Request und dem Response Authenticator unterschieden werden. Um einen Request Authenticator zu füllen, wird eine Zufallszahl generiert, welche so lang ist, wie das gesamte Feld. Durch die große Länge der Zufallszahl soll mit einer hohen Wahrscheinlichkeit gewährleistet sein, dass sie einmalig ist. Wenn ein Request Authenticator in das Authenticator Feld eingetragen wird, bedeutet dies für den Radius – Server, dass als Attribute im Paket die Benutzerinformationen vorhanden sind. Der Radius – Server beantwortet diese Anfrage also mit Access, Reject oder Challange Response, wobei hier der Authenticator als Response Authenticator, welcher ebenfalls 4 mal 32 Bit lang ist, verwendet wird. Der Response Authenticator ist ebenfalls eine Zahl, diesmal aber keine Zufallszahl, sondern ein Hashwert, welcher mit Hilfe eines MD5 – Hash – Algorithmus erzeugt wird. Der Radius – Server erzeugt nämlich nach Erhalt des Request – Pakets einen MD5 – Fingerprint des gesamten Pakets einschließlich geheimer Zugangsdaten, welchen er danach für das Response als Response Authenticator verwendet.

Der Authentifizierungdialog

1. Remote User verbindet mit NAS
2. Einloggen, PAP/CHAP Authentifizierung
3. NAS: Access Request -> RADIUS Server
4. Radius – Server: vergleichen der Userdaten mit DB
5. Radius Server: Access Accept/Access Reject -> NAS
6. NAS: Services für User starten/User ablehnen