质询握手身份验证协议 (CHAP)
挑战握手认证协议(CHAP)是由 IETF(互联网工程任务组)开发的点对点协议(PPP)认证协议。它在链接的初始启动时使用。此外,它还会执行定期检查以检查路由器是否仍在与同一主机通信。
特征 :
- 它使用 3 次握手协议(不像 TCP)。首先,身份验证者向对等方发送一个质询数据包,然后对等方使用其单向哈希函数以一个值进行响应。然后,身份验证器将接收到的值与其自己计算的哈希值相匹配。如果值匹配,则确认身份验证,否则将终止连接。
- 它使用称为 MD5 的单向哈希函数。
- 它还定期进行身份验证以检查通信是否与同一设备进行。
- 此外,它提供了比 PAP(密码验证程序)更高的安全性,因为使用的值(通过散列函数找出)是可变的。
- CHAP 需要知道秘密的明文,因为它永远不会通过网络发送。
CHAP 数据包:
CHAP 数据包有 4 种类型——
- 挑战数据包:它是在 CHAP 3 次握手开始时由身份验证器发送给对等方的数据包。还定期发送挑战数据包以检查连接是否未更改。它包含标识符值,包含随机值的值字段,还包含包含身份验证器名称的名称字段。名称字段用于密码查找。 name 字段也被提供给 MD5 散列生成器,并生成单向散列值。
- 响应包:用于响应挑战包。它包含 Value 字段,其中包含生成的单向哈希值、标识符值和名称字段。响应数据包的名称字段设置为对等路由器的主机名。现在,在挑战数据包的名称字段中查找密码。路由器在挑战数据包的名称字段中查找与用户名匹配的条目并获取密码。然后,通过将该密码提供给 MD5 哈希生成器对该密码进行哈希处理,并以一种方式生成哈希值。该值被插入到响应包的值字段中,并发送给认证者。
- 成功数据包:现在,身份验证器还通过在响应数据包的名称字段(如果它具有该用户名的条目)中查找并使用它生成哈希值来执行相同的操作。如果生成的值与对端的值相同,则发送成功包。
- 失败包:如果生成的值不同,则将失败包发送给对等方。
配置 :
有一个带有 2 个路由器的小型拓扑,即 Router1 和 Router2。 Router1 在 s0/0 上的 IP 地址为 10.1.1.1/30,Router2 在 s0/0 上的 IP 地址为 10.1.1.2/30。请记住,默认情况下,在 Cisco 路由器上配置了 HDLC,因此,首先将封装更改为 PPP。
配置 R1:
Router1(config)# int s0/0
Router1(config-if)# encapsulation ppp
配置 R2 :
Router2(config)# int s0/0
Router2(config-if)# encapsulation ppp
更改两个路由器的主机名。
Router1(config)# hostname R1
Router2(config)# hostname R2
一一提供用户名和密码。
R1(config)# username R2 password GeeksforGeeks
R2(config)# username R1 password GeeksforGeeks
请注意,用户名和密码区分大小写。此外,在路由器 R1 上,我们必须提供其他路由器的用户名,即 R2,反之亦然。