radius chap 加/解密算法 抓包分析
chap 认证
chap: CHAP(Challenge Handshake Authentication Protocol)验证协议为三次握手(交互)验证协议
chap并不会直接在认证过程传递用户密码, 而是传递 md5 ( chapID + 密码 + challenge ), 服务端通过比较md5值判断用户密码是否在正确, client 和 server 之前存在一个 challenge “协商”过程
但 在radius 协议中, NAS(交换机)与radius服务器的交互,并不需要三次交互, NAS会将认证信息 “打包”给radius 服务器校验
具体可参考 RFC2865
radius服务器 chap 用户名/密码 校验原理
(1)radius 服务器通过用户名(明文), 找出对应的密码
(2)计算 md5 ( chapID + 密码 + challenge ) , 并判断 是否与 chap-password (从第2字节开始比较) 一致,
如果一致, 则认为密码正确
radius 服务器 抓包截图, 以及 md5 计算结果如下:
截图中, md5 ( chapID + 密码 + challenge ) 与 chap string 一致, 由此可知,用户密码正确