免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4083 | 回复: 2
打印 上一主题 下一主题

[C] 请教个radius协议的pap认证方式的密码隐藏相关算法。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-19 15:05 |只看该作者 |倒序浏览



根据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太复杂,代码看不懂。

论坛徽章:
0
2 [报告]
发表于 2015-07-21 12:12 |只看该作者
p是按16位分割的,所以是16位定长的;b是MD5加密算法算出来的,也是16位定长的;所以按位异或出来的结果也是16位定长的,也就是说加密后的密码是16位的倍数(根据密码长短看是分成多少倍)。

论坛徽章:
0
3 [报告]
发表于 2015-07-26 08:00 |只看该作者
本帖最后由 luokaichuang 于 2016-10-14 18:24 编辑

回复 2# dupeng4607




MD5的结果不是32位的吗???
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP