ppp的chap认证报文原理
chap认证:
1.验证方(存有本地数据库的一方)主动向被验证方发送一个挑战报文,里面包含报文id,随机数,本端用户名(默认单向认证不带)。
2.被验证方收到挑战请求后,若接口配置chap口令,将接收的报文id,随机数,口令根据MD5算法算出一个hash值,将生成的hash值 和自己的用户名向验证方发回一个挑战应答报文
若接口没有配置口令,则根据验证方报文携带的用户名通过查找数据库找到该用户名的口令;将报文id,随机数, 口令 进行MD5运算得到hash值,把hash值和被验证方用户名发回验证方
3.验证方收到挑战应答报文,根据被验证方发来的用户名在本地数据库中查找口令,并将该口令,先前保存的随机数,报文id进行MD5运算算出hash值,比较生成的hash值 和报文携带的hash值,相同则认证通过,否则反之。
单向认证
首先我们要明白一个东西:就是单向chap认证配置是怎么样的?如下配置,*而不是在哪个接口开启ppp的chap认证了,就要在哪个接口配置用户名密码
- 由于H3C模拟器不支持对ppp协议抓包,故用华为的模拟器来抓包,配置如下
#R1
aaa
local-user abc password cipher 123456
local-user abc service-type ppp
interface Serial4/0/0
ppp authentication-mode chap
ip address 1.1.1.1 255.255.255.252
#R2
interface Serial4/0/0
ppp chap user abc
ppp chap password cipher 123456
ip address 1.1.1.2 255.255.255.252
报文看见,验证方发送的挑战报文没有携带用户名,这是单向认证不携带用户名
双向认证:
双向chap认证 : 两边接口正常配置密码,同时两边接口不配密码也是可以的,但需要保证两边数据库密码一致
双向chap认证报文中,前两个chap挑战报文九携带了用于chap认证的用户名