CHAP认证过程相对于PAP认证较为复杂,采用三次握手,在认证过程中不会发送密码。验证方主动发起认证,并且会生产随机数以防止重放攻击,被验证方根据随机数、密码等信息进行MD5计算,向验证方发送MD5计算后的摘要信息,由验证方对摘要信息进行验证来决定认证是否成功。CHAP认证安全强度相对较强。
网络拓扑:
拓扑描述:
R1为CHAP验证方;
R2为CHAP被验证方;
验证方配置:
R1:
aaa
local-user chapuser password cipher CHAP123
local-user chapuser service-type ppp
interface s1/0/0
ppp authentication-mode chap
被验证方配置:
R2:
interface s1/0/0
ppp chap user chapuser
ppp chap password simple CHAP123
CHAP工作过程:
-
验证方主动发起验证请求,向被验证方发送Challenge报文。在Challenge报文里面包括报文ID、用户名、随机数。其中报文ID用作确认一个认证过程,用户名是可选项,随机数用来防止重放攻击。
-
被验证方收到验证方的验证请求后,使用接口下配置的密码和报文中的报文ID、随机数一起执行MD5计算,得到一个摘要信息。然后向验证方发送Response报文。在Response报文里面包括报文ID、用户名、摘要信息。其中用户名是被验证方接口下配置的用户名。
-
验证方根据Response报文里面的用户名找到对应的密码,将报文ID、密码、随机数一起执行MD5计算,得到一个摘要信息。然后将自己计算的摘要信息和Response报文里面携带的摘要信息进行比较。如果相同,返回Success,表示认证成功。如果不同,返回Failure,表示认证失败。