PPP协议的两种认证方式:
(1)口令验证协议(PAP)。PAP是一种简单的明文验证方式。NAS(网络接入服务器,Network Access Server)要求用户提供用户名和口令,PAP以明文方式返回用户信息。很明显,这种验证方式的安全性较差,第三方可以很容易地获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。
(1)挑战握手验证协议(CHAP)。CHAP是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(Challenge),其中包括会话ID和一个任意生成的挑战字串(Arbitrary Challengestring)。远程客户必须使用MD5单向哈希算法(One-way Hashing Algorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送。
CHAP对PAP进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字串来防止受到再现攻击(Replay Attack)。在整个连接过程中,CHAP将不定时地向客户端重复发送挑战口令,从而避免第三方冒充远程客户(Remote Client Impersonation)进行攻击。