OpenSSL的Heartbleed漏洞會泄露用戶敏感數據,也會泄露網站私鑰。
云計算公司CloudFlare的挑戰賽證明竊取私鑰是可能的。
劍橋大學計算機實驗室安全團隊的博士生Rubin Xu在Ars上發表文章,介紹他如何利用Heartbleed漏洞竊取網站的私鑰。
Rubin Xu解釋說,2048位的N是兩個隨機生成的大素數p和q的乘積,N是公開的,而p和q是保密的。
要發現p或q以獲取密鑰,一種方法是因式分解N,但這非常困難。
有了Heartbleed漏洞,攻擊就變得簡單多了:因為Web服務器需要內存中的私鑰簽名TLS握手,因此p和q必須保留在內存中,所以可嘗試利用 Heartbleed數據包獲取它們。
我們知道p和q是1024位,而OpenSSL在內存中是以小端格式儲存數據,竊取密鑰的暴力攻擊方法是將Heartbleed包中每一個連續的128位字節看作小端數,測試它們是否能被N相除。