本帖最后由 hotpower 于 2011-12-26 12:12 编辑
正在研究HotWC3的碰撞问题,因为任何哈希函数存在着碰撞问题,例如王晓云教授研究MD5碰撞的成果。
但是论坛或邮箱都可以用验证码来阻止穷举散列数的频率,输入密码错误次数锁定并发送绑定邮箱或绑定手机通知用户。
这些都可以防范。
但是存储散列值应该说比存储密文密码要安全的多,但单向散列函数故有的碰撞特性任何人都无法回避。
为了在输入流中隐含更多的各方信息,例如散列数中同时隐含了用户和网站各自的信息例如:
用户持有:用户名和用户密码
网站持有:用户名和网站特定码和散列值。
其中:散列值=哈希函数(用户名,用户密码,网站特定码)
这样做后,用户或网站都必须同时知道对方的信息而且要知道算法。
这样将降低碰撞的概率,逼迫其在知道用户名和网站特定码及算法的前提下攻击用户密码。
由于论坛或邮箱登陆输入信息是以流的方式出现,故可以再附加用户密码的长度信息。
由于散列函数碰撞可以用短密码长度得到同样的散列值,故测试用户密码注册长度也是
一种安全机制。但同时又告诉了黑客重要的信息。
用户持有:用户名和用户密码
网站持有:用户名及用户密码注册长度和网站特定码和散列值。
其中:散列值=哈希函数(用户名,用户密码,用户密码注册长度,网站特定码)
为了解决密码找回问题,故网站数据库应该存储下列信息(字段):
1.用户名
2.用户密码注册长度
3.网站特定码
4.散列值
5.绑定邮箱
6.绑定手机
7.密码找回提问(是个漏洞,可以考虑废除)
特别注意:此研究可以将包括算法等都公开,只是用户密码一项不公开。
HotPower@126.com 2011.12.26 |