PPP的PAP和CHAP验证

点到点协议 PPP(Point to Point Protocol):
一种数据链路层协议,可用于异步串行(拨号)介质和同步串行(ISDN)介质。它使用链路控制协议(LCP)来建立和维护数据链路连接;还使用网络控制协议(NCP)在同一条点到点连接上使用多种网络层协议。

PPP身份验证方法 说明
密码身份验证协议(PAP,Password Authentication Protocol) 安全性较差,以明文发送密码,且只在建立链路时进行身份验证,建立PPP链路时,远程结点向始发路由器发送用户名和密码,直至身份验证得到确认
质询握手验证协议(CHAP,Challenge Handshake Authentication Protocol) 在建立链路时进行身份验证,并定期检查链路,确保路由器始终在与同一台主机通信

一:PAP验证:

(1)被认证方以明文发送用户名和密码到认证方。

(2)认证方核实用户名和密码。如果此用户合法且密码正确,则会给对端发送ACK消息,通告对端验证通过,允许进入下一阶段协商;如果用户名不正确,则发送NAK消息,通告对端验证失败。

配置信息:
PPP的PAP和CHAP验证_第1张图片
接着是抓包,验证我们的分析过程,很容易就能看到我们验证的两步:在这里插入图片描述
①:R2直接明文发送自己的用户名R2和密码cisco,给到认证方R1认证。
②:R1作为认证方,接到认证请求,比对数据库中的usernameR2,并且passwordcisco,认证通过。


二:CHAP验证:

1:主认证方主动发起验证请求,向被认证方发送一个id和随机数值,并同时将本端的用户名一起发送给被认证方。

2:被认证方收到主认证方的验证请求之后,检查本地密码,并结合主认证方发来的id和随机数据一起回复给主认证方。

3:主认证方用MD5算法对报文ID,本地保存的被认证方密码和原随机数生成的一个摘要,并于收到的摘要值进行比较。如果相同,则向被认证方发送knowledge消息,声明验证通过;如果不通过,则发送Not Acknowledge.

配置信息:
PPP的PAP和CHAP验证_第2张图片
抓包,这里能够看到验证过程明显的三步:
在这里插入图片描述
①:认证方R1主动向R2发送一个challenge(认证序列号id+认证方主机名R1+随机数)。
②:被认证方R2执行查找后,默认地将自己接口上的hostnameR2(不配置时直接发送主机名R2,接口上的配置优于全局配置)的并且passwordcisco,再结合主认证方发来的id和随机数据根据MD5算法算出一个Hash值,发送一个response给R1。如果R2全局中有username R1的信息,将会进行查找动作,查找对应密码。
③:认证方R1查找数据库username R2的密码为password cisco,结合id找到先前保存的随机数据,并结合id,再用MD5算法算出一个Hash值,与R2发来的Hash值做比较,结果一致,则认证通过。

注意:因为被认证方R2优先查询全局下的数据库,所以被认证方的ppp chap hostname R2ppp chap password cisco两句指令,可以使用username R1 password cisco所替代。


三:两种验证双向验证:

一般我们使用的时候,一般会配双向的验证,而且还要配置上两种验证方式,一种挂了直接上另一种。如果同时使用两种验证方式,那么在链路协商阶段将先用第一种验证方式进行验证。如果对方建议使用第二种验证方式或者只是简单拒绝使用第一种方式,那么将采用第二种方式。

配置信息:
PPP的PAP和CHAP验证_第3张图片

你可能感兴趣的:(网络技术)