如今,共享計算設(shè)備是一種非常普遍的行為,,尤其是當用戶在云端或移動設(shè)備進行計算時,。但是這種資源共享行為很可能會無意間泄露用戶的隱私信息。由于同一臺計算機上運行的多個程序可能共享相同的內(nèi)存資源,,因此它們中存放的隱私數(shù)據(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ù)對高價值目標發(fā)起針對性攻擊,。值得一提的是,,北卡羅來納州立大學(xué)研究人員不久前正是通過側(cè)信道攻擊,,實現(xiàn)了對同態(tài)加密技術(shù)的繞過,。攻擊方僅通過監(jiān)聽執(zhí)行同態(tài)加密編碼操作的設(shè)備功耗,就成功以明文形式提取了同態(tài)加密中的數(shù)據(jù),。這件事情也為行業(yè)敲響了警鐘,,警示我們即便是下一代加密技術(shù)也同樣需要針對側(cè)信道攻擊的有效防護機制。
阻止這種攻擊的傳統(tǒng)方法是,,一次只允許一個程序使用內(nèi)存控制器,,但這會大大降低計算速度。麻省理工學(xué)院的研究團隊目前成功設(shè)計出了一種新方法,,該方法允許內(nèi)存共享繼續(xù)存在,,同時提供針對此類側(cè)信道攻擊的安全防護能力。這種新方法,,將程序的內(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,。
使用這種嚴格的時間表,有時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)隨機存取存儲器(Dynamic Random Access Memory,,簡稱DRAM),然后‘塑造’請求,。這樣一來,,無論攻擊者通過何種方式,都很難竊取到隱私數(shù)據(jù),。對此,,我們進行了模擬驗證,結(jié)果顯示DAGguise這一方案非常有效,?!?/p>
研究人員承認,,DAGuise會對系統(tǒng)性能產(chǎn)生一定影響,但與其他安全解決方案相比,,DAGguise 對計算設(shè)備性能的影響大幅降低,。當然,除了在實現(xiàn)更快計算的同時提供更好的安全性之外,,該技術(shù)還可以應(yīng)用于一系列針對共享計算資源的不同側(cè)信道攻擊,。