Hash Collision DoS 问题
最近,除了国内明文密码的安全事件,还有一个事是比较大的,那就是 Hash Collision DoS (Hash碰撞的拒绝式服务攻击),有恶意的人会通过这个安全弱点会让你的服务器运行巨慢无比。这个安全弱点利用了各语言的Hash算法的“非随机性”可以制造出N多的value不一样,但是key一样数据,然后让你的Hash表成为一张单向链表,而导致你的整个网站或是程序的运行性能以级数下降(可以很轻松的让你的CPU升到100%)。目前,这个问题出现于Java, JRuby, PHP, Python, Rubinius, Ruby这些语言中,主要:
- Java, 所有版本
 - JRuby <= 1.6.5 (目前fix在 1.6.5.1)
 - PHP <= 5.3.8, <= 5.4.0RC3 (目前fix在 5.3.9, 5.4.0RC4)
 - Python, all versions
 - Rubinius, all versions
 - Ruby <= 1.8.7-p356 (目前fix在 1.8.7-p357, 1.9.x)
 - Apache Geronimo, 所有版本
 - Apache Tomcat <= 5.5.34, <= 6.0.34, <= 7.0.22 (目前fix在 5.5.35, 6.0.35, 7.0.23)
 - Oracle Glassfish <= 3.1.1 (目前fix在mainline)
 - Jetty, 所有版本
 - Plone, 所有版本
 - Rack <= 1.3.5, <= 1.2.4, <= 1.1.2 (目前fix 在 1.4.0, 1.3.6, 1.2.5, 1.1.3)
 - V8 JavaScript Engine, 所有版本
 - ASP.NET 没有打MS11-100补丁
 
注意,Perl没有这个问题,因为Perl在N年前就fix了这个问题了。关于这个列表的更新,请参看 oCERT的2011-003报告,比较坑爹的是,这个问题早在2003 年就在论文《通过算法复杂性进行拒绝式服务攻击》中被报告了,但是好像没有引起注意,尤其是Java。
弱点攻击解释
你可以会觉得这个问题没有什么大不了的,因为黑客是看不到hash算法的,如果你这么认为,那么你就错了,这说明对Web编程的了解还不足够底层。


 (32 人打了分,平均分: 3.94 )