本帖最后由 hotpower 于 2011-12-26 19:51 编辑
在《菜农认为网站数据库应该存储的注册信息 》一文中,菜农认为网站应该存储一下信息:
1.用户名
2.用户密码注册长度
3.网站特定码
4.散列值
5.绑定邮箱
6.绑定手机
7.密码找回提问(是个漏洞,可以考虑废除)
HotWC3网上单向散列函数验证:http://www.hotpage.net.cn/HotPower_HotAjax.html
用户hotpower手持:
用户名:hotpower,用户密码:250
网站www.21ic.com掌握:
网站特定码:www.21ic.com
用户名:hotpower
用户密码注册长度:3
散列数:8917DEF303D5B0E3 【上图中点击运算后的“结果”】
由于HotWC3单向散列函数采用CRC内核,根据“CRC性质”:
我们将www.21ic.com;hotpower;250分为2段:
1.www.21ic.com;hotpower;
2.250
先攻击:www.21ic.com;hotpower;
得到散列数:30A9B997387E3EC5
根据“CRC性质”:
由于算法采用“出值=FFFFFFFFFFFFFFFF”,故需要将取反操作,即
30A9B997387E3EC5取反为CF564668C781C13A做为第2次攻击的初值
再攻击用户密码250:
可以看到2次分段攻击成功!!!
故可以看到,用户名,网站特定码等都可以1次攻击为2次攻击的初值。
这就又归结为用散列数攻击密码了,其他的看似对攻击者的障碍都形同虚设。
故菜农强调了网站注册时存储密码长度信息的重要。
虽然这样做大大减少了碰撞的概率,但随着用户密码长度和字母数字混合密码等会增大穷举的碰撞次数和时间。
如何阻止或降低分段攻击呢,且看菜农下回分解。
菜农HotPower@126.com 2011.12.26 18:18 于雁塔菜地 |