五、PPP Authentication

1、条件:LCP子层协商成功

2、设备角色:主认证方与被认证方,可以同时成为主认证方和被认证方,即可作双向认证

3、PAP认证:简单明文

4、CHAP认证:

(1)被认证方远程用户)向认证方发起一个认证请求

(2)认证方向被认证方返回一个挑战,格式为01-id-random-主认证方数据库里面的用户名

01代表challenge;

id是challenge的序列号;

random是随机产生的一个随机数

(3)被认证方拿到用户名之后在本地数据库或是3A服务器里面查找对应的密码,然后将这个密码和上面的挑战ID和random随机数一起作Hash,再向主认证方返回一个响应包,格式为02-id-hash-被认证方本地数据库里面的用户名和发过来的一样)

02代表CHAP的响应数据包

id:copied from chalenge packet主认证方刚发过来的那个ID

hash值:密码加挑战ID加挑战随机数作hash

用户名:本地数据库用户名

(4)主认证方收到挑战响应包之后查找第一次发出的挑战信息,同时查找响应包里的用户名在数据库里对应的密码,将得到的密码和挑战ID随机数一起作Hash,得到的值与被认证方发送过来的hash值作比较,如相同,则认证成功否则认证失败。

在这个认证过程中,在网络中传输的是挑战ID、随机数与密码的hash值,并不是密码本身,这保证了密码的安全性。同时认证的两端输入的数据都是挑战ID、随机数与密码,因而得到的hash值也一样,保证了认证的有效性。这时注意:两边都必须有用户名,且不需要相同,但数据库中的密码必须相同。

(5)主认证方向被认证方返回一个认证成功的消息,格式为03-id-"welcome in"

相关文档:understanding ppp chap

(6)配置举例

单向认证举例:

R1为主认证方,R2为被认证方

R1(config)#int s1/1

R1(config-if)#encapsulation ppp

R1(config-if)#ppp authentication chap

R1(config)#username R2 password cisco 这个用于chap认证中第二三步之间的处理过程,注意必须是password,secret通不过

R2(config)#int s1/0

R2(config-if)#encapsulation ppp

R2(config-if)#ppp authentication chap

R2(config-if)#ppp chap hostname R2     这条命令如果不打的话默认是主机名,是第二步中向主认证方发送的用户名

R2(config-if)#ppp chap password cisco 被认证方本地数据库的密码,如果没有在全局建立用户名和密码那么将会查找接口下的这个默认密码

双向认证简单:

R1(config)#int s1/1

R1(config-if)#encapsulation ppp

R1(config-if)#ppp authentication chap

R1(config)#username R2 password cisco

R1(config-if)#no sh

R2(config)#int s1/0

R2(config-if)#encapsulation ppp

R2(config-if)#ppp authentication chap

R2(config)#username R1 password cisco

R2(config-if)#no sh

注意接口下的默认ppp chap password 只能用于challenge的回复

可以同时进行chap和pap的认证

R1(config-if)#ppp authentication pap chap   注意这并不是在pap认证失败再进行chap的认证而是对方不和我进行pap认证那么尝试用chap进行认证。


相关内容