CHAP认证协议(ChallengeHandshakeAuthenticationProtocol,质询握手认证协议)

CHAP认证过程比较复杂,三次握手机制。

使用密文格式发送CHAP认证信息。

由认证方发起CHAP认证,有效避免暴力破解。

在链路建立成功后具有再次认证检测机制。

目前在企业网的远程接入环境中用的比较常见。

CHAP认证过程:

CHAP认证第一步:主认证方发送挑战信息【01(此报文为认证请求)、id(此认证的序列号)、随机数据、主认证方认证用户名】,被认证方接收到挑战信息,根据接收到主认证方的认证用户名到自己本地的数据库中查找对应的密码(如果没有设密码就用默认的密码),查到密码再结合主认证方发来的id和随机数据根据MD5算法算出一个Hash值。

CHAP认证过程图:

android 双向认证pem和key chap双向认证的工作原理_CHAP-认证

CHAP认证第二步:被认证方回复认证请求,认证请求里面包括【02(此报文为CHAP认证响应报文)、id(与认证请求中的id相同)、Hash值、被认证方的认证用户名】,主认证方处理挑战的响应信息,根据被认证方发来的认证用户名,主认证方在本地数据库中查找被认证方对应的密码(口令)(即必须要求主认证方和被认证方使用的密码必须相同)结合id找到先前保存的随机数据和id根据MD5算法算出一个Hash值(即根据口令、CHAP id 和随机数三个量计算Hash值),与从被认证方得到的Hash值做比较,如果一致,则认证通过,如果不一致,则认证不通过。

CHAP认证过程图:

android 双向认证pem和key chap双向认证的工作原理_随机数_02

CHAP认证第三步:认证方告知被认证方认证是否通过。

CHAP认证过程图:

android 双向认证pem和key chap双向认证的工作原理_ci_03

CHAP认证和PAP认证的过程如上所述,这两种认证协议都被PPP协议支持,大家可以搜索相关的内容辅助理解这两个认证过程。

CHAP 认证实例:

AR1作为认证者,AR2作为被认证者

android 双向认证pem和key chap双向认证的工作原理_用户名_04

AR1配置:

aaa 
 domain system 
 authentication-scheme syt1 
 local-user admin password cipher %K8m.Nt84DZ}e#<0`8bmE3Uw}%
 local-user admin service-type http 
 local-user xk@system password cipher %V-QCZoZaUR^^G4}GLT*W_LW%%$ 
 local-user xk@system service-type pppinterface Serial4/0/0 
 link-protocol ppp 
 ppp authentication-mode chap domain system 
 ip address 10.10.10.9 255.255.255.252

AR2配置:

interface Serial4/0/0 
 link-protocol ppp 
 ppp chap user xk@system // 被认证的用户名必须与认证者AR1中本地的用户名一直 
 ppp chap password cipher %L,4T2:@cH1/L`0^f{%,”lN% // 密码也必须与AR2本地一直,否则端口协商不会成功, 
 ip address 10.10.10.10 255.255.255.252 
 PPP协商不成功则会出现 :Line protocol current state : DOWN 如下。 
 dis inter s4/0/0 
 Serial4/0/0 current state : UP 
 Line protocol current state : DOWN

附加CHAP协商过程:

android 双向认证pem和key chap双向认证的工作原理_用户名_05


android 双向认证pem和key chap双向认证的工作原理_CHAP-认证_06


android 双向认证pem和key chap双向认证的工作原理_ci_07