Netty 有没有人认为内蒂';s是否接受oCERT-2011-003?

Netty 有没有人认为内蒂';s是否接受oCERT-2011-003?,netty,Netty,通过哈希表多次冲突拒绝服务(http://www.nruns.com/_downloads/advisory28122011.pdf) 我希望有人知道为什么Netty的QueryStringDecoder不易受到这种攻击 从参考的.pdf ==Java== Java提供了HashMap和Hashtable类,它们使用String.hashCode()哈希函数。它与DJBX33A非常相似(它使用乘法常数31代替33,使用0代替起始值5381)。因此,它也容易受到等效子串攻击。对字符串进行哈希运算时

通过哈希表多次冲突拒绝服务(http://www.nruns.com/_downloads/advisory28122011.pdf)

我希望有人知道为什么Netty的QueryStringDecoder不易受到这种攻击

从参考的.pdf

==Java== Java提供了HashMap和Hashtable类,它们使用String.hashCode()哈希函数。它与DJBX33A非常相似(它使用乘法常数31代替33,使用0代替起始值5381)。因此,它也容易受到等效子串攻击。对字符串进行哈希运算时,Java还将哈希值缓存在哈希属性中,但仅当结果不同于零时。因此,目标值零对于攻击者来说特别有趣,因为它可以防止缓存并强制重新散列

不同的web应用程序以不同的方式解析POST数据,但是经过测试的应用程序(Tomcat、Geronima、Jetty、Glassfish)都将POST表单数据放入哈希表或HashMap对象中。不同服务器的最大POST大小也不同,最常见的是2MB

Tomcat 6.0.32服务器在大约44分钟的i7 CPU时间内解析2MB的冲突密钥串,因此,大约6kbit/s的攻击者可以让一个i7内核持续忙碌。如果攻击者有千兆连接,他可以让大约100.000个i7内核保持忙碌。

Netty不受影响,因为我们已经限制了标题大小。有关更多详细信息,请参见[1]:


[1] 看起来Trustin已经考虑过这一点

commit 521bf83d0f39896f3c87c54bebd1e8c06e86b60b
Author: Trustin Lee <trustin@gmail.com>
Date:   Fri Dec 30 17:58:51 2011 +0900

    Issue #141: hashdos security vulnerability in QueryStringDecoder and possibly other components

    * Limited maximum number of parameters to 1024 by default and made the
    limitation configurable
    * QueryStringDecoder is now able to handle an HTTP POST content

M       codec-http/src/main/java/io/netty/handler/codec/http/QueryStringDecoder.java
M       codec-http/src/test/java/io/netty/handler/codec/http/QueryStringDecoderTest.java
提交521bf83d0f39896f3c87c54bebd1e8c06e86b60b
作者:李信赖
日期:2011年12月30日星期五17:58:51+0900
问题#141:QueryStringDecoder和可能的其他组件中的hashdos安全漏洞
*默认情况下,将最大参数数限制为1024,并使
可配置的限制
*QueryStringDecoder现在能够处理HTTP POST内容
M codec http/src/main/java/io/netty/handler/codec/http/QueryStringDecoder.java
M codec http/src/test/java/io/netty/handler/codec/http/QueryStringDecoderTest.java

是。Netty 3.3.0包括此修复程序。