"压缩比信息泄漏一点通" 攻击详解

一、背景

关于SSL BEAST 攻击的作者Juliano Rizzo 和Thai Duong 发布了一个新的被称为压缩比信息泄漏一点通攻击(Compression Ratio Info-leak Made Easy)方法。它允许攻击者解密在SSL隧道传输的敏感信息。利用此漏洞的最直接的方式是用它来检索通过应用程序的Cookie,并使用它们登录到作为受害者的应用中。

压缩比信息泄漏一点通是攻击SSL压缩和SPDY所熟知的方式。 SPDY是一种由谷歌开发特殊的类似于HTTP的协议,并有节制地应用于各地网络。据Ivan Ristic的统计,通过SSLpluse收集,大约有42%的服务器支持SSL压缩,SPDY协议的支持率是0.8%。 SSL压缩是一项可选功能,默认情况下,可能会或可能不会被启用 。然而SPDY将被明确设计到你的web应用程序。

二、技术

压缩比信息泄漏一点通的工作原理是利用压缩函数的一个属性,与压缩前的数据长度无关。内部的压缩函数更复杂,但这个简单的例子展示了如何被利用导致信息泄漏。回顾一下以下的浏览器POST方式:

POST /target HTTP/1.1

Host: example.com

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0)Gecko/20100101 Firefox/14.0.1

Cookie: sessionid=d8e8fca2dc0f896fd7cb4cb0031ba249

sessionid=a

以十六进制显示此数据如下:

  wKiom1PwepbhQUouAACmWvGNANQ634.jpg 


DEFLATE压缩算法如前所述,内部更复杂,但基本算法是寻找重复的字符串,将它们移动到一个字典,并用字典的条目与参考取代实际的字符串。我们会拿上面的例子,并找出两个重复的字符串,我们可以删除:“.1”和“的sessionid=”。我们将它们移动到一个字典,并用节节中未使用的信息(0x00和0x01)取代它。

wKiom1Pwet_SlGeAAACpCxU8bmI657.jpg


这已将信息从195字节压缩到187字节。在BODY请求部分,我们指定“sessionid=a”。当指定的”SessionID=d“,我们看会发生什么,这是秘密会话cookie的第一个字符:

wKioL1PwfC6x7lhpAACjIX0tUlE588.jpg

    现在,我们已经将信息从195字节压缩到186字节。攻击者可以观察到的SSL数据包的大小,可以使用这种技术以自适应的方式去推出cookie的确切值。

作为一种方法,如前所述,真正的deflate获取账号有更多的方法(例如,解压出的字符串长度),工作在一个滑动窗口通过的数据(检查整个数据块,而不是一次) - 但这个简单的例子表明,通过单个的字节长度不同,我们寻找揭示我们已经猜到了正确的字符。对于更复杂的分析,你可以找出Thomas Pornin的《answer at stackexchange》和Krzysztof Kotowicz的《a proof of concept code》。


你可能感兴趣的:(攻击,压缩比信息泄漏一点通)