一、背景
關於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
以十六進制顯示此數據如下:
DEFLATE壓縮算法如前所述,內部更復雜,但基本算法是尋找重複的字符串,將它們移動到一個字典,並用字典的條目與參考取代實際的字符串。我們會拿上面的例子,並找出兩個重複的字符串,我們可以刪除:“.1”和“的sessionid=”。我們將它們移動到一個字典,並用節節中未使用的信息(0x00和0x01)取代它。
這已將信息從195字節壓縮到187字節。在BODY請求部分,我們指定“sessionid=a”。當指定的”SessionID=d“,我們看會發生什麼,這是祕密會話cookie的第一個字符:
現在,我們已經將信息從195字節壓縮到186字節。***者可以觀察到的SSL數據包的大小,可以使用這種技術以自適應的方式去推出cookie的確切值。
作爲一種方法,如前所述,真正的deflate獲取賬號有更多的方法(例如,解壓出的字符串長度),工作在一個滑動窗口通過的數據(檢查整個數據塊,而不是一次) - 但這個簡單的例子表明,通過單個的字節長度不同,我們尋找揭示我們已經猜到了正確的字符。對於更復雜的分析,你可以找出Thomas Pornin的《answer at stackexchange》和Krzysztof Kotowicz的《a proof of concept code》。