亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        非易失性內(nèi)存安全技術(shù)綜述

        2022-05-28 07:54:42陳仁海史文燕李雅帥馮志勇
        集成技術(shù) 2022年3期
        關(guān)鍵詞:失性計數(shù)器完整性

        陳仁海 史文燕 李雅帥 馮志勇

        1(天津大學深圳研究院 深圳 518000)

        2(天津大學 天津 300350)

        1 引 言

        隨著大數(shù)據(jù)時代的到來,越來越多的應(yīng)用需要在內(nèi)存中對數(shù)據(jù)進行計算與處理,典型的以 Spark 為代表的大規(guī)模數(shù)據(jù)處理引擎需要將數(shù)據(jù)存儲到內(nèi)存中進行運算。因此,大數(shù)據(jù)應(yīng)用對內(nèi)存容量的需求越來越大,而在大數(shù)據(jù)應(yīng)用中,以動態(tài)隨機存儲器(Dynamic Random Access Memory,DRAM)為內(nèi)存介質(zhì)的傳統(tǒng)存儲器所凸顯出來的問題越來越嚴重。首先,DRAM 是易失性的存儲介質(zhì),數(shù)據(jù)存儲在電容器中,由于晶體管有漏電電流,隨著時間的推移,會導致電容上所存儲的電荷數(shù)量不足以正確地判別甚至丟失數(shù)據(jù)。因此,需要動態(tài)刷新以保證數(shù)據(jù)不被損壞,但刷新過程中會導致大量的能量被消耗。其次,存儲信息的電容需要足夠大的容量,以保證信息在存儲器中有足夠長的駐留時間。DRAM 單個存儲單元的容量已經(jīng)很難從工藝上進一步優(yōu)化,這意味著很難提高其單位面積的存儲容量,最終導致以 DRAM 為內(nèi)存模組的存儲容量的可擴展性出現(xiàn)瓶頸。由于 DRAM 的限制和約束,計算機設(shè)計者們開始考慮用非易失性內(nèi)存(Non-Volatile Memory,NVM)替代傳統(tǒng)的 DRAM 內(nèi)存。NVM作為非易失的存儲介質(zhì)不需要動態(tài)刷新,因此不會引起大量的能量消耗,其讀性能和 DRAM 相近,且單個存儲單元的容量具有較強的可擴展性[1-5]。NVM 具有低延時、高密度和低功耗等特性,可有效緩解存儲墻的問題[6-8]。此外,NVM還具有可擴展、掉電快恢復等優(yōu)勢。

        由于 NVM 具有傳統(tǒng)內(nèi)存的字節(jié)可尋址特性和外存的非易失特性,因此,可同時替代內(nèi)存(如 DRAM)和外存(如機械式硬盤、基于閃存的固態(tài)硬盤等)。這將為未來存儲系統(tǒng)的發(fā)展提供新的選擇,甚至徹底顛覆傳統(tǒng)的二級存儲結(jié)構(gòu),給計算系統(tǒng)帶來更大的存儲容量和更短的訪問延時,從而使數(shù)據(jù)與計算更加緊密,適應(yīng)于當前越來越多的海量數(shù)據(jù)應(yīng)用場景。隨著英特爾基于3D XPoint 的 Optane DIMM 技術(shù)的成熟和發(fā)展,基于非易失性存儲器的內(nèi)存模組在數(shù)據(jù)中心逐漸得到推廣。英特爾已發(fā)布的 Optane DIMM 的單條存儲容量可以高達 3 TB,其為數(shù)據(jù)中心提供了大容量、低功耗和高性能的存儲解決方案,同時也為傳統(tǒng)的內(nèi)存架構(gòu)帶來了新的變革。

        近年來,在計算機體系結(jié)構(gòu)中,安全和隱私問題得到了極大關(guān)注。傳統(tǒng)的 DRAM 內(nèi)存存在許多安全問題,如內(nèi)存泄露、冷啟動攻擊、側(cè)信道攻擊、重放攻擊等。傳統(tǒng)內(nèi)存存在的安全問題在 NVM 中依然存在,由于 NVM 自身的非易失性和耐久性,其面臨的攻擊方法、攻擊效果和防御方法都與傳統(tǒng)內(nèi)存有所不同[9-10]。如 NVM 顯然更容易受到冷啟動攻擊[11],較短的寫入壽命也讓其更容易受到惡意程序的磨損攻擊等。

        原則上,安全計算系統(tǒng)目前定義的可信計算基僅包括處理器,即片上資源是可信的;片外組件包括內(nèi)存總線和內(nèi)存模塊,都是不可靠的,容易受到被動(窺探)和主動(篡改)攻擊。傳統(tǒng)的以 DRAM 為內(nèi)存介質(zhì)的存儲器掉電后數(shù)據(jù)會自動丟失,即數(shù)據(jù)不會在存儲介質(zhì)中駐留較長時間。而將 NVM 作為非易失性存儲介質(zhì)時,數(shù)據(jù)可以在 NVM 中保留較長的時間。若攻擊者獲得 NVM 存儲器的訪問權(quán)后,掃描存儲內(nèi)容,便可以獲取其存儲數(shù)據(jù),該安全性問題被定義為數(shù)據(jù)的“恢復漏洞”。惡意程序利用 Meltdown 和Spectre 獲取存儲在其他運行在內(nèi)存中程序的機密信息。總線監(jiān)聽和內(nèi)存掃描攻擊技術(shù)給 NVM 內(nèi)存中敏感數(shù)據(jù)的機密性帶來了嚴重威脅,攻擊者還可通過修改、拼接以及重放 NVM 中內(nèi)存塊的數(shù)據(jù),來破壞其完整性。

        應(yīng)用傳統(tǒng)的加密技術(shù)可保證 NVM 數(shù)據(jù)的機密性,但傳統(tǒng)加密算法通常具有較高的計算復雜度,且 NVM 存儲單元的數(shù)據(jù)寫入速度相對較慢,因此,加密算法的引入會嚴重影響 NVM 的性能,特別是寫性能。此外,加密算法(如 AES對稱加密算法)通常會進行多次循環(huán)迭代,數(shù)據(jù)被多次寫入內(nèi)存中,這些特性都急劇地增加了數(shù)據(jù)的寫入次數(shù),導致系統(tǒng)性能嚴重下降,器件壽命縮短[12-14]?!案咝А钡乩眉用芩惴ㄊ潜WC非易失性內(nèi)存安全性的重要基石。原本針對 DRAM 系統(tǒng)提出的計數(shù)器模式加密(Counter Mode Encryption,CME)(具有高安全級別和低解密延遲等優(yōu)勢)[15-17],是目前安全 NVM 系統(tǒng)采用的主流加解密方案[18],相關(guān)工作也大多圍繞CME 技術(shù)展開。

        應(yīng)用傳統(tǒng)的完整性保護技術(shù),可以保護NVM 系統(tǒng)數(shù)據(jù)不受篡改攻擊,如攻擊者通過訪問未經(jīng)授權(quán)的內(nèi)存空間進行代碼重用、代碼注入和發(fā)起面向數(shù)據(jù)的攻擊。與機密性保護技術(shù)相比,目前針對 NVM 的完整性保護技術(shù)方案比較固定,主要圍繞默克爾樹(Merkle Tree,MT)展開。MT 是一個基于迭代的哈希樹形結(jié)構(gòu),具有一定的增量校驗功能,即若只修改一部分用戶數(shù)據(jù),那么只需更改 MT 上受到影響的哈希值,而無須更改全部的哈希值。同時,MT 被認為是片上存儲開銷最低的安全技術(shù)方法,因為只有根需要保存在處理器芯片內(nèi),所以與簡單的數(shù)據(jù)塊消息驗證碼(Message Authentication Code,MAC)驗證相比,MT 驗證具有較大優(yōu)勢。目前,安全NVM 系統(tǒng)較常用的完整樹是擴展的 Merkle Tree(Bonsai Merkel Tree,BMT)和英特爾的軟件防護擴展技術(shù)(Software Guard Extensions,SGX),常與計數(shù)器加密技術(shù) CME 結(jié)合使用。此外,由于NVM 獨特的寫入耐久性、較高的寫功耗和寫延時,目前大多研究工作致力于減輕 BMT 驗證計算和更新寫入開銷。

        NVM 提供了在內(nèi)存中持久托管重要數(shù)據(jù)的可能性。然而,實現(xiàn)數(shù)據(jù)持久性需要在編寫程序時考慮故障安全,即數(shù)據(jù)的一致性問題。當發(fā)生故障時,為了保證持久化的數(shù)據(jù)不會損壞,需要采用一定的持久性模型,使數(shù)據(jù)可以在系統(tǒng)故障后恢復到一致的版本。一般通過約定數(shù)據(jù)的持久化順序,以及規(guī)定需要原子寫入 NVM 的數(shù)據(jù)組合來實現(xiàn)。截至目前,有許多針對數(shù)據(jù)一致性的持久性模型,如嚴格持久性、紀元持久性、緩沖紀元持久性、鏈持久性和事務(wù)持久性。內(nèi)存持久性模型的寫約束限制,不僅降低了并行寫入性能,而且?guī)砹溯^高的寫入停頓,極大地影響了系統(tǒng)吞吐量。

        除數(shù)據(jù)一致性外,加解密和完整性驗證技術(shù)的引入也給 NVM 帶來了新的一致性需求,即元數(shù)據(jù)的一致性問題。對于采用 CME 加密和BMT 完整性驗證的安全 NVM 系統(tǒng),NVM 內(nèi)存被劃分為 4 個區(qū)域,分別保存密文、計數(shù)器、消息驗證碼 MAC 和 BMT 節(jié)點。除密文外,其他 3 個區(qū)域的數(shù)據(jù)被統(tǒng)稱為安全元數(shù)據(jù)(與密文區(qū)分)。通常為了提高性能,安全內(nèi)存系統(tǒng)將這些經(jīng)常訪問的安全元數(shù)據(jù)(計數(shù)器、BMT 節(jié)點)存儲在專用緩存空間中,或直接將它們存儲在最后一級緩存中。以內(nèi)存讀取和解密為例,若相應(yīng)的計數(shù)器(在 CME 中)已經(jīng)緩存,則可以并行執(zhí)行一次性密碼本(One Time Pad,OTP)生成和讀取訪問,隱藏 OTP 生成延遲,提高解密效率。如果將 BMT 經(jīng)常訪問的樹節(jié)點緩存在芯片上,當驗證過程進行到在片上緩存中找到所需的樹節(jié)點時,即可完成數(shù)據(jù)塊的完整性驗證,因為已經(jīng)對緩存的樹節(jié)點進行驗證,所以其安全性在芯片上得到了保證,大大降低了完整性驗證的開銷。然而,CPU 緩存中的元數(shù)據(jù)可能在系統(tǒng)/電源故障后丟失,導致數(shù)據(jù)和對應(yīng)的元數(shù)據(jù)不一致。例如,在數(shù)據(jù)持久化到 NVM 中但其計數(shù)器還沒有存入時發(fā)生系統(tǒng)故障,那么系統(tǒng)重啟后不一致的計數(shù)器會導致數(shù)據(jù)驗證失??;如果在計數(shù)器持久化到 NVM 中而數(shù)據(jù)還沒有存入時發(fā)生系統(tǒng)故障,那么系統(tǒng)重啟后舊的數(shù)據(jù)無法被新的計數(shù)器解密。因此,保持數(shù)據(jù)和安全元數(shù)據(jù)之間的一致性,對于 NVM 系統(tǒng)的安全至關(guān)重要。但是,實現(xiàn)這種崩潰一致性的成本很高,在嚴格持久化模型下,一次數(shù)據(jù)更改,會導致數(shù)倍的元數(shù)據(jù)更新操作(取決于 NVM 容量)。每驅(qū)逐一個數(shù)據(jù)塊,所有相關(guān)的加密計數(shù)器和 BMT 中的樹節(jié)點(從該節(jié)點的父節(jié)點一直到根節(jié)點)也需要刷新到 NVM 中,這會導致系統(tǒng)性能嚴重下降,并大大縮短 NVM 器件壽命。如何“高效”地保持數(shù)據(jù)和元數(shù)據(jù)的一致性,在新的維度進行有效的系統(tǒng)設(shè)計和持久化模型設(shè)計,是安全 NVM 系統(tǒng)目前面臨的一項重要挑戰(zhàn)。此外,NVM 的非易失性也使數(shù)據(jù)的即時恢復成為可能。在亞馬遜的云系統(tǒng)中,停機成本高達每分鐘 200 萬美元,IT 停機的平均成本為每分鐘 5 600 美元,對于一些對目標有高可用性要求的系統(tǒng),如銀行系統(tǒng)和在線交易,通常需要較快的恢復時間。因此,“快恢復”能力也是目前安全 NVM 系統(tǒng)研究工作的熱門方向。

        綜上所述,NVM 技術(shù)的研究熱點目前主要分布在以下幾個領(lǐng)域:快速加解密技術(shù)、完整性驗證技術(shù)、數(shù)據(jù)一致性與崩潰恢復技術(shù),以及各種針對由加密和完整性保護技術(shù)的引入而造成的NVM 系統(tǒng)性能嚴重下降的優(yōu)化方案。下面將對目前 NVM 各個研究領(lǐng)域中的相關(guān)工作展開介紹。

        2 非易失性內(nèi)存的快速加解密技術(shù)

        NVM 可以直接作為內(nèi)存,也可以與 DRAM組合作為混合內(nèi)存。NVM 參與組成的存儲體系架構(gòu)可能有 4 種情形,如圖 1 所示。本文僅討論NVM 單獨作為內(nèi)存的非易失性內(nèi)存安全技術(shù)(如圖 1(d)所示)。

        圖1 應(yīng)用 NVM 的 4 種體系架構(gòu)Fig. 1 System architecture options for NVM

        由于非易失性內(nèi)存容易受到被動機密性破壞,如通過數(shù)據(jù)剩余攻擊、總線監(jiān)聽攻擊等,因此,NVM 必須與內(nèi)存加密技術(shù)相結(jié)合。加密可以在內(nèi)存端或處理器端執(zhí)行。內(nèi)存端加密是針對依賴內(nèi)存作為信任根的內(nèi)存的獨立解決方案。內(nèi)存端嵌入了一個加密引擎,在數(shù)據(jù)被寫入內(nèi)存行之前對其進行加密,并在數(shù)據(jù)被發(fā)送到處理器之前進行解密。但是,該方案的保護性較弱,數(shù)據(jù)仍以明文形式在系統(tǒng)總線上進行通信,無法免于總線監(jiān)聽等攻擊導致的機密性泄露。處理器端加密是以處理器芯片為安全邊界,使數(shù)據(jù)免于被動機密性破壞,數(shù)據(jù)在離開處理器芯片之前被加密,從非易失性內(nèi)存進入處理器芯片時被解密并驗證其完整性。

        通過單密鑰加解密(如典型的 AES 對稱加密算法)直接進行數(shù)據(jù)加解密,可有效保證數(shù)據(jù)的安全性,但對 NVM 的讀寫性能影響較大。一次性密碼本的數(shù)據(jù)保護模式帶來的計算開銷較低,但需要維護昂貴的密碼本。有研究提出一種更加高效的基于一次性密碼本的模型來保護 NVM 數(shù)據(jù)的安全性[18],該方案的核心思想是通過 AES這種只需要單密鑰的對稱算法生成一次性密碼本,將需要加密/解密的數(shù)據(jù)直接和密碼本中的數(shù)據(jù)做相應(yīng)的運算(如異或運算),來生成密文/明文。該模型可以利用密碼算法提前生成密碼本,無須等待數(shù)據(jù)請求到達后再對數(shù)據(jù)進行解密,將解密延遲與內(nèi)存訪問延遲重疊,從而利用時間上的并行來降低性能代價。圖 2 為擬采用的密碼安全體系架構(gòu),該架構(gòu)最早是針對 DRAM系統(tǒng)加密提出的[19],也適用于 NVM 系統(tǒng),稱為計數(shù)器模式加密技術(shù)。該方案首先通過 AES 加密算法將一個計數(shù)器作為輸入,以生成一次性密碼本,當需要加密的數(shù)據(jù)塊到達時,與一次性密碼本中的生成密鑰按位執(zhí)行異或操作以獲得密文。解密過程是加密過程的逆運算,將密文和密碼本中對應(yīng)的密鑰執(zhí)行異或操作,便可獲得明文數(shù)據(jù)。通過該方法,解密等待時間與存儲器訪問等待時間重疊,可有效減少因數(shù)據(jù)安全計算所引起的計算等待時間。該方案除性能優(yōu)勢外,還可有效抵御各種攻擊,包括基于字典的攻擊、已知明文攻擊和總線監(jiān)聽攻擊等攻擊手段。

        圖2 擬采用的密碼安全體系架構(gòu)Fig. 2 The proposed cryptographic security architecture

        計數(shù)器模式加密分為統(tǒng)一計數(shù)模式和組合計數(shù)模式。統(tǒng)一計數(shù)模式是指對所有存儲塊使用一個全局統(tǒng)一的計數(shù)器,每次對寫回到 NVM 的數(shù)據(jù)塊進行加密處理的時候,它都會遞增,可避免計數(shù)器重用。若全局計數(shù)器出現(xiàn)溢出,就需要對整個內(nèi)存重新加密,代價較高,因此,統(tǒng)一計數(shù)器通常需要設(shè)置較多位數(shù),以防止溢出現(xiàn)象發(fā)生,開銷較大,并不實用。因而目前多采用組合計數(shù)模式。在組合計數(shù)器方案中,加密計數(shù)器被組織為兩部分:包括主要計數(shù)器(在同一頁的數(shù)據(jù)塊之間共享)和專門針對每個緩存塊的次要計數(shù)器。該方案通常將 NVM 組織成多個數(shù)據(jù)頁,如以 4 KB 為單位對 NVM 進行頁劃分。這種設(shè)計具有多個優(yōu)點,首先,在計數(shù)器緩存中,僅需按頁為單位緩存主要計數(shù)器,可有效降低緩存使用代價;其次,當次要計數(shù)器溢出時,只需要重置該頁所有次計數(shù)器并將主要計數(shù)器遞增,隨后用主要計數(shù)器重新加密該頁數(shù)據(jù)即可,與統(tǒng)一計數(shù)器模式相比,該方案代價較低。此外,主計數(shù)器一般設(shè)置得足夠大(如 64 位),以確保其在系統(tǒng)生命周期中不會溢出。

        然而,僅將傳統(tǒng)針對 DRAM 系統(tǒng)的加密技術(shù)直接應(yīng)用于 NVM 系統(tǒng),并不能達到預期效果。NVM 系統(tǒng)面臨的主要挑戰(zhàn)之一是如何有效處理寫操作,與讀取操作相比,NVM 寫入具有更高的延遲,功率消耗較大,且器件耐用性不高,因此,需要系統(tǒng)盡可能地減少寫入流量,從而提高電源效率、寫入帶寬及延長器件壽命。將內(nèi)存加密與 NVM 結(jié)合使用是非常具有挑戰(zhàn)性的,因為加密擴散效應(yīng)會加劇 NVM 的寫入耐久性問題。Solihin 等[20]為了緩解加密技術(shù)帶來的性能下降,提出了一種增量加密技術(shù) i-NVMM,該技術(shù)將加密單元放入內(nèi)存端,把頻繁訪問的內(nèi)存頁面以未加密形式保存在內(nèi)存中,并以加密形式保護內(nèi)存的其余部分,然而,未加密內(nèi)存與片外的通信依然存在安全漏洞。

        實際上,對主內(nèi)存執(zhí)行寫操作時,只有少量位被修改,所以早期為了減少對 NVM 的寫入,Zhou 等[21]提出了數(shù)據(jù)比較寫入(Data Comparison Write,DCW)技術(shù),即只有緩存行中的修改位被寫入 NVM。Cho 等[22]在 DCW 的基礎(chǔ)上又提出了增強型的N次翻轉(zhuǎn)寫入技術(shù)(Flip-N-Write,F(xiàn)NW),若超過一半的位被修改,則通過反轉(zhuǎn)數(shù)據(jù)進一步減少對 NVM 的位寫入。FNW 限制每次寫入時的位翻轉(zhuǎn)次數(shù)最多不超過行中位數(shù)的一半。通過這些優(yōu)化,每次進行內(nèi)存寫入操作時,寫入的位數(shù)平均降至 10%~15%,這些寫優(yōu)化技術(shù)對于實現(xiàn) NVM 的高性能和耐用性至關(guān)重要。

        然而,加密技術(shù)的引入會導致 DCW 和 FNW等“寫優(yōu)化”技術(shù)失效,這是因為所有安全性較好的加密算法都不可避免地遵循雪崩效應(yīng)[23](或稱為擴散效應(yīng)),即當明文數(shù)據(jù)中的單個位發(fā)生變化時,會導致加密數(shù)據(jù)中 50% 的位發(fā)生變化(如圖 3 所示)。典型的回寫平均只會修改緩存行中 12% 的位,而加密算法導致寫入 NVM 的位數(shù)幾乎增加了 4 倍,這種無關(guān)位的寫入會導致寫入功耗顯著增加、寫入帶寬降低和器件壽命縮短,同時也導致了 DCW 和 FNW 等優(yōu)化技術(shù)失效。

        圖3 加密擴散效應(yīng)示例及其對 DCW 與 FNW 的影響Fig. 3 Examples of encryption diffusion effect and its impact on DCW and FNW

        針對上述情況,Young 等[24]在傳統(tǒng)計數(shù)器加密的基礎(chǔ)上提出了雙計數(shù)器加密技術(shù)(Dual Counter Encryption,DEUCE),并觀察到,典型的回寫操作僅修改若干個字,不必使用新的計數(shù)器重新加密行中的所有字。DEUCE 定義了標志位,并利用標志位跟蹤記錄被修改和未被修改的字,然后使用新的計數(shù)器來加密被修改的字,對于未修改的字則繼續(xù)使用舊的計數(shù)器加密(舊的計數(shù)器通過屏蔽當前新計數(shù)器的幾個最低有效位獲得)。同樣地,在解密時,使用新的計數(shù)器解密修改后的字,舊計數(shù)器解密緩存行的其余未修改部分,并最后將它們組合起來形成最新的緩存行。

        DEUCE 的操作示例如圖 4 所示,該加密技術(shù)一行有兩個計數(shù)器,前導計數(shù)器(Leading C o u n t e r,L C T R)和尾隨計數(shù)器(Tr a i l i n g Counter,TCTR)。LCTR 與行計數(shù)器相同,TCTR 則通過屏蔽 LCTR 的幾個最低有效位獲得。如屏蔽 LCTR 的兩位最低有效位,則每 4 次寫入 LCTR 將等于 TCTR,這之間的時間間隔被稱為紀元間隔。在紀元間隔之間,TCTR 的值保持不變,而 LCTR 不斷增加。每個字都附加一個標志位,指示自紀元開始以來該字是否被修改,當 LCTR 等于 TCTR 時,與該行中所有字相關(guān)聯(lián)的修改標志位都會被復位。LCTR 和 TCTR 都是虛擬計數(shù)器,其值由行計數(shù)器確定,因此,DEUCE 不需要單獨的計數(shù)器來實現(xiàn)加密。值得注意的是,紀元間隔和跟蹤字長是 DEUCE 的兩個關(guān)鍵設(shè)計參數(shù),如何設(shè)定這兩個參數(shù)的大小需要視具體情形權(quán)衡。紀元間隔太小會導致頻繁的全行重新加密,紀元間隔太大會導致系統(tǒng)不斷地重新加密不需再修改的字,這些字在紀元剛開始時已被修改過。跟蹤的字長則決定了跟蹤緩存行修改部分的存儲開銷和精細度,更細粒度的跟蹤會導致更大的存儲開銷。通過相關(guān)評估表明,DEUCE 將寫入 NVM 存儲位的翻轉(zhuǎn)次數(shù)從 50%降低到 24%,系統(tǒng)性能提高了 27%。

        圖4 DEUCE 操作示例Fig. 4 DEUCE operation example

        Swami 等[25]在 DEUCE 的基礎(chǔ)上提出了SECRET 加密技術(shù)(Smartly Encrypted Energy Efficient,SECRET),該技術(shù)集成了字級重加密技術(shù)[24]和基于零的部分寫入技術(shù),以減少內(nèi)存寫入流量。字級重加密技術(shù)修改了經(jīng)典計數(shù)器的加密方案,為每個字分配單獨的計數(shù)器,允許以小于緩存線的粒度進行數(shù)據(jù)加密。基于零的部分寫入技術(shù)則利用了“在實際工作負載(如 SPEC CPU2006[26])中,寫入內(nèi)存的明文大多為零”這一事實。SECRET 分配一位零標志位來跟蹤緩存行中的零字,并將零字的密文保持為最后被加密的狀態(tài),從而節(jié)省重新加密零字的寫入開銷。此外,SECRET 還運用能量掩碼來過濾加密后的字(即密文),以執(zhí)行寫優(yōu)化。對于每個字中每位的能量狀態(tài),基于異或的能量掩碼可將密文中的高能量狀態(tài)轉(zhuǎn)換為低能量狀態(tài),從而降低緩存線的整體寫入能量。表 1 為 SECRET 與塊級加密(Block Level Encryption,BLE)[27]和 DEUCE 在能耗降低、延時縮短、壽命提升和內(nèi)存開銷方面的性能對比結(jié)果。由表 1 可知,SECRET 明顯優(yōu)于其他兩個 NVM 加密解決方案,具有最低的寫入能量、最低的寫入延遲以及最長的使用壽命。

        表1 BLE、DEUCE、SECRET 性能比對Table 1 BLE, DEUCE, SECRET performance comparison

        3 非易失性內(nèi)存的完整性保護技術(shù)

        存儲器完整性保護的目的在于對數(shù)據(jù)進行校驗,確保系統(tǒng)在沒有受到任何外來侵入或篡改的狀態(tài)下工作。鑒于使用每個內(nèi)存塊的數(shù)據(jù)和地址的 MAC 值進行完整性驗證的方法并不能有效阻止重放攻擊,目前針對 NVM 的完整性保護技術(shù)主要是圍繞 MT 展開的。該技術(shù)最先是針對傳統(tǒng)DRAM 系統(tǒng)的安全性提出的[19]。MT 以其增量校驗功能和較低的片上存儲開銷(只有根需要保存在處理器芯片內(nèi))優(yōu)勢,成為完整性驗證技術(shù)的首選。

        在傳統(tǒng)的 MT 中,首先計算每一個數(shù)據(jù)塊的哈希值,得到樹的葉子節(jié)點;然后向上一級迭代,繼續(xù)計算其哈希值,直至計算出根節(jié)點的哈希值;最后將根節(jié)點的哈希值保存在處理器芯片中,從而保證其機密性。在該結(jié)構(gòu)中,只要根節(jié)點的哈希值是安全的,那么任何一個數(shù)據(jù)塊的任意位被攻擊者篡改,都能被檢測到。雖然 MT 能夠滿足存儲器完整性校驗的條件,但是系統(tǒng)需要處理較大的計算量和存儲空間。因此,Rogers等[19]在 MT 的基礎(chǔ)上提出了 BMT,其結(jié)構(gòu)如圖 5所示。將 BMT 與組合計數(shù)器加密模式結(jié)合,可以取得較好的加密和完整性驗證效果。計數(shù)器模式加密的基本安全保證是計數(shù)器值不能重復,否則加密可能會失效,為了避免發(fā)生計數(shù)器重放攻擊,計數(shù)器必須通過 BMT 保護以防止被篡改。計數(shù)器加密與 BMT 結(jié)合保證非易失性內(nèi)存的機密性和完整性,需滿足以下 3 個條件:(1)每個數(shù)據(jù)塊都被其 MAC 值保護;(2)每個數(shù)據(jù)塊的MAC 值都包含與數(shù)據(jù)塊對應(yīng)的計數(shù)器和地址的認證;(3)所有計數(shù)器的完整性得到保護。

        同樣地,考慮到 NVM 有限的寫入耐久性、較高的寫功耗和寫延時,若直接將原本針對 DRAM 系統(tǒng)安全提出的 BMT 應(yīng)用于 NVM 系統(tǒng),會出現(xiàn)諸多問題。BMT 用于完整性驗證計算和更新消耗的資源較多,其大小取決于樹的高度,即 NVM 的容量。例如,當處理器寫入數(shù)據(jù)到 NVM,并更新相應(yīng)的計數(shù)器時,必須更新 MT中相應(yīng)的父節(jié)點,以反映最近的更改,修改內(nèi)容從葉子節(jié)點向上傳播到根節(jié)點。圖 5 是通用 BMT方案,該樹完全依賴于葉子節(jié)點的計數(shù)器值建立,是不可并行化的完整樹。在進行計數(shù)器驗證的時候,此種結(jié)構(gòu)雖然可以針對每個級別并行計算,但是當涉及計數(shù)器更新時,在下層計算完成之前計算上層的哈希值是不可行的,需要按順序更新上層,因此,驗證計算開銷較大。目前,與NVM 系統(tǒng)完整性保護技術(shù)相關(guān)的研究工作多致力于減輕 BMT 驗證計算和更新寫入開銷。

        圖5 BMT 結(jié)構(gòu)示意圖Fig. 5 BMT structure sketch map

        英特爾設(shè)計的 SGX 樹[28]是一種可并行更新的樹,其結(jié)構(gòu)如圖 6 所示。SGX 樹的每個樹節(jié)點包含 8 個隨機數(shù)(葉子節(jié)點為 8 個計數(shù)器)和一個MAC 值。MAC 是利用存儲在芯片中的秘密哈希函數(shù),對當前塊中的所有隨機數(shù)/計數(shù)器和來自父塊的一個隨機數(shù)進行哈希計算得到的。當計數(shù)器增加時,父節(jié)點中的相應(yīng)隨機數(shù)也會增加,這使 MAC 值的并行更新成為可能,因為每個塊都可以通過增加它們的隨機數(shù),并在新的隨機數(shù)上計算 MAC 來單獨更新。因為自身的可并行更新和更低的層次結(jié)構(gòu)(驗證更新次數(shù)更少)等特點,SGX 樹成為目前比較實用的商用方案。

        圖6 SGX 樹結(jié)構(gòu)圖Fig. 6 SGX tree structure diagram

        針對傳統(tǒng)的基于 DRAM 的安全系統(tǒng),為了降低 BMT 完整性驗證和更新的開銷,Gassend 等[29]提出將常用的樹節(jié)點緩存起來的策略。受此啟發(fā),Yang 等[30]針對安全 NVM 提出了一種延遲傳播方案 CC-NVM。由于大多數(shù)工作負載的局部性,CPU 緩存驅(qū)逐的幾個相鄰數(shù)據(jù)塊很可能共享 BMT 中樹節(jié)點的相同祖先。因此,若獨立更新每個數(shù)據(jù)塊的樹節(jié)點,就會導致較大的計算冗余,CC-NVM 則消除了這種冗余。當數(shù)據(jù)從最后一級緩存中被逐出時,元數(shù)據(jù)更新開始直接在元數(shù)據(jù)緩存中進行,而當計數(shù)器的 MAC 在元數(shù)據(jù)緩存中命中時,就停止更新,這是因為經(jīng)過驗證和緩存的樹節(jié)點被認為是安全的。

        除了 NVM 系統(tǒng)由于非易失性引起的數(shù)據(jù)一致性問題[31-33]外,加密和完整性技術(shù)的引入也給安全 NVM 系統(tǒng)帶來了新的元數(shù)據(jù)一致性問題。數(shù)據(jù)一致性[34-35]與元數(shù)據(jù)一致性問題[36-38]已經(jīng)成為 NVM 系統(tǒng)必須面對的一項重要挑戰(zhàn),拋開一致性問題討論完整樹驗證和更新的開銷技術(shù)是不可行的。因此,本節(jié)僅對 NVM 完整性驗證的基本技術(shù)及若干優(yōu)化點進行介紹,與完整性優(yōu)化相關(guān)的技術(shù)發(fā)展,將在第 4 節(jié)中與一致性問題一起討論。事實上,目前許多致力于緩解完整樹驗證和計算開銷的優(yōu)秀成果,大多是以 NVM 系統(tǒng)的崩潰一致性為前提的。

        4 非易失性內(nèi)存的安全持久化與崩潰恢復

        一般情況下,為了提高性能,安全 NVM 系統(tǒng)會將經(jīng)常訪問的安全元數(shù)據(jù)(如計數(shù)器、BMT節(jié)點等)存儲在專用緩存空間中,或直接將它們存儲在最后一級緩存上。但是,CPU 緩存是易失性的,而數(shù)據(jù)與對應(yīng)的元數(shù)據(jù)通常是非原子性寫入 NVM,因此在系統(tǒng)/電源故障后,緩存數(shù)據(jù)的丟失可能會導致 NVM 中數(shù)據(jù)與對應(yīng)的元數(shù)據(jù)不一致。如,數(shù)據(jù)已經(jīng)寫回到 NVM,但是對應(yīng)的計數(shù)器并沒有寫回,那么系統(tǒng)重啟后該數(shù)據(jù)就會驗證失敗。同樣,如果計數(shù)器寫回到 NVM 而數(shù)據(jù)還沒有寫回時系統(tǒng)崩潰,那么重啟后舊的數(shù)據(jù)無法被新的計數(shù)器解密。因此,保證數(shù)據(jù)與安全元數(shù)據(jù)之間的一致性,對于安全 NVM 系統(tǒng)來說至關(guān)重要。除保證崩潰一致性外,“快恢復”能力也是目前安全 NVM 系統(tǒng)研究工作的重點。NVM 的非易失性使得數(shù)據(jù)的即時恢復成為可能,如可實現(xiàn)秒開機。大多數(shù)數(shù)據(jù)中心、云系統(tǒng)、間歇性電源設(shè)備甚至是個人計算機,都期望系統(tǒng)能夠在電源恢復后立即恢復,這也是 NVM系統(tǒng)的優(yōu)勢之一。

        在嚴格持久化模型中,實現(xiàn)崩潰一致性的成本很高,因為一次數(shù)據(jù)的更改,將會導致數(shù)倍的元數(shù)據(jù)更新。每驅(qū)逐一個數(shù)據(jù)塊,所有相關(guān)的加密計數(shù)器和 BMT 中的節(jié)點(從該節(jié)點的父節(jié)點一直到根節(jié)點)也需要刷新到 NVM 中,這會導致系統(tǒng)性能嚴重下降,極大地縮短 NVM 器件壽命。如何“高效”地保持數(shù)據(jù)和元數(shù)據(jù)的一致性,從新維度有效地進行系統(tǒng)設(shè)計和持久化模型設(shè)計,是安全 NVM 系統(tǒng)目前面臨的一項重要挑戰(zhàn)。

        基于硬件的日志持久事務(wù)[36-37]是保證數(shù)據(jù)崩潰一致性的常用機制。它確保在數(shù)據(jù)更新到位之前,數(shù)據(jù)日志條目就已經(jīng)寫入 NVM 中的日志區(qū)域,以便系統(tǒng)發(fā)生故障后,可使用日志將數(shù)據(jù)恢復到一致版本。計數(shù)器原子性方案[38]提出了選擇性的計數(shù)器原子性概念,它放寬了部分計數(shù)器的持久化開銷,因為與這些計數(shù)器相關(guān)聯(lián)的數(shù)據(jù)不會立即影響系統(tǒng)的可恢復性。但該方案需要在軟件和硬件層上都進行修改,包括編程語言、編譯器和內(nèi)存控制器,并且可能會導致 OTP 的重用。Swami 等[39]通過壓縮數(shù)據(jù)塊來確保數(shù)據(jù)塊和相關(guān)元數(shù)據(jù)之間的原子性,數(shù)據(jù)塊、MAC 和計數(shù)器被放置在單個緩存行中。Osiris[40]將與數(shù)據(jù)位于同一位置的糾錯碼(Error Correct Code,ECC)位作為完整性檢查手段,幫助檢索計數(shù)器,并將 ECC 位與止損機制(計數(shù)器每N次更新)相結(jié)合。通過檢查 ECC 位的完整性,只需嘗試幾次即可恢復每個計數(shù)器。該方案成功地將寫回策略集成到計數(shù)器持久化中,從而減少了NVM 的寫入流量。但該方案無法確定具體丟失的計數(shù)器值,所以需要無差別地恢復所有計數(shù)器值,這會導致系統(tǒng)的恢復時間過長,甚至達到幾小時(NVM 容量是 TB 級別)。此外,Osiris 還依賴于 BMT 對候選計數(shù)器值進行最終驗證,但是對于用 SGX 樹進行完整性驗證的安全 NVM 系統(tǒng),Osiris 并不適用,因為僅恢復加密計數(shù)器并不足以重建 SGX 樹。SuperMem[41]通過寫合并方案減少了用于維護計數(shù)器崩潰一致性的寫請求,但是它的有效性受到寫掛起隊列(Write Pending Queue,WPQ)大小和程序位置的限制。

        Awad 等[42]提出了一種針對安全 NVM 系統(tǒng)的高性能持久化架構(gòu) Triad-NVM。Triad-NVM 強制將多級 BMT 節(jié)點保存到 NVM 中,系統(tǒng)崩潰后,Triad-NVM 從葉子節(jié)點重建整個 BMT 樹,然后將重建的根與存儲在芯片上的根進行比較。與將 NVM 系統(tǒng)的安全性和持久性分開討論的研究不同,該項研究綜合考慮了持久性和內(nèi)存安全,首次討論了如何持久化地給非易失性內(nèi)存的持久性區(qū)域和非持久性區(qū)域提供數(shù)據(jù)和安全元數(shù)據(jù)(計數(shù)器、MAC 和 BMT),從整體上分析了持久化、性能、持久化的松散彈性程度以及恢復時間等問題,并給出了優(yōu)化方案。通過評估表明,與嚴格持久化技術(shù)相比,Triad-NVM 將吞吐量提高了 2 倍左右,同時將 8 TB NVM 的恢復時間控制在 4 s 內(nèi),與沒有安全元數(shù)據(jù)持久化的系統(tǒng)恢復時間相比,小了 3 個數(shù)量級。

        圖 7 為 Triad-NVM 的寫操作機制示例。WPQ 被認為是屬于現(xiàn)代處理器的持久域,到達那里的任何數(shù)據(jù)都應(yīng)該是一致的。因此,寫操作在被持久化之前,會將其所有相應(yīng)的更新(計數(shù)器、數(shù)據(jù)、BMT 節(jié)點和根)記錄到處理器內(nèi)部的持久性寄存器中,然后設(shè)置一個持久性位(稱為READY_BIT)。如果在將持久寄存器中的更新復制到 WPQ 時發(fā)生崩潰,那么當系統(tǒng)恢復時,內(nèi)存控制器會再次嘗試將持久寄存器中的更新寫入NVM(或 WPQ)。在將內(nèi)容從寄存器復制到 WPQ時,Triad-NVM 可以選擇是將計數(shù)器或 MT 節(jié)點復制到 WPQ,還是僅在緩存中進行更新(如步驟⑧和⑨所示),一旦臟塊從緩存中被逐出,它將像往常一樣進入 WPQ。持久性寄存器可以利用異步 DRAM 機制來實現(xiàn),當崩潰發(fā)生時,將快速 NVM 寄存器或易失性寄存器刷新到較慢的NVM 寄存器。

        圖7 Triad-NVM 的寫操作機制示例Fig. 7 Example of the write operation mechanism of Triad-NVM

        但由于低級 MT 節(jié)點的強制持久性,Triad-NVM 會產(chǎn)生 2~4 倍的寫入開銷,且與 Osiris 一樣,Triad-NVM 不支持對 SGX 樹的恢復。默克爾樹的恢復主要面臨兩個挑戰(zhàn):(1)可并行的完整性樹(如英特爾的 SGX 樹[28])由于層間依賴性,無法僅靠恢復葉子節(jié)點來重建整棵樹,因此,需要非常特殊的處理。(2)容量較大的 NVM系統(tǒng)(目前商用完整樹容量能達到 TB 級別)的恢復時間較長。針對這兩個問題,Zubair 等[43]提出了為安全 NVM 系統(tǒng)提供崩潰一致性和快恢復性的方案 Anubis。

        Anubis 是一種新穎的純硬件解決方案,為NVM 系統(tǒng)提供可恢復性,并確保超短恢復時間,同時產(chǎn)生較小的運行開銷。該方案基于一個關(guān)鍵發(fā)現(xiàn):持續(xù)跟蹤計數(shù)器和 MT 在緩存中的塊地址,可顯著縮短恢復時間。此類緩存中的地址不會頻繁更改,僅在未命中時發(fā)生更改,因此,在內(nèi)存中對它們進行跟蹤的開銷很小。通過跟蹤這些地址(如圖 8 所示),在系統(tǒng)崩潰后,只需要重建完整樹受影響的部分。此外,Anubis 還支持 SGX 樹的可恢復性,稱為 ASIT技術(shù)(Anubis for SIT-protected NVM)。對于采用SGX 樹的 NVM 系統(tǒng),ASIT 鏡像復制元數(shù)據(jù)緩存更新(不僅是地址)到 NVM 上的影子區(qū)域,同時采用一個小的 MT 保證該影子區(qū)域的完整性,恢復 SGX 樹時只需要緩存回影子區(qū)域內(nèi)該樹的鏡像版本即可。通過相關(guān)性能測試表明,與嚴格持久性相比,Anubis 將平均性能開銷從 63% 降低到 3.4%,與 Osiris 開銷(1.4%)相近。對于恢復8 TB 的加密計數(shù)器和 BMT,Anubis 僅需 0.03 s,而 Osiris 平均需要 7.8 h。此外,Anubis 的恢復時間并不像其他方案一樣隨內(nèi)存大小線性增加,只是安全元數(shù)據(jù)緩存大小的函數(shù)。ASIT 是首個解決一般完整樹的恢復時間和 SGX 樹的可恢復性問題的方案。

        圖8 Anubis 鏡像跟蹤示例Fig. 8 Anubis mirror tracking example

        Anubis 雖然實現(xiàn)了完整樹的可恢復性,且提供了較短的恢復時間,但每次緩存驅(qū)逐都會產(chǎn)生額外的寫入,導致 NVM 器件的生命周期縮短了一半,尤其是與 SGX 完整樹一起使用時,會產(chǎn)生近 87% 的額外寫入開銷。Alwadi 等[44]為了彌合安全 NVM 系統(tǒng)的可恢復性和高性能之間的差距,提出了一種新的內(nèi)存控制器設(shè)計 Phoenix。Phoenix 主要針對具有較高的商業(yè)價值和安全優(yōu)勢(如抗篡改和重放攻擊)的 SGX 完整樹。與ASIT[43]延遲更新元數(shù)據(jù)緩存但將其更新嚴格復制到 NVM 的影子區(qū)域的方法相比,Phoenix 同樣允許使用延遲更新元數(shù)據(jù)緩存方案,但不嚴格鏡像復制每個計數(shù)器更新到 NVM,因為計數(shù)器可以通過 Osiris 技術(shù)恢復。通過相關(guān)性能測試,與不提供可恢復性的加密系統(tǒng)相比,Phoenix 將持久性安全元數(shù)據(jù)寫入開銷從 87% 的額外寫入(對 ASIT 來說)減少到少于回寫方案的寫入開銷,從而將 NVM 壽命延長 2 倍以上。由于不持久化緩存中計數(shù)器塊的更新,Phoenix 是首個啟用延遲更新元數(shù)據(jù)緩存卻無須記錄每個更新的恢復方案。在 ASIT 和 Phoneix 的基礎(chǔ)上,Huang等[45]進一步提出了 SIT 跟蹤和恢復方案(SIT Trace and Recovery Scheme,STAR),該方案刪除了對整棵樹的額外寫入,包括對計數(shù)器塊和中間樹節(jié)點的寫入。STAR 利用 MAC 字段中未使用的位將父節(jié)點的修改存儲在其子節(jié)點中,僅使用一次原子內(nèi)存寫入就可以將父節(jié)點和子節(jié)點的修改同時持久化。為了元數(shù)據(jù)的快速恢復和驗證,STAR 還使用 ADR 中的位圖行來指示陳舊元數(shù)據(jù)的位置,并構(gòu)造一個緩存的 MT 來驗證恢復過程的正確性。實驗結(jié)果表明,與 Anubis 相比,STAR 減少了 92% 的額外內(nèi)存寫入流量,將每時鐘指令數(shù)(Instruction Per Clock,IPC)開銷從10% 降低到 2%,能耗從 46% 降低到 4%。STAR恢復具有 4 MB 元數(shù)據(jù)緩存的系統(tǒng)的安全元數(shù)據(jù),僅需要 0.05 s。由于在系統(tǒng)崩潰后系統(tǒng)通常需要 10~100 s 進行自檢,因此,該元數(shù)據(jù)可以忽略不計。此外,STAR 中的恢復時間與元數(shù)據(jù)緩存中臟元數(shù)據(jù)的數(shù)量成正比,而不是與 NVM或緩存大小成正比,這為更大的 NVM 和元數(shù)據(jù)緩存大小提供了適用性。

        Lei 等[46]提出了一種專門針對由 SGX 風格完整性樹(SGX-style Integrity Tree,SIT)保護的NVM 的持久化方案(Persistency Solution for SITprotected NVM,PSIT)(如圖 9 所示)。PSIT 采用惰性更新技術(shù),該技術(shù)保證,元數(shù)據(jù)緩存中 SIT節(jié)點的任意最新隨機數(shù)都能與 NVM 中其對應(yīng)的子節(jié)點相匹配,從而保證系統(tǒng)崩潰后 SIT 節(jié)點的恢復能力。基于 SIT 節(jié)點的恢復能力,不必立即寫回元數(shù)據(jù)緩存中被更新的元數(shù)據(jù)。PSIT 使用一個受限的寫回型元數(shù)據(jù)策略,該策略僅當元數(shù)據(jù)緩存中 SIT 節(jié)點的值更新到N的倍數(shù)時,才會被寫回 NVM,這極大地減少了安全元數(shù)據(jù)的持久化開銷,提升了系統(tǒng)性能。PSIT 通過一個地址跟蹤器對在緩存中丟失的元數(shù)據(jù)地址進行跟蹤,以加速恢復過程。PSIT 還使用 SGX 樹和一個側(cè) BMT 混合的完整樹,以保證整個系統(tǒng)不受完整性破壞,其中,SGX 樹保護整個內(nèi)存的完整性,側(cè) BMT 保護元數(shù)據(jù)緩存中已被更新,但還未持久化到 NVM 的塊的完整性。側(cè) BMT 的根被保存在片上持久寄存器中,并總是代表著元數(shù)據(jù)緩存的最新更新狀態(tài)。與前述 ASIT 技術(shù)相比,PSIT 技術(shù)提升了 18% 的系統(tǒng)性能,降低了47% 的寫入流量,同時提供了一個可接受的系統(tǒng)恢復時間。

        圖9 PSIT 架構(gòu)示意圖Fig. 9 Schematic diagram of PSIT architecture

        由于 BMT 的葉到根更新必須遵循持久化順序,否則當完整性系統(tǒng)恢復時,崩潰恢復可能會觸發(fā)驗證失敗。但若遵循持久化順序,在嚴格持久性模型下,崩潰恢復的開銷會導致系統(tǒng)性能下降 30 倍。針對該情況,F(xiàn)reij 等[47]提出了一種針對完整樹更新的持久級并行方案。該方案在確保系統(tǒng)正確崩潰恢復的前提下,可提高 BMT 更新的并行水平,從而顯著提升系統(tǒng)性能。該方案提出了適用于內(nèi)存嚴格持久模型的流水線更新機制(如圖 10 所示)和適用于內(nèi)存紀元持久模型的亂序更新與更新合并機制(如圖 11 和 12 所示)。其中持久化δ1和持久化δ2分別代表兩個 BMT 持久化更新,變量X代表 BMT 節(jié)點,箭頭方向代表更新路徑。圖 10(a)中,持久化δ1和持久化δ2的更新路徑無序,但對 BMT 根的更新保持持久化順序,該方法雖然能夠顯著提升系統(tǒng)性能,但是會造成寫后寫(Write-After-Write,WAW)的危害。圖 10(b)中的祖先節(jié)點有序流水線更新方法可有效避免 WAW 并在一定程度上提高持久化的并行性。該方法只有當較舊的持久化已完成對同一級別 BMT 節(jié)點的更新時,才允許較新的持久性更新某個級別的 BMT。圖 11(a)中,當持久化δ1嘗試更新 BMT 時,在X4-1 節(jié)點上發(fā)生緩存未命中,這會在有序流水線 BMT 更新中引入氣泡,從而導致持久化δ2被延遲,使其無法在δ1更新X4-1 之前更新X4-64。圖 11(b)中使用無序更新技術(shù),δ1更新和δ2更新可以同時進行,δ2不會被δ1必須等待的緩存未命中延遲。無序更新技術(shù)相對于有序流水線更新技術(shù)可以實現(xiàn)更高程度的持久級并行。通過相關(guān)性能測試表明,與順序更新機制相比,流水線更新機制將系統(tǒng)性能提高了 3.4 倍,無序更新和合并更新機制將系統(tǒng)性能提高了 5.99 倍,這些優(yōu)化顯著縮短了更新完整性樹根所需的時間,并為安全 NVM 的實用化奠定了基礎(chǔ)。

        圖10 BMT 并行化更新示例Fig. 10 BMT parallelized update example

        圖11 流水線技術(shù)和無序更新技術(shù)示例Fig. 11 Examples of pipelining and out-of-order update techniques

        Chen 等[48]提出了一種 CacheTree 技術(shù)。該技術(shù)通過在元數(shù)據(jù)緩存上構(gòu)建額外的 MT,驗證易失性緩存內(nèi)容,使系統(tǒng)能夠采用回寫策略,消除持久化元數(shù)據(jù)導致的對 NVM 的頻繁寫入,極大地降低了持久化消息驗證碼和持久化 MT 的開銷。

        圖12 合并更新示例Fig. 12 Example of merged update

        圖 13 為 CacheTree 的設(shè)計概覽。中間部分是傳統(tǒng)的安全增強組件,包括內(nèi)存控制器、 AES加密引擎、MAC 緩存、計數(shù)器 Cache、MT 緩存和一個用于保存 BMT 根的安全非易失性寄存器。上層部分是啟用 CacheTree 的塊。該技術(shù)分別使用 Osiris[40]技術(shù)更新計數(shù)器緩存、MACTree更新 MAC 緩存、HNodeTree 更新 BMT。CacheTree 用不到 0.5% 的存儲開銷,實現(xiàn)了高達20.1% 的性能提升、44.3% 的生命周期延長,以及 43.7% 的能耗縮減。

        圖13 CacheTree 結(jié)構(gòu)概覽Fig. 13 Overview of the CacheTree structure

        基于硬件日志的持久事務(wù)[36-37]是保證數(shù)據(jù)崩潰一致性的常用機制。它確保在數(shù)據(jù)更新到位之前,數(shù)據(jù)日志條目被寫入 NVM 中的日志區(qū)域,以便在系統(tǒng)故障后,利用日志將數(shù)據(jù)恢復到一致版本。ATOM[36]是針對 NVM 持久化方案中較為先進的硬件實現(xiàn),該方案基于日志的持久化事務(wù)。在此基礎(chǔ)上,Lei 等[49]提出了一種共享計數(shù)器和延遲計數(shù)器持久化的 CCAE 技術(shù),該技術(shù)主要包括兩部分:用于日志加密的共享計數(shù)器優(yōu)化和用于數(shù)據(jù)加密的延遲計數(shù)器持久化。

        CCAE 的提出主要源自兩個關(guān)鍵發(fā)現(xiàn):(1)由于寫入附加功能,事務(wù)中使用的所有日志條目在被回收之前都具有相同的加密次數(shù),使共享計數(shù)器的優(yōu)化成為可能。共享計數(shù)器的優(yōu)化方案是在日志分配的粒度上對一個日志區(qū)使用全局加密計數(shù)器,且該日志區(qū)中的所有日志緩存行都使用共享計數(shù)器進行加密/解密,該技術(shù)大大減少了加密日志計數(shù)器的數(shù)量,從而降低了存儲開銷。(2)與未提交數(shù)據(jù)塊相關(guān)聯(lián)的計數(shù)器只需要恢復到崩潰前較新的值,以避免 OTP 重用即可。在系統(tǒng)恢復過程中,未提交的事務(wù)中的數(shù)據(jù)塊將被丟棄,所以不需要保證其相關(guān)聯(lián)的計數(shù)器恢復到準確的值。因此,CCAE 在事務(wù)執(zhí)行期間,會吸納并延遲所有由計數(shù)器持久化引起的寫請求。在事務(wù)提交前,事務(wù)中更新的計數(shù)器不會持久保存到 NVM 中,當一個事務(wù)發(fā)出提交指令時,所有與該事務(wù)對應(yīng)的被更新的計數(shù)器緩存行才會被寫回 NVM。當臟數(shù)據(jù)高速緩存行和所有與此事務(wù)關(guān)聯(lián)的計數(shù)器高速緩存行都被持久化時,表明事務(wù)被成功提交。延遲計數(shù)器持久化方案有效地減少了事務(wù)中與數(shù)據(jù)塊關(guān)聯(lián)計數(shù)器的寫請求。

        圖 14 為 CCAE 的硬件架構(gòu)。它主要包括兩個模塊:日志管理模塊與數(shù)據(jù)加密模塊。日志管理部分與 ATOM 相同,加密模塊則采用傳統(tǒng)的計數(shù)器模式加密方案(Counter Mode Encryption,CME)。通過相關(guān)性能測試表明,CCAE 減少了67% 的由計數(shù)器引起的 NVM 寫入流量,提升了14% 的系統(tǒng)性能,降低了 35% 的 NVM 能耗。

        圖14 CCAE 硬件結(jié)構(gòu)圖Fig. 14 CCAE hardware structure diagram

        5 總結(jié)與展望

        本文從 NVM 的安全層面出發(fā),針對 NVM可能遇到的數(shù)據(jù)竊取、完整性破壞、數(shù)據(jù)一致性等問題,介紹了現(xiàn)有的解決方案。針對數(shù)據(jù)竊取給 NVM 系統(tǒng)帶來的機密性破壞,本文首先介紹了組合計數(shù)器加密技術(shù),該技術(shù)由于高安全級別和低解密延遲等優(yōu)勢,成為 NVM 的主流加解密方案。隨后介紹了 DEUCE、SECRET 等針對計數(shù)器加密的優(yōu)化技術(shù),這些技術(shù)旨在解決由加密的擴散效應(yīng)引起的寫放大。針對 NVM 系統(tǒng)的完整性破壞方面,本文介紹了 BMT 與 SGX 樹,還詳細介紹了為減輕完整樹驗證和更新開銷而提出的 CC-NVM 方案。對于數(shù)據(jù)一致性和崩潰恢復問題,本文先分析了加解密及完整性驗證技術(shù)給 NVM 系統(tǒng)帶來的數(shù)據(jù)和元數(shù)據(jù)一致性問題,隨后詳細介紹了 Osiris、Triad-NVM、Anubis、Phoniex、STAR、PIST、PLP、CacheTree、CCAE 等基于硬件的一致性與崩潰恢復方案,這些方案有效地緩解了 NVM 的寫入流量并保證了數(shù)據(jù)的一致性。針對 8 TB 的加密計數(shù)器和BMT,Anubis 實現(xiàn)了僅 0.03 s 的恢復時間。

        隨著 NVM 技術(shù)的發(fā)展和應(yīng)用,其暴露出的安全問題受到了更多的關(guān)注,設(shè)計者需要從整個計算系統(tǒng)出發(fā),自上而下地關(guān)注其安全性,包括硬件安全、操作系統(tǒng)安全、編程模型安全等。針對 NVM 加密技術(shù)已經(jīng)做了大量研究,但仍存在許多未解決的問題,加密技術(shù)所引起的擴散效應(yīng)仍嚴重地影響 NVM 的壽命,未來需要提出更加高效的解決方案,以應(yīng)對此擴散效應(yīng)。在針對 NVM 完整性保護技術(shù)中,基于完整樹的完整性驗證和更新的開銷仍然較大,降低此類開銷的技術(shù)也是未來的一個重要研究方向。此外,若NVM 系統(tǒng)崩潰后受到了不可恢復的數(shù)據(jù)破壞,現(xiàn)有的恢復方案無法識別受到攻擊的具體位置。如 Osiris 恢復方案雖然能通過恢復葉子節(jié)點來重建整棵 BMT,但是若重建后的根節(jié)點與芯片上保存的根節(jié)點對比不一致,Osiris 技術(shù)無法識別具體是哪一部分數(shù)據(jù)遭到了攻擊。同樣地,當攻擊者替換位圖行或安全元數(shù)據(jù)時,STAR 技術(shù)可以檢測到攻擊發(fā)生,并使系統(tǒng)恢復,但無法定位受到攻擊的數(shù)據(jù)塊。鑒于準確定位被攻擊的數(shù)據(jù)位置對于系統(tǒng)防護是非常重要的,未來的恢復方案需要考慮這一點。在操作系統(tǒng)層面,若 NVM集成了外存的存儲功能,應(yīng)用程序就可以繞過文件權(quán)限管理機制,通過 Load/Store 指令接口直接訪問 NVM,這就有可能導致惡意程序破壞 NVM區(qū)域。訪問機制的變化需要變更現(xiàn)有的存儲軟件棧,并重新設(shè)計權(quán)限管理等安全角色。在編程模型安全方面,較受關(guān)注的是程序的可移植性和遷移成本問題,即應(yīng)用程序從易失的計算系統(tǒng)遷移到受安全技術(shù)保護的非易失系統(tǒng),如何使遷移的成本更小也是未來的工作重點。除傳統(tǒng)的加解密和完整性保護技術(shù)外,一些輔助增強 NVM 系統(tǒng)安全性的工作如地址隨機化技術(shù)、減少內(nèi)存暴露時間等,也是確保系統(tǒng)安全的重要研究方向。

        6 結(jié)束語

        隨著云計算、大數(shù)據(jù)、人工智能、物聯(lián)網(wǎng)、高性能計算等新技術(shù)在各行業(yè)得到越來越多的應(yīng)用,這意味著人類已經(jīng)進入了一個全新的數(shù)據(jù)時代。新的數(shù)據(jù)時代不僅產(chǎn)生了大量數(shù)據(jù),而且對數(shù)據(jù)的計算和存儲提出了更高的要求,傳統(tǒng)的內(nèi)存架構(gòu)迫切需要變革,以適應(yīng)不斷增長的數(shù)據(jù)需求。NVM 由于其非易失性、字節(jié)尋址能力和空閑低功耗等優(yōu)點,成為下一代內(nèi)存架構(gòu)的有力候選。本文從 NVM 的安全層面出發(fā),綜述了近年來針對 NVM 安全性的研究熱點與研究進展,如快速加解密、完整性驗證、一致性和崩潰恢復及相關(guān)性能的優(yōu)化技術(shù)。雖然目前 NVM 的發(fā)展還面臨一些問題,但是,隨著研究的深入、技術(shù)的推進和其自身的獨特優(yōu)勢,相信 NVM 會給未來的存儲架構(gòu)提供新的思路和選擇。

        猜你喜歡
        失性計數(shù)器完整性
        采用虛擬計數(shù)器的電子式膜式燃氣表
        煤氣與熱力(2022年2期)2022-03-09 06:29:30
        稠油熱采水泥環(huán)完整性研究
        云南化工(2021年9期)2021-12-21 07:44:00
        面向非易失性內(nèi)存的持久索引數(shù)據(jù)結(jié)構(gòu)研究綜述
        一種面向非易失性內(nèi)存文件系統(tǒng)的數(shù)據(jù)讀寫粒度控制策略
        莫斷音動聽 且惜意傳情——論音樂作品“完整性欣賞”的意義
        非易失性納米晶存儲器的研究
        精子DNA完整性損傷的發(fā)生機制及診斷治療
        詩性
        ——史性——失性——試論《白鹿原》及其話劇和電影改編
        大眾文藝(2016年7期)2016-01-27 11:18:22
        計數(shù)器競爭冒險及其處理的仿真分析
        樁身完整性檢測中缺陷的綜合判別
        河南科技(2014年18期)2014-02-27 14:14:46
        97久久草草超级碰碰碰| 精品视频一区二区在线观看| 黑丝美腿国产在线观看| 粉嫩小泬无遮挡久久久久久| 国产熟人av一二三区| 纯肉无遮挡H肉动漫在线观看国产| 中文字幕久久熟女人妻av免费| 精品人妻一区二区三区在线观看| 亚洲人成色7777在线观看不卡 | 欧美噜噜久久久xxx| 国产精品美女久久久久久久久| 欧美性xxx久久| 亚洲av一二三四五区在线| 美女网站免费观看视频| 色一情一乱一伦一区二区三区| 人妖另类综合视频网站| 中文字幕亚洲一区视频| 日本一区二区在线播放| 国产精品一区二区三区在线免费| 国产精品无码无片在线观看3d| 国产精品二区在线观看| 国产女主播福利一区在线观看| 久久一二区女厕偷拍图| 性色做爰片在线观看ww| 无码人妻精品一区二区三区免费 | 欧美大成色www永久网站婷| 亚洲高清无码第一| 91桃色在线播放国产| 给你免费播放的视频| 色一情一乱一伦一区二区三区| 国产永久免费高清在线观看视频| 全亚洲最大的私人影剧院在线看| 久久精品夜色国产亚洲av| 国产精选免在线观看| 日韩精品一区二区三区免费观影| 亚洲2022国产成人精品无码区 | 一区二区三区精品婷婷| 欧美日本精品一区二区三区| 中文字幕一区二区三区精华液| 免费在线日韩| 穿着白丝啪啪的av网站|