破解加密磁碟的超級必殺技: 急凍攻擊

Princeton的Center for Information Technology Policy最近發明了一個破解加密磁碟的超級必殺技Cold Boot Attacks(直接翻譯應該稱為冷開機攻擊法,但聽起來容易誤會。所以讓我們叫它做「急凍攻擊」吧。)

這方法之所以能稱得上「必殺」,是因為它不管你是什麼作業系統,或是用什麼需要一萬台電腦算上一億年的加密方法,只要電腦在已開機狀態,就能輕易取得解密用的key。這方法的關鍵是他們發現存在DRAM中的資訊,其實並不是一斷電就會消失。在室溫下,資料會有規則的慢慢消失,整個消失過程也要花上一分多鐘。也就是說,只要能碰到開機中的電腦,我們只要把它插頭拔掉,再用外接硬碟或光碟重開機,就能輕易地把剛才還存在DRAM中的資料dump出來。而任何硬碟加密保護技術,只要已經打過密碼進入系統,那麼解密用的key就一定存在RAM裡面,於是這個dump DRAM的方法就能輕易取得各種暫存在記憶體中的密碼,甚至是已解密的重要資料。

雖然這方法很厲害,但畢竟只有一分多鐘的時間能dump memory,實在有點太短了(光重開機就得花上個半分鐘吧)。於是他們提出更厲害的招數:只要將DRAM降溫,就能延長資料消失的時間。在下面的影片中,他們拿壓縮空氣罐對著DRAM噴一噴,就輕易的讓資料保存在DRAM裡超過10分鐘。十分鐘已經足夠把DRAM拔起來,拿到另一台電腦去慢慢dump了…。(他們甚至實驗過如果把DRAM泡在-196°C的液態氮中,即使過了一個小時資料都能完整保存。)

Princeton CITP還提供了一個簡單的實驗方法

  1. 用任何程式語言,在記憶體中隨便塞入一串可辨認的字串。例如

    #!/usr/bin/env python

    # a pirate's favorite chemical element
    a = ""
    while 1: a += "ARGON"

  2. 讓這程式跑個幾分鐘,以確定記憶體中有夠多份這個字串。
  3. 接著拔掉電腦插頭,再重開機。最後看看現在記憶體中還有沒有這個字串。Linux下可以用下面的指令來看raw memory內容。

    sudo strings /dev/mem | grep "ARGON"

延伸閱讀:完整論文

2 thoughts on “破解加密磁碟的超級必殺技: 急凍攻擊

  1. 本來想找一些特別的加密方案,沒想到居然找到這個,雖然不是想學解密但是也認識了 DRAM 的特性了吧,看來公司的外派間諜又需要多學一招了 xd

  2. Pingback: comic glass 密碼 - 部落格熱搜- comic glass 密碼

留言給我吧!