- 论坛徽章:
- 0
|
根据RFC2865文档知道radius协议的pap认证方式密码是按照如下算法隐藏的
----------------------------------------------------------------------------------------------------------
共享密钥为S,请求认证字为RA,每16字节的密码分组为p*,c*为每组异或的结果。
b1 = MD5(S + RA) c1 = p1 xor b1
b2 = MD5(c1 + S) c2 = p2 xor b2
b3 = MD5(c2 + S) c3 = p2 xor b2
......
User-Password(pap):c1+c2+c3......
----------------------------------------------------------------------------------------------------------
根据文档描述,服务端获取User-Password属性的值后,逆向处理就可以得到密码原文,
那么问题来了,我怎么知道c1、c2、c3...c*每段异或后的长度呢?
还是说每组密码异或后的长度都是等长的?
PS:freeradius太复杂,代码看不懂。 |
|