Zum Hauptinhalt springen

2.2 Interoperation with PAP and CHAP (Interoperabilität mit PAP und CHAP)

2.2. Interoperation with PAP and CHAP (Interoperabilität mit PAP und CHAP)

Für PAP nimmt der NAS die PAP-ID und das Passwort und sendet sie in einem Access-Request-Paket als User-Name und User-Password. Der NAS KANN die Attribute Service-Type = Framed-User und Framed-Protocol = PPP als Hinweis an den RADIUS-Server einfügen, dass PPP-Dienst erwartet wird.

Für CHAP generiert der NAS eine zufällige Challenge (vorzugsweise 16 Oktette) und sendet sie an den Benutzer, der eine CHAP-Antwort zusammen mit einer CHAP-ID und einem CHAP-Benutzernamen zurückgibt. Der NAS sendet dann ein Access-Request-Paket an den RADIUS-Server mit dem CHAP-Benutzernamen als User-Name und mit der CHAP-ID und der CHAP-Antwort als CHAP-Password (Attribut 3). Die zufällige Challenge kann entweder im CHAP-Challenge-Attribut enthalten sein oder, wenn sie 16 Oktette lang ist, kann sie im Request-Authenticator-Feld des Access-Request-Pakets platziert werden. Der NAS KANN die Attribute Service-Type = Framed-User und Framed-Protocol = PPP als Hinweis an den RADIUS-Server einfügen, dass PPP-Dienst erwartet wird.

Der RADIUS-Server schlägt ein Passwort basierend auf dem User-Name nach, verschlüsselt die Challenge mit MD5 unter Verwendung des CHAP-ID-Oktetts, dieses Passworts und der CHAP-Challenge (aus dem CHAP-Challenge-Attribut, falls vorhanden, andernfalls aus dem Request Authenticator) und vergleicht dieses Ergebnis mit dem CHAP-Password. Wenn sie übereinstimmen, sendet der Server ein Access-Accept zurück, andernfalls sendet er ein Access-Reject zurück.

Wenn der RADIUS-Server die angeforderte Authentifizierung nicht durchführen kann, MUSS er ein Access-Reject zurückgeben. Zum Beispiel erfordert CHAP, dass das Passwort des Benutzers für den Server im Klartext verfügbar ist, damit er die CHAP-Challenge verschlüsseln und diese mit der CHAP-Antwort vergleichen kann. Wenn das Passwort für den RADIUS-Server nicht im Klartext verfügbar ist, MUSS der Server ein Access-Reject an den Client senden.