配置的部份每个设备都有差异,我就不说了。CHAP也有不同的版本,主要有CHAP, CHAPv2, MS-CHAP(MS-CHAP也有不同版本)。
回到正题,PAP跟CHAP的作用都是来验证用户的帐号及密码,所以配置的时候就要有帐号及密码。
PAP会把明文送出来做验证,所以不安全。CHAP则是双方都把随机乱数+密码 透过 杂凑函数 来运算,所以网路上只会监看到杂凑函数的种类及随机乱数,不会看到密码,安全性很高。
PAP
             验证方A                         被验证方B
          Username TOM
          Password 123
链路建立好了,然后A 在接口上面启用PAP验证。
1.B发送验证信息给A,其中包括用户名和密码,均为明文信息
2.A在自己的数据库中寻找B发送过来的用户名和密码信息是否匹配,匹配则验证通过,不匹配则拒绝通过验证。

CHAP
             验证方A                         被验证方B
            Username B                       Username A
            Password 111                    Password 111
两者在自己的本地数据库中存放着对方的设备名,密码一定要一样。
链路建立好了,然后A在接口上面启用CHAP验证。
1.A发送挑战信息给B,要求挑战B、
(挑战数据包里面含有ID号,随机产生的一个数字,还有发送者的名字)
2.B收到了挑战信息后,从里面获取到了几个有关的信息,ID号,随机数,发送者的名字为A。B会在自己的数  据库中寻找设备A对应的密码,发现密码是111,然后B将此密码,连同ID号和随机数进行HASH运算,得出一  个MD5数值。之后B向A发送一个响应信息,里面包含ID号,随机数,MD5值,发送者为B。此处的ID号和随机  数均为A最开始发送给B的挑战信息中的。
3.A收到了此响应信息后,发现发送者的名字是B,于是在自己的数据库中寻找B对应的密码,发现是111,然后  A再从自己的缓存中找到最开始发送的ID号和随机数,然后将此3者进行HASH运算,得出一个MD5数值。最后  将自己运算得出的MD5数值与B发送过来的MD5数值进行对比,一致则表明验证通过,否则拒绝通过验证。