Hierzu wird das CHAP-Authentifizierungsverfahren verwendet: Ein Hauptunterschied zu PAP liegt unter anderem in der kodierten Übertragung des Paßwortes.
"pppd
" handelt dies über das /etc/ppp/chap-secrets
-File, das im Prinzip den
gleichen Aufbau der pap-secrets
-Datei hat (pap-secrets
kann nach
chap-secrets
kopiert werden).
Die Anwahl des Windows NT Servers erfolgt nach dem vorausgegangenen Schema.
Es wird die oben erwähnte gepatchte "pppd
"-Version eingesetzt.
Ein -unkommentiertes- Protokoll einer erfolgreichen PPP-Verbindungsaufnahme
via CHAP-Authentifizierung sieht folgendermaßen aus (der
"chat
"-Verbindungsaufbau und der "pppd
"-Verbindungsabbau sind nicht mehr
aufgeführt):
pppd: Using interface ppp0 pppd: Connect: ppp0 <--> /dev/ttyS0 pppd: sent [LCP ConfReq id=0x1 <mru 1500> <magic 0xb77347c8> <pcomp> <accomp>] pppd: sent [LCP ConfReq id=0x1 <mru 1500> <magic 0xb77347c8> <pcomp> <accomp>] pppd: rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <auth chap msoft> \ <magic 0x4d9b> <pcomp> <accomp>] pppd: sent [LCP ConfAck id=0x0 <asyncmap 0x0> <auth chap msoft> \ <magic 0x4d9b> <pcomp> <accomp>] pppd: rcvd [LCP ConfAck id=0x1 <mru 1500> <magic 0xb77347c8> <pcomp> <accomp>] pppd: cbcp_lowerup pppd: want: 2 pppd: phone no: (null) pppd: rcvd [CHAP Challenge id=0x2e <f7d486a3df030b71>, name = ""] pppd: sent [CHAP Response id=0x2e <0000000000000000000000000000000000000 \ 00000000000ee0cecf8c969e78c01e80aa8f28dcd0aa5a835287d0fa32d01>, \ name = "my_login"] pppd: rcvd [CHAP Success id=0x2e ""] pppd: sent [IPCP ConfReq id=0x1 <addr 152.3.60.1> <compress VJ 0f 01>] pppd: rcvd [CCP ConfReq id=0x1 < 12 06 00 00 00 01>] pppd: sent [CCP ConfReq id=0x1] pppd: rcvd [proto=0x803f] 01 03 00 17 03 05 00 05 01 02 0e 00 01 00 01 \ 00 00 52 32 30 30 32 00 pppd: Unknown protocol (0x803f) received pppd: sent [LCP ProtRej id=0x2 80 3f 01 03 00 17 03 05 00 05 01 02 0e \ 00 01 00 01 00 00 52 32 30 30 32 00] pppd: rcvd [IPCP ConfAck id=0x1 <addr 152.3.60.1> <compress VJ 0f 01>] pppd: rcvd [CCP ConfAck id=0x1 < fe 02>] pppd: rcvd [CCP TermReq id=0x4 00 00 02 dc] pppd: sent [CCP TermAck id=0x4] pppd: sent [IPCP ConfAck id=0xa <compress VJ 0f 01>] pppd: local IP address 152.3.60.1 pppd: remote IP address 152.3.60.2 pppd: sent [CCP ConfReq id=0x1] pppd: rcvd [CCP TermAck id=0x1] pppd: sent [CCP TermReq id=0x2] pppd: rcvd [CCP TermAck id=0x2]
Interessant ist hierbei die Reaktion des Clients auf den Request der CHAP-Authentifizierung
pppd: rcvd [LCP ConfReq ... <auth chap msoft> ... ]
Dieser Request wird prompt beantwortet mit
pppd: sent [LCP ConfAck ... <auth chap msoft> ... ]
Die nachfolgende "CHAP Challenge"-Forderung wird mit dem verschlüsselten Paßwort und der Login-Kennung in Klartext beantwortet
pppd: rcvd [CHAP Challenge ... <f7d486a3df030b71>, name = ""]
pppd: sent [CHAP Response ... <0000000000000000000000000000000000000 \
00000000000ee0cecf8c969e78c01e80aa8f28dcd0aa5a835287d0fa32d01>, \
name = "my_login"]
pppd: rcvd [CHAP Success ... ]
Dies führt schließlich zum erfolgreichen Verbindungsaufbau.
Wie aus dem Protokoll ersichtlich ist, wird beim CHAP-Authentifizierungsschema neben der Userkennung das Paßwort nicht mehr im Klartext übertragen, was als positiver Sicherheitsaspekt anzusehen ist. Um den Sicherheitsstandard weiter zu heben, wird nun zusätzlich noch die Möglichkeit eines automatischen Rückrufes durch den Windows NT Server gefordert.