【问题】
发现在利用
php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby提供的标准库net/https.rb发送https协议的请求时,存在着不能检出中间人攻击的脆弱性问题。
有关该问题的详细描述,公开在<URL:
http://www.isecpartners.com/advisories/2007-006-rubyssl.txt>
【影响】
在net/https.rb中进行SSL
连接的时候,证明书的CN不能对用户所请求的DNS进行有效的验证,因此,
攻击者有可能冒充成用户所要请求的目标服务器来进行攻击。
【存在该问题的版本】
1.8系
1.8.4以前的所有版本,1.8.5-p113以前版本,1.8.6-p110以前的版本
开发版(1.9系)
2007-09-23之前的所有版本
【各版本的对应方法】
1.8系
请更新成1.8.6-p111或者1.8.5-p114
* <URL:
ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p111.tar.gz>
* <URL:
ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.5-p114.tar.gz>
为了让检查生效,有必要像下面的样子使用【Net::HTTP#enable_post_connection_check=】
http = Net::HTTP.new(host, 443)
http.use_ssl = true
http.enable_post_connection_check = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
store = OpenSSL::X509::Store.new
store.set_default_paths
http.cert_store = store
http.start {
response = http.get("/")
}另外,还可以从提供Ruby package的供应商那里,得到相应的修正版,详情请资讯各自的提供商。
开发版(1.9系)
请更新成2007-09-23之后的版本。在ruby1.9中,Net::HTTP#enable_post_connection_check的默认值为true
注:在此,小生再次作了一次翻译,嗯,还是挺有成就感的,
呵呵。
原文请参照【
http://www.ruby-lang.org/ja/news ... m-2007-006-rubyssl/】