一種有效應(yīng)對側(cè)信道內(nèi)存攻擊的新方法

發(fā)布時間 2022-03-12

如今,共享計算設(shè)備是一種非常普遍的行為,尤其是當(dāng)用戶在云端或移動設(shè)備進(jìn)行計算時。但是這種資源共享行為很可能會無意間泄露用戶的隱私信息。由于同一臺計算機(jī)上運行的多個程序可能共享相同的內(nèi)存資源,因此它們中存放的隱私數(shù)據(jù)(例如存儲在計算機(jī)內(nèi)存中的加密密鑰或用戶密碼)可能會被惡意程序通過“內(nèi)存時序(memory-timing)側(cè)信道攻擊(side-channel attacks)”竊取。

側(cè)信道內(nèi)存攻擊目前在現(xiàn)實中并不常見,原因在于,這種攻擊通常具有高度的復(fù)雜性,不僅需要定制攻擊程序,還要對電信號(electric signaling)的工作原理以及操縱模式非常了解。但是,研究人員發(fā)現(xiàn),一些高級攻擊者已經(jīng)開始利用該技術(shù)對高價值目標(biāo)發(fā)起針對性攻擊。值得一提的是,北卡羅來納州立大學(xué)研究人員不久前正是通過側(cè)信道攻擊,實現(xiàn)了對同態(tài)加密技術(shù)的繞過。攻擊方僅通過監(jiān)聽執(zhí)行同態(tài)加密編碼操作的設(shè)備功耗,就成功以明文形式提取了同態(tài)加密中的數(shù)據(jù)。這件事情也為行業(yè)敲響了警鐘,警示我們即便是下一代加密技術(shù)也同樣需要針對側(cè)信道攻擊的有效防護(hù)機(jī)制。

阻止這種攻擊的傳統(tǒng)方法是,一次只允許一個程序使用內(nèi)存控制器,但這會大大降低計算速度。麻省理工學(xué)院的研究團(tuán)隊目前成功設(shè)計出了一種新方法,該方法允許內(nèi)存共享繼續(xù)存在,同時提供針對此類側(cè)信道攻擊的安全防護(hù)能力。這種新方法,將程序的內(nèi)存請求“塑造”成預(yù)定義的模式,并混淆程序?qū)嶋H需要使用內(nèi)存控制器的時間,從而擾亂攻擊者的視線。

在一個程序可以訪問內(nèi)存控制器之前,它必須通過一個“請求塑造器”(request shaper)來“塑造”內(nèi)存請求。這種“請求塑造器”使用圖形結(jié)構(gòu)來處理請求并按照固定的時間表將它們發(fā)送到內(nèi)存控制器。這種類型的圖稱為有向無環(huán)圖(DAG),而這種創(chuàng)新安全方案稱為 DAGguise。

使用這種嚴(yán)格的時間表,有時DAGguise會將程序的請求延遲到下一次允許訪問內(nèi)存(根據(jù)固定的時間表),或者有時如果程序不需要訪問內(nèi)存,它會提交一個假請求調(diào)度間隔??傊?,通過這種非常結(jié)構(gòu)化的模式,用戶可以向攻擊者隱藏實際行為。

DAGguise會將程序的內(nèi)存訪問請求表現(xiàn)為一個圖,其中每個請求都存儲在一個“節(jié)點”中,連接節(jié)點的“邊”是請求之間的時間依賴關(guān)系。(請求A必須在請求B之前完成。)節(jié)點之間的邊——每個請求之間的時間是固定的。程序可以在需要時向DAGguise提交內(nèi)存請求,DAGguise將調(diào)整該請求的時間以始終確保安全。無論處理內(nèi)存請求需要多長時間,攻擊者看到的都只是請求實際發(fā)送到控制器的時間。

這種圖結(jié)構(gòu)使內(nèi)存控制器能夠動態(tài)共享。如果有許多程序試圖一次使用內(nèi)存,DAGguise可以適應(yīng)并相應(yīng)地調(diào)整固定時間表,從而更有效地使用共享內(nèi)存硬件,同時仍然保持安全性。研究人員稱,“我們的解決方案就是將受害者對內(nèi)存控制器的訪問請求轉(zhuǎn)移到動態(tài)隨機(jī)存取存儲器(Dynamic Random Access Memory,簡稱DRAM),然后‘塑造’請求。這樣一來,無論攻擊者通過何種方式,都很難竊取到隱私數(shù)據(jù)。對此,我們進(jìn)行了模擬驗證,結(jié)果顯示DAGguise這一方案非常有效?!?/span>

研究人員承認(rèn),DAGuise會對系統(tǒng)性能產(chǎn)生一定影響,但與其他安全解決方案相比,DAGguise 對計算設(shè)備性能的影響大幅降低。當(dāng)然,除了在實現(xiàn)更快計算的同時提供更好的安全性之外,該技術(shù)還可以應(yīng)用于一系列針對共享計算資源的不同側(cè)信道攻擊。