李彥初 荊繼武 雷靈光 王躍武 王平建
1.中國科學(xué)院大學(xué)計算機科學(xué)與技術(shù)學(xué)院, 北京 100049; 2.中國科學(xué)院大學(xué)密碼學(xué)院, 北京 100049; 3.北京大學(xué)軟件與微電子學(xué)院, 北京 100871; 4.中國科學(xué)院信息工程研究所信息安全國家重點實驗室, 北京 100093; 5.中國科學(xué)院大學(xué)網(wǎng)絡(luò)空間安全學(xué)院, 北京 100049; ? 通信作者, E-mail: leilingguang@iie.ac.cn
ARM 平臺廣泛應(yīng)用于個人移動終端、物聯(lián)網(wǎng)和工業(yè)控制系統(tǒng)等場景[1]。相對于桌面系統(tǒng)或服務(wù)器, 移動終端設(shè)備更容易丟失或被竊取, 而物聯(lián)網(wǎng)和工業(yè)控制系統(tǒng)經(jīng)常需要在無人值守的非受控場景下工作, 因此這類平臺的安全機制更容易遭受物理內(nèi)存泄露攻擊。因此, 如何構(gòu)建 ARM 平臺抗物理內(nèi)存泄露攻擊的密碼機制成為目前系統(tǒng)安全研究的熱點。
物理內(nèi)存泄露攻擊的根源在于普通的 DRAM(dynamic random access memory)內(nèi)存芯片獨立于ARM 的 SoC (system on a chip)芯片, 需要通過內(nèi)存總線與 SoC 芯片進行雙向數(shù)據(jù)傳輸。當(dāng)數(shù)據(jù)存儲在內(nèi)存中時, 攻擊者可通過如下3種方式發(fā)起物理內(nèi)存泄露攻擊。1) 冷啟動攻擊[2–3]: 利用內(nèi)存的剩磁效應(yīng), 將正在運行的設(shè)備斷電, 然后將內(nèi)存接入攻擊者控制的系統(tǒng)中, 讀取其中殘留的數(shù)據(jù)。2) 總線監(jiān)聽攻擊[4–5]: 當(dāng)內(nèi)存芯片與SoC芯片通過內(nèi)存總線傳輸數(shù)據(jù)時, 攻擊者通過監(jiān)聽該總線, 竊取內(nèi)存中的敏感數(shù)據(jù), 相關(guān)的攻擊工具[6–7]可以很容易地獲取。3) DMA (direct memory access)攻擊[8–10]: 攻擊者控制特定 I/O 設(shè)備并發(fā)起 DMA 請求, 在處理器不參與的情況下, 直接從內(nèi)存中拷貝敏感數(shù)據(jù)。因此, 避免直接在內(nèi)存中存儲敏感計算輸入、輸出和中間結(jié)果數(shù)據(jù)成為當(dāng)前抗物理內(nèi)存泄露攻擊的主要技術(shù)途徑。……