一位攻击者周四证实,上周宣布的“犯罪”攻击利用TLS(传输层安全)和SPDY协议使用的数据压缩方案来解密来自HTTPS (HTTP安全)流量的用户身份验证cookie。
“犯罪”的攻击是由安全研究人员Juliano Rizzo和Thai Duong开发的,他们计划下周在阿根廷布宜诺斯艾利斯举行的Ekoparty安全会议上展示。
Rizzo和Duong上周透露,在所有版本的TLS和SSL (Secure Sockets Layer, HTTPS使用的加密协议)中都有一个可选的特性,即犯罪滥用。不过,当时他们拒绝透露这一功能的名称。
周六,来自加拿大魁北克的密码学建筑师托马斯·波尔宁(Thomas Pornin)建议在一个技术问答网站被犯罪滥用的特性可能是SSL/TLS数据压缩。Pornin甚至提出了一种符合一般犯罪描述的攻击。
Rizzo周四通过电子邮件证实,犯罪分子利用了SSL和TLS的数据压缩特性。然而,SPDY——一种使用类似压缩方案的网络协议——也容易受到攻击,他说。
SPDY(读作speedy)协议是由谷歌开发的,它使用压缩、多路复用和优先级等技术来减少Web页面的延迟。它不能取代HTTP或HTTPS,但可以用来提高它们的速度。
SPDY已经在谷歌Chrome和Firefox中实现,并得到了包括谷歌搜索、Gmail和Twitter在内的多个流行网站的支持。
通过暴力破解网站设置的HTTPS cookie,以记住经过身份验证的用户。攻击代码迫使受害者的浏览器向目标网站发送特制的HTTPS请求,并分析这些请求被压缩后长度的变化,以确定受害者的会话cookie的值。
这是可能的,因为SSL/TLS和SPDY使用一种称为DEFLATE的压缩算法,它消除了重复字符串。
例如,如果我们生成一个请求,包含一个字符串“饼干= 123”和一个“饼干= 456”字符串,然后我们缩小,压缩压缩算法将取代“饼干= "部分从第二个字符串和一个小牌,指向的位置从第一个字符串“饼干=”部分。这将导致一个较小的请求。
如果我们随后生成另一个请求,但使用的是“cookie = 556”而不是“cookie = 456”,那么压缩算法将再次替换“cookie =”,因为它与现有的“cookie = 123”字符串的相同部分匹配。这将导致被压缩的请求与第一个请求的长度几乎相同。
但是,如果我们生成第三个请求,但是使用“cookie = 156”而不是“cookie = 456”,那么压缩算法现在将替换“cookie = 1”部分,因为它将匹配现有的“cookie = 123”字符串中的“cookie = 1”。结果请求将比前两个请求更短,因为替换了较长的部分。
如果我们假设我们事先不知道第一个字符串的123值,那么第三个请求的压缩比变化将表明我们猜测的是该值的第一个字符——1。
然后我们可以再次开始同样的过程,但是现在使用已经知道的字符,并为第二个字符尝试不同的变体,直到我们看到压缩比的新变体。犯罪基于同样的原则。
它使用JavaScript或简单的HTML代码来迫使受害者的浏览器反复向目标HTTPS网站发起请求。攻击代码可以被加载到受害者的浏览器中,方法是诱骗受害者访问一个受到攻击的或恶意的网站,或者在通过开放的无线网络连接时将其注入受害者的合法HTTP流量。
由于浏览器中的安全机制,攻击代码无法读取包含在请求中的会话cookie。但是,它可以控制每个新请求的路径,并可以向其中插入不同的字符串,以尝试匹配cookie的值。
当压缩的HTTPS请求离开受害者的计算机时,攻击者需要能够比较它们。因此,他需要与受害者在同一开放的无线网络上,控制受害者的家庭路由器,或者与受害者在同一局域网络上,在这种情况下,可以使用其他攻击技术,如ARP欺骗干扰。
会话cookie值可以很长,由大写字母、小写字母和数字组成。因此,犯罪攻击代码必须发起大量请求来解密它们,这可能需要几分钟时间。
然而,研究人员已经开发了一些算法,使攻击更有效。其中一个犯罪算法对每个字节的解密请求少于6次。有时候4个就够了,我们还可以调音。周三在推特上说。
网站对TLS压缩的支持非常广泛。42%的服务器被SSL脉冲安全供应商Qualys的工程总监Ivan Ristic周四表示,该项目监控全球18万个支持http的网站的SSL/TLS实现,支持压缩。
然而,TLS或SPDY压缩的支持水平在客户端不是很好,Ristic说。他说,一个数据来源表明,10%的客户支持TLS压缩。
为了使犯罪攻击工作,服务器和客户机都需要支持压缩特性。
Internet Explorer从不支持TLS压缩或SPDY。Rizzo说,Mozilla Firefox只支持SPDY,但是Firefox 15删除了压缩,所以最新的稳定版本现在可以防止犯罪。
谷歌Chrome同时支持TLS压缩和SPDY压缩,但是这些特性在最新版本中被删除了。
目前还不清楚Android版本的Chrome和Firefox是否已经修补。
Ristic认为,在犯罪的情况下,问题不是很严重,因为通过应用补丁可以很容易地在客户端和服务器上禁用压缩。
Rizzo和Duong去年开发的另一种针对SSL/TLS的攻击,可能比犯罪更危险,因为它无法用补丁修复,Ristic说。你必须手动修理它,他说。
Ristic称,根据SSL Pulse的数据,在全球最大的18万个支持https的网站中,有超过70%的网站仍然容易受到BEAST的攻击。
“Gmail和Twitter使用SPDY, Dropbox和雅虎邮件使用TLS压缩,”Rizzo说。“我们联系了Dropbox,他们昨天禁用了压缩。”
Rizzo说,未来SPDY可以重新设计,使用压缩,但避免犯罪攻击。事实上,谷歌已经为此开发了一个解决方案,他说。
Rizzo说:“可以为某些应用协议启用TLS压缩,但为HTTP启用它是有问题的。”