国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

新型非易失存儲(chǔ)的安全與隱私問(wèn)題研究綜述

2016-10-13 03:53:15徐遠(yuǎn)超閆俊峰孫鳳蕓張偉功
關(guān)鍵詞:失性存儲(chǔ)介質(zhì)指針

徐遠(yuǎn)超 閆俊峰 萬(wàn) 虎 孫鳳蕓 張偉功 李 濤

1(首都師范大學(xué)信息工程學(xué)院 北京 100048)2(計(jì)算機(jī)體系結(jié)構(gòu)國(guó)家重點(diǎn)實(shí)驗(yàn)室(中國(guó)科學(xué)院計(jì)算技術(shù)研究所) 北京 100190)3   (佛羅里達(dá)大學(xué)電子與計(jì)算機(jī)工程系 美國(guó)佛羅里達(dá)州蓋恩斯維爾 32611)

?

新型非易失存儲(chǔ)的安全與隱私問(wèn)題研究綜述

徐遠(yuǎn)超1,2閆俊峰1萬(wàn)虎1孫鳳蕓1張偉功1李濤3

1(首都師范大學(xué)信息工程學(xué)院北京100048)2(計(jì)算機(jī)體系結(jié)構(gòu)國(guó)家重點(diǎn)實(shí)驗(yàn)室(中國(guó)科學(xué)院計(jì)算技術(shù)研究所)北京100190)3(佛羅里達(dá)大學(xué)電子與計(jì)算機(jī)工程系美國(guó)佛羅里達(dá)州蓋恩斯維爾32611)

(xuyuanchao@cnu.edu.cn)

近年來(lái),以相變存儲(chǔ)器(phase change memory, PCM)為代表的各種新型非易失存儲(chǔ)(non-volatile memory, NVM)技術(shù)得到廣泛關(guān)注.NVM同時(shí)具有傳統(tǒng)內(nèi)存的字節(jié)尋址特性和外存的非易失特性,因而可以同時(shí)替代內(nèi)存和外存,也可以用于混合存儲(chǔ)體系結(jié)構(gòu).NVM具有低延時(shí)、高密度、低功耗的優(yōu)勢(shì),有效緩解了存儲(chǔ)墻問(wèn)題.然而,由于應(yīng)用程序可以直接通過(guò)存取指令(loadstore)接口訪問(wèn)NVM,并且掉電后存儲(chǔ)在NVM上的信息不會(huì)丟失,這給NVM的應(yīng)用帶來(lái)了一些新的安全和隱私挑戰(zhàn).首先討論了持久化內(nèi)存泄漏、不經(jīng)意寫操作、元數(shù)據(jù)安全、惡意磨損攻擊、非易失指針等NVM應(yīng)用中可能存在的安全問(wèn)題以及最新的解決方案;然后討論了數(shù)據(jù)保護(hù)、信息泄露等NVM應(yīng)用中可能存在的隱私問(wèn)題及現(xiàn)有的解決方案;最后探討了NVM還需解決的安全和隱私問(wèn)題,包括非易失緩存、程序安全等,并提出了一些解決方案,包括權(quán)限和保護(hù)機(jī)制的融合、使用易失性的NVM等.

內(nèi)存泄漏;非易失性存儲(chǔ);安全;隱私;磨損攻擊;不經(jīng)意寫

信息技術(shù)近年來(lái)得到了迅猛發(fā)展,面向大數(shù)據(jù)的計(jì)算機(jī)體系結(jié)構(gòu)與深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)等人工智能技術(shù)的結(jié)合,讓人類步入了類腦計(jì)算[1]研究的時(shí)代.類腦計(jì)算是一種仿腦的大規(guī)模存儲(chǔ)與并行處理系統(tǒng).與傳統(tǒng)的馮·諾依曼架構(gòu)不同,類腦計(jì)算中的存儲(chǔ)和計(jì)算是融合的、沒(méi)有明確的界限,因此具有并行度高、魯棒性強(qiáng)、能耗低等特點(diǎn).可以預(yù)見(jiàn),未來(lái)的體系結(jié)構(gòu)發(fā)展趨勢(shì)就是讓計(jì)算貼近數(shù)據(jù)、減少數(shù)據(jù)的搬移[2],因此,存儲(chǔ)成為新型計(jì)算架構(gòu)的關(guān)鍵.近年來(lái),各種新型非易失存儲(chǔ)介質(zhì)(non-volatile memory, NVM)的出現(xiàn),如相變存儲(chǔ)器(phase change memory, PCM)、自旋轉(zhuǎn)移力矩存儲(chǔ)器(spin-transfer torque RAM, STT-RAM)、憶阻器(memristor)等[3-5],給計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展帶來(lái)了福音.惠普實(shí)驗(yàn)室正在如火如荼開(kāi)展的“The Machine”項(xiàng)目[6],就是采用憶阻器新型非易失存儲(chǔ)介質(zhì),同時(shí)設(shè)計(jì)全新的操作系統(tǒng)Linux++.當(dāng)然,同時(shí)具有記憶和計(jì)算功能的憶阻器在技術(shù)上還不太成熟,但PCM等新型存儲(chǔ)介質(zhì)離產(chǎn)品化已經(jīng)越來(lái)越近.

PCM等非易失存儲(chǔ)介質(zhì)不僅具有字節(jié)尋址以及非易失特性,還具有存儲(chǔ)密度高、延遲小、功耗低等優(yōu)勢(shì)(如表1所示),因此,可以替代傳統(tǒng)的內(nèi)存(如DRAM)和外存(如機(jī)械式硬盤、基于閃存的固態(tài)硬盤等),圖1顯示了4種可能的存儲(chǔ)體系架構(gòu).但是,要想完全發(fā)揮NVM的優(yōu)勢(shì),不能簡(jiǎn)單地進(jìn)行物理上的替換,還需要更新存儲(chǔ)軟件棧(software stack)[7],一方面減少軟件的開(kāi)銷,另一方面是減少NVM的不足帶來(lái)的負(fù)面影響,包括軟件方法屏蔽存儲(chǔ)單元的錯(cuò)誤率(制程越小、存儲(chǔ)密度越高,錯(cuò)誤率也隨之升高)、減少每個(gè)存儲(chǔ)單元的寫入次數(shù)(尤其是對(duì)PCM而言,寫入次數(shù)大約為108~1012),這些不足不僅帶來(lái)可靠性問(wèn)題,也帶來(lái)安全方面的隱患.盡管如此,可以預(yù)見(jiàn),隨著器件技術(shù)的成熟和支撐軟件的完備,這些新型的非易失存儲(chǔ)介質(zhì)必將徹底顛覆傳統(tǒng)的二級(jí)存儲(chǔ)結(jié)構(gòu),給計(jì)算系統(tǒng)帶來(lái)更大的存儲(chǔ)容量和更低的訪問(wèn)延遲.

網(wǎng)絡(luò)和信息安全設(shè)備作為一種專用的計(jì)算設(shè)備,對(duì)網(wǎng)絡(luò)參數(shù)配置的讀寫速度有很高要求.比如,現(xiàn)有的很多路由器(如思科路由器)是將網(wǎng)絡(luò)參數(shù)配置存放在存儲(chǔ)容量較小但讀取速度較快的非易失存儲(chǔ)介質(zhì)中,操作系統(tǒng)仍然存放在閃存中.隨著新型存儲(chǔ)技術(shù)的成熟,配置更大容量的內(nèi)存和外存都成為可能,無(wú)疑可以進(jìn)一步提升網(wǎng)絡(luò)設(shè)備的性能.

Table1 Comparison of Properties of Several Memory and Storage Technologies[3-4]

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

安全和隱私問(wèn)題在傳統(tǒng)的計(jì)算機(jī)體系結(jié)構(gòu)中也得到了極大關(guān)注.如針對(duì)內(nèi)存保護(hù),操作系統(tǒng)提供了進(jìn)程地址空間、虛實(shí)地址轉(zhuǎn)換、內(nèi)核態(tài)和用戶態(tài)、段頁(yè)式管理等多種機(jī)制,確保了一個(gè)進(jìn)程的執(zhí)行不會(huì)影響到另一個(gè)進(jìn)程,用戶進(jìn)程不會(huì)破壞操作系統(tǒng)的地址空間.針對(duì)文件安全,也提供了文件訪問(wèn)許可、訪問(wèn)控制列表以及密碼等多種機(jī)制.除了傳統(tǒng)的安全問(wèn)題之外,NVM的使用還帶來(lái)了一些新的安全和隱私問(wèn)題.比如,系統(tǒng)斷電后,存儲(chǔ)在其中的數(shù)據(jù)不會(huì)在短時(shí)間內(nèi)消失,程序執(zhí)行的狀態(tài)也是持久化的[8],增加了冷啟動(dòng)(cold-boot attack)[9]攻擊的風(fēng)險(xiǎn).因此,從安全的角度看,NVM的非易失特性增大了系統(tǒng)被入侵和數(shù)據(jù)被竊取的風(fēng)險(xiǎn).NVM既可以作為工作內(nèi)存(working memory)使用,也可以作為持久化存儲(chǔ)(persistent storage)來(lái)使用[10].安全風(fēng)險(xiǎn)的增大主要源于工作內(nèi)存.當(dāng)NVM作為常規(guī)存儲(chǔ)時(shí),其存在的安全和隱私問(wèn)題在其他持久性存儲(chǔ)介質(zhì)中也同樣存在,因此不作為本文討論的重點(diǎn).

NVM安全和隱私問(wèn)題的根源主要來(lái)自2個(gè)方面:1)NVM的非易失特性.傳統(tǒng)的操作系統(tǒng)是針對(duì)易失的工作內(nèi)存設(shè)計(jì)的,沒(méi)有考慮非易失性,因此,如果將NVM作為工作內(nèi)存使用或構(gòu)建基于NVM的單一存儲(chǔ)系統(tǒng),就必須考慮非易失引入的安全問(wèn)題.2)字節(jié)尋址特性.字節(jié)尋址特性使得應(yīng)用程序可以采用存取指令(loadstore)接口訪問(wèn)NVM上的文件,從而帶來(lái)了很高的性能,但與此同時(shí),也帶來(lái)了更高的安全風(fēng)險(xiǎn).傳統(tǒng)的操作系統(tǒng)通過(guò)文件的權(quán)限檢查決定進(jìn)程是否有權(quán)訪問(wèn)磁盤塊.現(xiàn)在全部變?yōu)榱送ㄟ^(guò)現(xiàn)有的內(nèi)存管理單元(memory management unit, MMU)來(lái)實(shí)施保護(hù),因此,必須從頂層視角重新設(shè)計(jì)操作系統(tǒng)的安全機(jī)制,將文件權(quán)限機(jī)制與內(nèi)存保護(hù)機(jī)制更好地融合[11].

針對(duì)以上問(wèn)題,學(xué)術(shù)界提出了一些預(yù)防和改進(jìn)措施,比如,研究加密機(jī)制對(duì)NVM中的數(shù)據(jù)進(jìn)行加密,防止數(shù)據(jù)竊取或泄密情況的發(fā)生;采取安全的文件系統(tǒng)機(jī)制防止元數(shù)據(jù)被應(yīng)用程序惡意或不經(jīng)意修改;通過(guò)在線探測(cè)和地址動(dòng)態(tài)重映射來(lái)降低磨損攻擊(wearout attack)的風(fēng)險(xiǎn)等.當(dāng)然,這些措施都有一定的開(kāi)銷,盡可能降低開(kāi)銷也是相關(guān)研究重點(diǎn)考慮的內(nèi)容.

本文針對(duì)NVM在使用過(guò)程中可能存在的安全和隱私問(wèn)題進(jìn)行了分析,包括持久化內(nèi)存泄漏、不經(jīng)意的寫操作、元數(shù)據(jù)安全、惡意磨損攻擊、非易失指針等安全問(wèn)題,以及數(shù)據(jù)保護(hù)、信息泄露等隱私問(wèn)題,這些問(wèn)題與NVM的特性息息相關(guān),與存儲(chǔ)介質(zhì)無(wú)關(guān)的安全和隱私問(wèn)題沒(méi)有作為本文的重點(diǎn);最后給出了NVM在安全和隱私方面的研究展望和可能的研究方向.

1 安全問(wèn)題

1.1持久化內(nèi)存泄漏

所謂內(nèi)存泄漏(memory leak),是指用動(dòng)態(tài)存儲(chǔ)分配函數(shù)動(dòng)態(tài)開(kāi)辟的空間,在使用完畢后未釋放,結(jié)果導(dǎo)致該內(nèi)存單元一直被占用.內(nèi)存泄漏分為易失性(volatile)和持久化(persistent)的內(nèi)存泄漏.易失性內(nèi)存泄漏可能導(dǎo)致程序崩潰,但是這種情況可以通過(guò)重啟程序來(lái)恢復(fù);而持久化內(nèi)存泄漏對(duì)于程序來(lái)講是致命的.

Mnemosyne[12]提供了2種機(jī)制來(lái)阻止持久化內(nèi)存泄漏:1)在分配內(nèi)存時(shí),要求程序提供一個(gè)持久化的指針指向該內(nèi)存,從而保證了系統(tǒng)崩潰時(shí)該內(nèi)存不會(huì)丟失;2)通過(guò)將NVM存儲(chǔ)區(qū)域轉(zhuǎn)換(swap)成文件來(lái)實(shí)現(xiàn)NVM的虛擬化,進(jìn)而保證一個(gè)程序中出現(xiàn)的內(nèi)存泄漏不會(huì)影響到其他程序.基于以上2種機(jī)制,即使真出現(xiàn)了內(nèi)存泄漏,可以先分配一塊新的持久化區(qū)域(persistent region),然后將活動(dòng)的數(shù)據(jù)從原先的區(qū)域拷貝到新的持久化區(qū)域中,以此來(lái)恢復(fù)程序,Mnemosyne的體系結(jié)構(gòu)如圖2所示:

Fig. 2 Mnemosyne architecture[12].圖2 Mnemosyne體系結(jié)構(gòu)[12]

1.2不經(jīng)意寫操作

由于NVM的字節(jié)尋址特性,NVM可以直接映射到進(jìn)程或內(nèi)核的虛擬地址空間,隨后的訪問(wèn)可以直接通過(guò)loadstore接口進(jìn)行,不再經(jīng)過(guò)冗長(zhǎng)的文件系統(tǒng)路徑,這大大降低了延遲,提升了性能[13-14].但是,把NVM直接暴露給進(jìn)程或內(nèi)核的虛擬地址空間,帶來(lái)了極大的安全隱患,因?yàn)閼?yīng)用程序或驅(qū)動(dòng)程序一旦存在程序缺陷(program bugs),很可能導(dǎo)致NVM的不經(jīng)意寫(stray writes)操作.

為了防止不經(jīng)意寫,PMFS[15]利用處理器中的寫保護(hù)控制特征,實(shí)現(xiàn)了一個(gè)低開(kāi)銷的寫保護(hù)機(jī)制.表2表示了寫保護(hù)機(jī)制的工作原理.行名表示NVM映射的地址空間,列名表示不經(jīng)意寫的發(fā)生權(quán)限.這里不包含一個(gè)進(jìn)程中多個(gè)線程間的寫保護(hù).來(lái)自用戶態(tài)的不經(jīng)意寫操作操作內(nèi)核空間時(shí)遵循特權(quán)級(jí)別(privilege levels)機(jī)制,來(lái)自用戶態(tài)的不經(jīng)意寫操作操作用戶空間時(shí)遵循分頁(yè)機(jī)制.來(lái)自內(nèi)核態(tài)的不經(jīng)意寫操作操作用戶空間時(shí)遵循防止超級(jí)用戶訪問(wèn)機(jī)制(supervisor mode access prevention, SMAP),當(dāng)SMAP被禁時(shí),就不允許以超級(jí)模式(supervisor mode)訪問(wèn)用戶地址空間.來(lái)自內(nèi)核態(tài)的不經(jīng)意寫操作操作內(nèi)核空間時(shí)不會(huì)將整個(gè)NVM都映射到內(nèi)核虛擬地址空間中,而是僅僅將其臨時(shí)映射到某一個(gè)物理核的私有地址空間中.PMFS[15]利用了處理器的寫保護(hù)機(jī)制(CR0.WP)來(lái)實(shí)現(xiàn)寫保護(hù)功能.只有當(dāng)CR0.WP沒(méi)有設(shè)置時(shí),才允許內(nèi)核態(tài)操作對(duì)內(nèi)核虛擬地址空間中標(biāo)記為只讀的頁(yè)進(jìn)行寫操作.

Table 2 Overview of NVM Write Protection[15]

文獻(xiàn)[16]使用基于頁(yè)表(page table)的保護(hù)來(lái)預(yù)防不經(jīng)意寫,通過(guò)以下4個(gè)步驟:1)當(dāng)驅(qū)動(dòng)程序被加載時(shí),使用ioremap()將NVM頁(yè)面映射到內(nèi)核虛擬地址空間中并且通過(guò)禁用讀寫(RW)位來(lái)將其初始化為只讀;2)當(dāng)進(jìn)行讀操作時(shí),不再有額外的其他操作;3)當(dāng)進(jìn)行寫操作時(shí),開(kāi)啟RW位將某一個(gè)頁(yè)面置為可寫,并執(zhí)行寫操作,當(dāng)完成寫操作后再將RW位禁用使該頁(yè)恢復(fù)為只讀;4)當(dāng)驅(qū)動(dòng)程序卸載后,NVM 頁(yè)面必須是沒(méi)有映射的.

這種基于頁(yè)表的保護(hù)方式方法雖然簡(jiǎn)單,但是卻對(duì)性能帶來(lái)了很大的影響,主要原因有以下2個(gè):1)當(dāng)寫1個(gè)頁(yè)時(shí),必須要對(duì)頁(yè)表項(xiàng)(page table entry, PTE)中的位進(jìn)行2次變換(第1次是從只讀變成可寫,第2次是變回來(lái)),而每一次PTE屬性的變化都會(huì)引起“PTE shootdown”.2)操作系統(tǒng)對(duì)頁(yè)表屬性變換未做優(yōu)化.因此,文獻(xiàn)[16]對(duì)此進(jìn)行了優(yōu)化.第1種優(yōu)化方法是使用緩沖批處理(bufferbatching)機(jī)制進(jìn)行保護(hù).這種機(jī)制可以減少操作PTE標(biāo)志位帶來(lái)的開(kāi)銷,有2個(gè)原因:1)一個(gè)小的DRAM空間可以當(dāng)作一個(gè)緩沖區(qū)用來(lái)緩解突發(fā)的大量寫操作;2)在更新頁(yè)表前,這些緩沖區(qū)用于存放等待重新組織的頁(yè).因此,只需要中止一次旁路轉(zhuǎn)換緩沖(translation lookaside buffer, TLB),就可以批處理更新一系列連續(xù)頁(yè)的RW標(biāo)志位,從而減小了單個(gè)操作帶來(lái)的開(kāi)銷.第2種優(yōu)化方法是使用多個(gè)緩沖區(qū)進(jìn)行保護(hù).為了提高擴(kuò)展性,使用多個(gè)緩沖區(qū),每一個(gè)緩沖區(qū)由單獨(dú)的同步守護(hù)進(jìn)程來(lái)管理,所有發(fā)送過(guò)來(lái)的寫操作以循環(huán)的方式分布到不同的緩沖區(qū)中.

基于頁(yè)表的寫保護(hù)機(jī)制因?yàn)楣芾淼牧6刃?、?yè)表龐大導(dǎo)致占用的內(nèi)存空間太大,文獻(xiàn)[16]還提出基于臨時(shí)映射(temporary mapping)的保護(hù)緩解該問(wèn)題.臨時(shí)映射是指只有在需要時(shí)才會(huì)動(dòng)態(tài)地將NVM頁(yè)映射到內(nèi)核空間,通過(guò)這種方式來(lái)提供寫保護(hù),而不是通過(guò)控制每個(gè)頁(yè)的可訪問(wèn)性來(lái)提供寫保護(hù).也就是說(shuō),當(dāng)加載NVM設(shè)備時(shí),NVM頁(yè)并不直接映射到內(nèi)核虛擬地址空間中,而是當(dāng)一個(gè)頁(yè)被讀寫時(shí)才會(huì)被映射到內(nèi)核地址空間中.NVM空間對(duì)操作系統(tǒng)是不可見(jiàn)的,這就阻止了不經(jīng)意寫操作帶來(lái)的潛在破壞性.臨時(shí)映射方法的缺點(diǎn)在于:無(wú)法通過(guò)固定的虛擬地址來(lái)訪問(wèn),使軟件更加復(fù)雜;同時(shí),共享頁(yè)表項(xiàng)和大頁(yè)映射的優(yōu)勢(shì)也將無(wú)法體現(xiàn).

1.3元數(shù)據(jù)安全

現(xiàn)在將一塊NVM區(qū)域直接映射到應(yīng)用程序的虛擬地址空間,也就是說(shuō)應(yīng)用程序可以直接操作NVM區(qū)域.傳統(tǒng)的文件系統(tǒng)權(quán)限管理已經(jīng)不復(fù)存在.在修改元數(shù)據(jù)前,應(yīng)該通過(guò)一個(gè)內(nèi)核服務(wù)(kernel service)來(lái)進(jìn)行權(quán)限監(jiān)控,防止元數(shù)據(jù)被隨意修改.

Volos等人[17]設(shè)計(jì)了一種靈活的文件系統(tǒng)體系結(jié)構(gòu)——Aerie,用戶程序能夠感知下層NVM存儲(chǔ)介質(zhì)的存在,能夠直接訪問(wèn)文件系統(tǒng)數(shù)據(jù)和元數(shù)據(jù),無(wú)需與內(nèi)核進(jìn)行交互.然而,惡意程序也可以利用直接訪問(wèn)這一特性來(lái)破壞和違背文件系統(tǒng)不變式(file-system invariants)的約束條件,比如禁止在同一目錄下插入2個(gè)同名的文件.從根本上來(lái)說(shuō),解決這個(gè)問(wèn)題需要一個(gè)受信任實(shí)體或者要求所有的客戶端驗(yàn)證元數(shù)據(jù).Aerie依靠軟硬協(xié)同的方式來(lái)解決該問(wèn)題,它將文件系統(tǒng)的實(shí)現(xiàn)分為不可信的用戶庫(kù)(libFS)和可信的文件系統(tǒng)服務(wù)(trusted file system, TFS),如圖3所示.libFS提供了訪問(wèn)文件的接口,包括命名和數(shù)據(jù)訪問(wèn);TFS提供了不可信程序之間的協(xié)作服務(wù),確保了元數(shù)據(jù)的完整性和同步.因此,Aerie中的用戶庫(kù)可以直接訪問(wèn)內(nèi)存保護(hù)權(quán)限允許的全部存儲(chǔ)介質(zhì).由于內(nèi)存保護(hù)(protection)比文件權(quán)限(permission)更加嚴(yán)格,libFS通過(guò)調(diào)用TFS來(lái)實(shí)現(xiàn)文件系統(tǒng)權(quán)限允許但被內(nèi)存保護(hù)禁止的寫操作,如只寫的文件操作以及只能遍歷的目錄.

Fig. 3 Aerie architecture[17].圖3 Aerie體系結(jié)構(gòu)[17]

1.4惡意磨損攻擊

現(xiàn)有的非易失存儲(chǔ)介質(zhì)都存在寫入次數(shù)限制,如果反復(fù)對(duì)同一個(gè)位置進(jìn)行寫入操作將會(huì)造成該區(qū)域提前老化、數(shù)據(jù)出錯(cuò),器件壽命也因此而縮短.正是由于有限的寫入次數(shù)特性,攻擊者很可能利用該特性通過(guò)惡意程序[18]對(duì)NVM的某些區(qū)域進(jìn)行反復(fù)寫入操作,造成部分存儲(chǔ)單元快速達(dá)到耐用極限(limited endurance),在很短的時(shí)間內(nèi)失效.為此,學(xué)術(shù)界提出了大量的磨損均衡算法[19-23],通過(guò)將寫操作均勻分布在整個(gè)存儲(chǔ)空間上,延長(zhǎng)整個(gè)器件的使用壽命.

Qureshi等人[19]提出了基于區(qū)域的起始-間隙(region based Start-Gap, RBSG)磨損均衡算法.其核心思想是將整個(gè)存儲(chǔ)空間劃分為多個(gè)區(qū)域,在寫操作過(guò)程中,通過(guò)邏輯地址和物理地址重映射的方式將每一行的數(shù)據(jù)轉(zhuǎn)移到相鄰的地址,算法思想如圖4所示.Start-Gap算法的核心是地址的重映射,實(shí)現(xiàn)比較簡(jiǎn)單,只需要為每個(gè)區(qū)域定義2個(gè)獨(dú)立的寄存器,分別記錄起始(start)指針和間隙(gap)指針,start跟蹤存儲(chǔ)區(qū)域中所有的行被重定位的次數(shù),gap跟蹤存儲(chǔ)區(qū)域中被重定位的行數(shù).間隙行(gapline)是該存儲(chǔ)區(qū)域中的任意一個(gè)空閑行,如果沒(méi)有空閑行,需要單獨(dú)給該區(qū)域一個(gè)空閑行,以便于間隙行的移動(dòng)和旋轉(zhuǎn).通過(guò)這種方式便可以防止由于頻繁寫操作帶來(lái)的行失效,從而實(shí)現(xiàn)了磨損均衡的效果.

Start-Gap算法以固定的映射邏輯實(shí)現(xiàn)磨損均衡,抗惡意攻擊能力不強(qiáng).即使實(shí)現(xiàn)了基于隨機(jī)映射的算法,但其變化規(guī)律容易被探測(cè).另外,間隙行的移動(dòng)和旋轉(zhuǎn)也帶來(lái)了額外開(kāi)銷,更重要的是,增加了空間管理的復(fù)雜度.

文獻(xiàn)[19]還提到另外一種容忍攻擊的方法,即增加對(duì)同一行寫操作的時(shí)間間隔.實(shí)現(xiàn)的方式很多,比如,通過(guò)改變PCM的寫隊(duì)列策略,推遲寫操作直到寫隊(duì)列達(dá)到定義的閾值.舉例而言,如果PCM寫隊(duì)列有64個(gè)條目,可以把閾值定義為16,只有寫隊(duì)列達(dá)到16個(gè)條目才進(jìn)行一次批量寫操作,如果只有攻擊者的寫操作,相當(dāng)于延遲了16倍的時(shí)間,當(dāng)然,這只是時(shí)間間隔上延長(zhǎng)了,要真正減少寫操作次數(shù),還需要結(jié)合寫合并等其他措施,當(dāng)然,延遲寫影響了實(shí)時(shí)性,因此,系統(tǒng)設(shè)計(jì)者需要在安全性和性能上根據(jù)實(shí)際應(yīng)用場(chǎng)景的風(fēng)險(xiǎn)系數(shù)進(jìn)行權(quán)衡.

以前的磨損均衡算法通常假設(shè)寫操作是正常的,很少考慮惡意攻擊等異常情況.因此,除了算法本身能否有效地實(shí)現(xiàn)磨損均衡外,還要從安全性方面進(jìn)行設(shè)計(jì).

安全刷新(security refresh)算法[20]通過(guò)PCM控制器周期性地對(duì)地址映射空間進(jìn)行動(dòng)態(tài)刷新,防止地址映射信息泄露.方法是:以存儲(chǔ)體(bank)為單位,每超過(guò)一定的寫入次數(shù),就將bank內(nèi)不同的塊地址進(jìn)行重新映射,將其映射到一個(gè)新的地址.映射的過(guò)程中如圖5所示,在開(kāi)始新一輪的動(dòng)態(tài)刷新前,安全刷新控制器(security refresh controller, SRC)生成一個(gè)新的隨機(jī)數(shù)作為密鑰,與上一個(gè)密鑰共同參與運(yùn)算以確定下一輪映射.因此,該算法的關(guān)鍵是隨機(jī)數(shù)的產(chǎn)生、地址轉(zhuǎn)換邏輯、重映射邏輯和數(shù)據(jù)交換邏輯等,這些都由SRC硬件完成, 內(nèi)嵌在每個(gè)PCM存儲(chǔ)上,避免攻擊者通過(guò)探測(cè)內(nèi)存總線獲得地址信息,從而在實(shí)現(xiàn)磨損均衡的同時(shí)保證了系統(tǒng)的安全性.

Fig. 4 Start-Gap wear leveling on a memory containing 16 lines[19].圖4 Start-Gap算法(16行存儲(chǔ)器的磨損均衡)[19]

Fig. 5 An example of one complete security refresh round[20].圖5 一輪完整的Security Refresh過(guò)程[20]

頻繁的地址重映射會(huì)引入較大的額外寫開(kāi)銷,有時(shí)比正常的磨損均衡算法的開(kāi)銷高2~3個(gè)數(shù)量級(jí)[21].大多數(shù)情況下,系統(tǒng)都處在一個(gè)安全環(huán)境下,遭受攻擊的次數(shù)不是很多.因此,如果能夠?qū)崟r(shí)了解系統(tǒng)所處的安全狀況、及時(shí)動(dòng)態(tài)調(diào)整磨損均衡算法,有助于實(shí)現(xiàn)性能和安全的平衡.

Fig. 6 Architecture of adaptive wear leveling[21].圖6 自適應(yīng)磨損均衡體系結(jié)構(gòu)[21]

在線攻擊探測(cè)(online attack detection, OAD)機(jī)制[21]通過(guò)監(jiān)控寫數(shù)據(jù)流和地址引用來(lái)判斷是否存在攻擊,并通過(guò)攻擊密度(attack density)來(lái)度量攻擊的嚴(yán)重程度,以此來(lái)決定磨損均衡的地址映射頻率,從而動(dòng)態(tài)調(diào)整磨損均衡算法的寫開(kāi)銷,較好地達(dá)到了安全和性能的平衡,OAD算法的框架如圖6所示.此文提出的自適應(yīng)的磨損均衡(adaptive wear leveling, AWL)機(jī)制適合多種磨損均衡算法.實(shí)驗(yàn)顯示,在保持算法安全性的同時(shí),AWL以較小的空間開(kāi)銷(68 B)將寫開(kāi)銷降到了原來(lái)的1100~110,在一定程度上平衡了磨損均衡算法安全性和性能需求.

實(shí)際上,以上各種算法機(jī)制并不能從源頭上制止惡意磨損攻擊,因此只能被動(dòng)采取防護(hù)措施.理想的做法是,從源頭檢測(cè)并阻止惡意程序的攻擊,可以借鑒網(wǎng)絡(luò)安全領(lǐng)域的入侵檢測(cè)工具來(lái)阻止惡意程序.

1.5非易失指針

NVM具有低延遲及字節(jié)尋址特性,可以當(dāng)作工作內(nèi)存使用;但NVM也存在讀寫延遲不對(duì)稱、寫延遲和功耗高等不足,因此,采用DRAM+NVM的混合主存結(jié)構(gòu)也是目前研究較多的一種存儲(chǔ)結(jié)構(gòu).然而,這種混合結(jié)構(gòu)增加了操作系統(tǒng)或內(nèi)存控制器寫分配數(shù)據(jù)的復(fù)雜性,同時(shí),也由于在同一種性質(zhì)的存儲(chǔ)結(jié)構(gòu)(工作內(nèi)存)中同時(shí)存在易失和非易失2種存儲(chǔ)介質(zhì),帶來(lái)一些安全隱患.比如,存放在非易失存儲(chǔ)區(qū)域的指針指向的是易失存儲(chǔ)區(qū)域的地址,如果異常掉電或程序非正常結(jié)束,非易失指針[24-25]就指向了不確定區(qū)域,可能帶來(lái)不安全性.

NV-Heaps[24]實(shí)現(xiàn)了一個(gè)可以在應(yīng)用層訪問(wèn)的對(duì)象持久化接口,其體系架構(gòu)如圖7所示.該接口允許編程人員在分配主存空間時(shí)明確選擇易失存儲(chǔ)或者非易失存儲(chǔ).NVM通過(guò)加強(qiáng)對(duì)指針創(chuàng)建規(guī)則的控制來(lái)減少因程序員誤用指針而導(dǎo)致的安全性錯(cuò)誤,如破壞數(shù)據(jù)結(jié)構(gòu)、錯(cuò)誤分配內(nèi)存等.

Fig. 7 NV-Heaps system stack[24].圖7 NV-Heaps系統(tǒng)棧結(jié)構(gòu)[24]

NV-Heaps將地址空間劃分成了易失性的內(nèi)存區(qū)域(如棧和易失性堆)和非易失性堆.相應(yīng)地,根據(jù)指針是否存放在非易失性區(qū)域以及指針指向的區(qū)域是否為非易失性區(qū)域可以將指針劃分為4類,如表3所示.這4類指針?lè)謩e是:指針位于非易失性堆且指向同一個(gè)堆內(nèi)部(intra-heap NV-to-NV)、指針位于非易失性堆且指向另外一個(gè)非易失性堆(inter-heap NV-to-NV)、指針位于易失性堆且指向非易失性堆(V-to-NV)、指針位于非易失性堆且指向易失性區(qū)域(NV-to-V).為了保證系統(tǒng)中指針引用的完整性,要求程序中所有的引用(如指針)必須指向有效的數(shù)據(jù),因此,系統(tǒng)必須遵循2個(gè)約束條件:1)不能存在NV-to-V 指針.因?yàn)橐坏┏绦蚪Y(jié)束了,這些指針就失去了意義,而且當(dāng)程序再次使用這個(gè)NV-Heaps時(shí)這些指針將會(huì)變得不安全;2)不能存在inter-heap NV-to-NV 指針.因?yàn)槿绻鸑V-Heaps中包含了一個(gè)無(wú)法使用的對(duì)象,那么這些指針將會(huì)不安全.此外,這種類型的指針也使得垃圾回收機(jī)制更加復(fù)雜,它無(wú)法確定哪些被分配的空間已經(jīng)廢棄,因?yàn)榭赡軙?huì)有其他NV-Heaps(有可能已經(jīng)不可用)中的指針指向這塊空間.

Table 3 Volatile and Non-Volatile Pointers

2 隱私問(wèn)題

2.1數(shù)據(jù)保護(hù)

平板電腦、移動(dòng)終端由于體積、功耗等原因,在未來(lái)的存儲(chǔ)體系結(jié)構(gòu)中率先采用NVM作為工作內(nèi)存的可能性更大[26],因此可以用單一的存儲(chǔ)介質(zhì)同時(shí)替換傳統(tǒng)的主存和外存.然而,這也給數(shù)據(jù)隱私帶來(lái)了巨大隱患,因?yàn)橄到y(tǒng)崩潰或斷電后存儲(chǔ)在NVM 上的所有敏感信息都依然存在,無(wú)論該NVM區(qū)域用于工作內(nèi)存還是持久性存儲(chǔ).本文不討論NVM作為持久性存儲(chǔ)的數(shù)據(jù)保護(hù)問(wèn)題,因?yàn)檫@與其他非易失性存儲(chǔ)介質(zhì)并沒(méi)有本質(zhì)差異.

相比之下,DRAM作為工作內(nèi)存要比NVM更加安全,因?yàn)镈RAM是易失性的,掉電后數(shù)據(jù)將不復(fù)存在.而NVM是非易失性的,如果出現(xiàn)系統(tǒng)崩潰或異常掉電等意外情況,應(yīng)用程序?qū)?lái)不及銷毀存放在上面的數(shù)據(jù)[27].解決方案有以下2種:

1) 敏感數(shù)據(jù)特殊處理.對(duì)移動(dòng)設(shè)備而言,如果數(shù)據(jù)(尤其是敏感數(shù)據(jù))不再使用,應(yīng)該將其擦除或者加密,防止冷啟動(dòng)攻擊[9].所謂冷啟動(dòng)攻擊,是指計(jì)算機(jī)電源關(guān)閉后所遭受的攻擊.在使用DRAM構(gòu)建的內(nèi)存子系統(tǒng)中,計(jì)算機(jī)電源關(guān)閉后,內(nèi)存中的信息實(shí)際上不會(huì)立即自動(dòng)擦除,而是還能夠保持5 s甚至更長(zhǎng)時(shí)間,此時(shí)如果通過(guò)某種方式獲取內(nèi)存中的信息映像,就能夠得到在內(nèi)存運(yùn)行時(shí)保存在其中的各種數(shù)據(jù).PCM等非易失性存儲(chǔ)介質(zhì)在系統(tǒng)斷電后,上面的數(shù)據(jù)還能夠保持相當(dāng)長(zhǎng)的一段時(shí)間,與易失性內(nèi)存相比,遭受冷啟動(dòng)攻擊的風(fēng)險(xiǎn)更大,因此,必須采取相應(yīng)預(yù)防措施.

當(dāng)應(yīng)用程序用完這些敏感數(shù)據(jù)時(shí),安全和隱私策略必須決定操作系統(tǒng)什么時(shí)候如何擦除或加密這些敏感數(shù)據(jù)[28],這種策略可以由程序員來(lái)定義,讓應(yīng)用程序來(lái)決定哪些數(shù)據(jù)(相對(duì)較為敏感的數(shù)據(jù))放在DRAM上還是放在NVM上.如果放在了NVM上,應(yīng)用程序就必須妥善管理好這些數(shù)據(jù).

Fig. 9 High-level diagram of i-NVMM architecture support[31].圖9 i-NVMM體系結(jié)構(gòu)支持的高級(jí)示意圖[31]

2) 改進(jìn)加密技術(shù).由于加密技術(shù)對(duì)磨損均衡技術(shù)帶來(lái)了很大影響,文獻(xiàn)[29-30]針對(duì)隱私保護(hù)提出了一種基于計(jì)數(shù)器模式(counter mode)的改進(jìn)之后的加密技術(shù).文獻(xiàn)[30]通過(guò)遞增一個(gè)加密計(jì)數(shù)器以產(chǎn)生連續(xù)的密鑰流,如圖8所示,其中,計(jì)數(shù)器可以是任意的不會(huì)產(chǎn)生長(zhǎng)時(shí)間重復(fù)輸出的函數(shù).計(jì)數(shù)器模式的加密強(qiáng)度來(lái)自密鑰流的時(shí)間唯一性和空間唯一性.通常情況下,加密數(shù)據(jù)塊的地址決定了空間唯一性,而計(jì)數(shù)器的值決定了時(shí)間唯一性.這種加密方式是針對(duì)緩存行(cache line)進(jìn)行的,也就是加密的粒度通常為64 B.這帶來(lái)一個(gè)問(wèn)題,如果其中只有幾個(gè)字節(jié)被修改過(guò),當(dāng)寫回主存時(shí)對(duì)整個(gè)緩存行進(jìn)行加密的開(kāi)銷較大.為此,此文增加了數(shù)據(jù)塊級(jí)的計(jì)數(shù)器,每一個(gè)數(shù)據(jù)塊的加密通過(guò)緩存行級(jí)計(jì)數(shù)器和數(shù)據(jù)塊級(jí)計(jì)數(shù)器共同完成.只有臟塊對(duì)應(yīng)的數(shù)據(jù)塊級(jí)計(jì)數(shù)器才會(huì)自增,只加密臟塊并將其寫回到NVM中,同一個(gè)緩存行中的其他干凈(未被修改過(guò))的塊不會(huì)被寫回到NVM中.通過(guò)這種方法解決了部分寫(partial write)的磨損均衡.

Fig. 8 Counter mode encryption for secure processors[30].圖8 面向安全處理器的計(jì)數(shù)器模式加密[30]

對(duì)所有數(shù)據(jù)加密無(wú)疑開(kāi)銷很大,因此,文獻(xiàn)[31]提出了一種針對(duì)NVM的增量式數(shù)據(jù)加密方式,稱為i-NVMM.i-NVMM通過(guò)一個(gè)預(yù)測(cè)機(jī)制來(lái)判斷處理器是否還會(huì)用到該數(shù)據(jù),從而確定該數(shù)據(jù)在何時(shí)進(jìn)行加密,如圖9所示.這種增量式的數(shù)據(jù)加密方式會(huì)先對(duì)內(nèi)存中暫時(shí)不用的數(shù)據(jù)進(jìn)行加密,對(duì)于正在使用的數(shù)據(jù)則暫時(shí)不加密,直到達(dá)到了預(yù)測(cè)條件再對(duì)這些數(shù)據(jù)進(jìn)行加密.這種加密方式主要是對(duì)主存進(jìn)行加密.其思想是區(qū)分出哪些是工作集(working set),只加密除工作集之外的剩余內(nèi)存數(shù)據(jù).這種方案需要預(yù)測(cè)處理器將會(huì)使用的數(shù)據(jù),對(duì)預(yù)測(cè)的準(zhǔn)確度有很高的要求,因此也會(huì)帶來(lái)很大的開(kāi)銷,加密技術(shù)也會(huì)有較大的延遲.

在基于加解密的數(shù)據(jù)保護(hù)方案中,密鑰的存放是一個(gè)棘手的問(wèn)題.如果把密鑰等敏感數(shù)據(jù)存放在非易失存儲(chǔ)中,當(dāng)出現(xiàn)硬件故障時(shí),這些敏感數(shù)據(jù)有被竊取的風(fēng)險(xiǎn).為了解決該問(wèn)題,文獻(xiàn)[8]提出了內(nèi)存加密控制單元(memory encryption control unit, MECU),它位于主存和二級(jí)緩存(cache)之間,用于對(duì)二級(jí)緩存和主存之間的數(shù)據(jù)傳輸進(jìn)行加解密,用于保護(hù)主存,如圖10所示.當(dāng)從主存讀取數(shù)據(jù)時(shí),首先經(jīng)過(guò)MECU解密,才能寫入二級(jí)緩存,供CPU處理.同樣,當(dāng)處理器往主存寫入數(shù)據(jù)時(shí)也要經(jīng)過(guò)MECU進(jìn)行加密.MECU對(duì)于操作系統(tǒng)和CPU是完全透明的.用來(lái)對(duì)存儲(chǔ)塊進(jìn)行加密的密鑰是來(lái)自于可移動(dòng)的授權(quán)令牌上的秘密信息(比如智能卡或其他類似的安全存儲(chǔ)設(shè)備),刪除這些令牌就會(huì)使主存中的明文變得不可讀,從而阻止了離線攻擊.

Fig. 10 A MECU-enhanced architecture[8].圖10 一個(gè)MECU增強(qiáng)的體系結(jié)構(gòu)[8]

此外,針對(duì)憶阻器的數(shù)據(jù)加密,文獻(xiàn)[32]設(shè)計(jì)了查找表操作、移位操作、模冪與模乘等基本加密操作,并以數(shù)據(jù)加密標(biāo)準(zhǔn)算法(data encryption standard, DES) 為案例進(jìn)行了完整的電路設(shè)計(jì)和綜合.在存儲(chǔ)器內(nèi)直接進(jìn)行數(shù)據(jù)加密的方式對(duì)于提高數(shù)據(jù)存儲(chǔ)的安全性同樣具有重要的意義.

2.2信息泄露

側(cè)信道攻擊(side-channel attack)是通過(guò)泄露的信息進(jìn)行攻擊的一種模式.比如,在一個(gè)加解密系統(tǒng)中,由于平臺(tái)自身的一些物理特性導(dǎo)致在加解密過(guò)程中會(huì)泄露出一些物理效應(yīng)信息(如時(shí)間、功耗、電磁輻射、聲音、錯(cuò)誤、緩存訪問(wèn)信息等),這些信息稱之為側(cè)信道信息,利用側(cè)信道信息對(duì)密碼算法和密鑰進(jìn)行分析的過(guò)程稱為側(cè)信道攻擊.

比如,在加解密系統(tǒng)中針對(duì)緩存的側(cè)信道攻擊就是利用了緩存訪問(wèn)命中和失效時(shí)的時(shí)間和能耗差異[33].在分組密碼算法中,要進(jìn)行查表操作需要訪問(wèn)緩存,其緩存訪問(wèn)特征信息可通過(guò)時(shí)間或能耗特征信息泄露出來(lái),攻擊者可采集到分組密碼算法運(yùn)行過(guò)程中泄露的緩存訪問(wèn)信息,這些訪問(wèn)信息同查找索引、明文、密文和密鑰有緊密聯(lián)系,攻擊者可以用來(lái)恢復(fù)密鑰.學(xué)術(shù)界提出了很多防止緩存攻擊的方法,尤其是如何減少由于預(yù)防攻擊所引入的開(kāi)銷.

Fig. 11 Paired page corruption during programming MLC due to unexpected power loss.圖11 MLC編程過(guò)程中異常掉電導(dǎo)致的配對(duì)頁(yè)的損壞

此外,現(xiàn)有的STT-RAM,PCM等存儲(chǔ)介質(zhì)可以在1個(gè)存儲(chǔ)單元上存放2位或3位數(shù)據(jù),稱為多層單元(multi-level cell, MLC).從物理上看,這幾個(gè)位并不是相鄰的,而是分別存放在不同的頁(yè)上,形成“頁(yè)對(duì)”(paired page).這種特性不僅帶來(lái)可靠性風(fēng)險(xiǎn),也帶來(lái)了安全隱患.因?yàn)樵趯?duì)其中的某個(gè)頁(yè)進(jìn)行編程時(shí)如果出現(xiàn)掉電,則2個(gè)頁(yè)的數(shù)據(jù)都有可能被破壞.例如,如圖11所示,在對(duì)Page 11進(jìn)行編程時(shí)出現(xiàn)掉電,由于Page 8和Page 11是一對(duì),Page 8也破壞了.重新上電后,控制器通過(guò)糾錯(cuò)碼(error correcting code, ECC)校驗(yàn)發(fā)現(xiàn)Page 8被破壞了,從而將Page 8及其后面的頁(yè)全部失效.這種問(wèn)題可以通過(guò)一致性技術(shù)加以解決.這種可靠性問(wèn)題在單層單元(single-level cell, SLC)的NVM中是不存在的,因?yàn)槊恳粋€(gè)存儲(chǔ)單元只有1位數(shù)據(jù),沒(méi)有“頁(yè)對(duì)”的問(wèn)題.

同樣,攻擊者也可以利用某一個(gè)頁(yè)的信息,獲取“頁(yè)對(duì)”的相關(guān)信息進(jìn)行攻擊,如何預(yù)防這種攻擊,還沒(méi)有更多的相關(guān)研究.

3 研究展望

3.1權(quán)限和保護(hù)機(jī)制的融合

NVM模糊了傳統(tǒng)內(nèi)存和外存之間的界限,使用單一的存儲(chǔ)介質(zhì)可以同時(shí)完成工作內(nèi)存和持久性存儲(chǔ)的雙重功能,因此,使用基于NVM的單一存儲(chǔ)系統(tǒng)得到了極大關(guān)注[34].相對(duì)傳統(tǒng)的二級(jí)存儲(chǔ)架構(gòu)而言,單一的存儲(chǔ)系統(tǒng)縮短了IO路徑,但另外一方面,也帶來(lái)了諸多挑戰(zhàn).

首先,NVM具有字節(jié)尋址特性,應(yīng)用程序可以像訪問(wèn)DRAM一樣使用loadstore接口訪問(wèn)NVM.然而,另一方面,由于持久性存儲(chǔ)介質(zhì)的管理需要通過(guò)對(duì)象來(lái)完成,以及磁盤本身的信息需要記錄和更新,這就導(dǎo)致了一些非常重要的元數(shù)據(jù)的存在.元數(shù)據(jù)在某種程度上比用戶數(shù)據(jù)更重要,因此,必須保護(hù)這些數(shù)據(jù)不要被惡意修改或不經(jīng)意修改.

另外,傳統(tǒng)的操作系統(tǒng)使用虛擬內(nèi)存管理DRAM,使用文件系統(tǒng)管理磁盤.從安全的角度看,內(nèi)存是通過(guò)保護(hù)機(jī)制實(shí)現(xiàn)的,磁盤是通過(guò)權(quán)限機(jī)制實(shí)現(xiàn)的.采用單一存儲(chǔ)介質(zhì)以后,為了最大化地發(fā)揮NVM的性能優(yōu)勢(shì),勢(shì)必需要使用loadstore接口直接訪問(wèn)NVM,繞過(guò)文件系統(tǒng),但這也帶來(lái)了很多的安全隱患,因?yàn)閼?yīng)用程序由于bug或惡意攻擊等原因更容易毀壞NVM存儲(chǔ)區(qū)域.

因此,需要重新設(shè)計(jì)針對(duì)單一的NVM存儲(chǔ)介質(zhì)的存儲(chǔ)軟件棧,包括如何更好地融合傳統(tǒng)的權(quán)限和保護(hù)等安全機(jī)制、更好地平衡安全和性能2個(gè)方面需求.

3.2非易失緩存

系統(tǒng)崩潰和異常掉電可能導(dǎo)致用戶數(shù)據(jù)和元數(shù)據(jù)之間處于不一致性狀態(tài)[35-40],傳統(tǒng)的文件系統(tǒng)采用寫前日志(write ahead logging, WAL)[41]或?qū)憰r(shí)拷貝(copy on write, COW)[42]等一致性技術(shù)來(lái)保證數(shù)據(jù)的一致性,然而這些技術(shù)都帶來(lái)了一定的開(kāi)銷,如果用于慢速存儲(chǔ)介質(zhì),開(kāi)銷所占比例不大,但如果用于NVM,則開(kāi)銷所占比重很大.

針對(duì)上述問(wèn)題,Zhao等人[43]提出使用非易失緩存以及相應(yīng)的硬件支持可以在沒(méi)有WAL和COW的情況下保證數(shù)據(jù)的一致性.此外,還有文獻(xiàn)提出所有存儲(chǔ)層次均為非易失存儲(chǔ)介質(zhì)的系統(tǒng)[14].這種系統(tǒng)帶來(lái)了存儲(chǔ)的可靠性,使得系統(tǒng)可以在掉電后得以快速啟動(dòng)和恢復(fù),減少了宕機(jī)時(shí)間,然而也帶來(lái)了一系列安全隱患.數(shù)據(jù)在緩存上也是非易失的,增加了敏感數(shù)據(jù)被竊取的風(fēng)險(xiǎn);程序的執(zhí)行狀態(tài)也是非易失的,增加了被惡意程序攻擊的風(fēng)險(xiǎn).

因此,對(duì)于緩存中的敏感數(shù)據(jù)(包括程序執(zhí)行狀態(tài)),仍然需要采取加密的方法進(jìn)行處理.但頻繁加解密會(huì)帶來(lái)很大開(kāi)銷,如何降低開(kāi)銷有待進(jìn)一步研究,比如,可以考慮只在敏感數(shù)據(jù)從緩存寫回到內(nèi)存時(shí)進(jìn)行加密.對(duì)于不敏感數(shù)據(jù),則無(wú)需加密.

3.3易失性的NVM

NVM同時(shí)具有傳統(tǒng)DRAM和硬盤的雙重特性,可以用一種NVM存儲(chǔ)介質(zhì)同時(shí)替換DRAM和硬盤.但是,由于程序代碼靜止存放和動(dòng)態(tài)運(yùn)行時(shí)的布局完全不同,甚至?xí)卸鄠€(gè)實(shí)例,因此,存儲(chǔ)介質(zhì)雖然是一樣的,但還是要區(qū)分哪些作為工作內(nèi)存,哪些作為持久性存儲(chǔ).

另外,非易失存儲(chǔ)介質(zhì)雖然具有非易失性,但它的保持時(shí)間(retention time)與寫加速比(write speedup)密切相關(guān)[10].如表4所示.利用這個(gè)特性,可以減少NVM的保持時(shí)間,降低數(shù)據(jù)在NVM作為工作內(nèi)存時(shí)被竊取的風(fēng)險(xiǎn).通常情況下,工作內(nèi)存中的數(shù)據(jù)要么是臨時(shí)性數(shù)據(jù),要么是處于非一致性狀態(tài)的數(shù)據(jù),最終的數(shù)據(jù)都要寫回到持久性存儲(chǔ)介質(zhì)中,因此,作為工作內(nèi)存時(shí),其保持時(shí)間不需要太長(zhǎng),可以設(shè)定為幾小時(shí).如果工作內(nèi)存中的數(shù)據(jù)因超過(guò)保持時(shí)間而丟失,可以從持久性存儲(chǔ)中再次讀取,但要注意數(shù)據(jù)的及時(shí)同步避免數(shù)據(jù)的不一致性.降低保持時(shí)間,不僅降低了安全風(fēng)險(xiǎn),還加快了寫入速度,降低了寫功耗,可謂是一舉多得.

Table 4Write Speedup Factors with Different Retention

Guarantees[10]

表4 保持時(shí)間與寫加速比之間的對(duì)應(yīng)關(guān)系[10]

更進(jìn)一步,也可以對(duì)持久性存儲(chǔ)區(qū)域進(jìn)行更細(xì)粒度的控制,比如,某些數(shù)據(jù)需要持久化,但保持時(shí)間不需要太長(zhǎng),最為典型的就是事務(wù)機(jī)制中的日志[44]以及分布式存儲(chǔ)中的多數(shù)據(jù)副本.針對(duì)這些數(shù)據(jù),可以選擇一個(gè)合適的保持時(shí)間.

3.4程序安全

重啟是強(qiáng)大的恢復(fù)工具[45],重啟后,DRAM中的數(shù)據(jù)就全部丟棄了,其中也包括損壞的數(shù)據(jù),然后從持久性存儲(chǔ)介質(zhì)中讀取數(shù)據(jù)重建DRAM.

由于程序代碼魯棒性的原因,可能因一些代碼缺陷引起DRAM損壞,盡管這種損壞很少遇到.如果出現(xiàn)的話,可能導(dǎo)致應(yīng)用程序崩潰或操作系統(tǒng)崩潰,通過(guò)重啟可以解決該問(wèn)題.如同DRAM,NVM同樣會(huì)遭受損壞,然而由于其非易失,重啟后問(wèn)題仍然存在.

另外,應(yīng)用程序可以直接讀寫NVM,這就要求應(yīng)用程序在必要時(shí)必須顯式地將數(shù)據(jù)從CPU的高速緩存刷回到NVM中,如果失敗的話,可能導(dǎo)致NVM上一些數(shù)據(jù)結(jié)構(gòu)的損壞,而這種情況很少發(fā)生,因此,測(cè)試的難度很大.

此外,一個(gè)進(jìn)程的多個(gè)線程之間也需要數(shù)據(jù)的隔離和保護(hù),傳統(tǒng)的處理器是通過(guò)內(nèi)存一致性模型(memory consistency model)來(lái)保證程序執(zhí)行的正確性,但這種模型只需要保證數(shù)據(jù)以程序的順序?qū)懭氲綄?duì)所有處理器核可見(jiàn)的共享區(qū)域,如最后一級(jí)緩存(last level cache, LLC)、DRAM即可.數(shù)據(jù)的持久化是由文件系統(tǒng)完成的,傳統(tǒng)的文件系統(tǒng)(如ext4)中只有一個(gè)單一的IO隊(duì)列,不存在并發(fā)問(wèn)題.使用NVM替換DRAM和HDD之后,為了提升程序的性能,目前學(xué)術(shù)界普遍主張旁路文件系統(tǒng),由應(yīng)用程序直接將數(shù)據(jù)寫入到持久化存儲(chǔ)中,因此,實(shí)際上隱含著將傳統(tǒng)的內(nèi)存一致性模型延伸到持久化存儲(chǔ)介質(zhì)中.必須設(shè)計(jì)更魯棒的編程模型和存儲(chǔ)軟件棧保證數(shù)據(jù)正確地、原子性地寫入到持久性存儲(chǔ)介質(zhì)中.

4 結(jié)  論

大數(shù)據(jù)處理、類腦計(jì)算等都對(duì)存儲(chǔ)提出了更高的要求.以相變存儲(chǔ)器為代表的各種新型非易失存儲(chǔ)技術(shù)的不斷成熟,給新型計(jì)算機(jī)體系結(jié)構(gòu)的設(shè)計(jì)帶來(lái)了難得的機(jī)遇.新型存儲(chǔ)介質(zhì)同時(shí)具有字節(jié)尋址特性和非易失特性,因此,可以替代高速緩存、主存和外存,也可以與傳統(tǒng)的存儲(chǔ)介質(zhì)混合使用,系統(tǒng)架構(gòu)設(shè)計(jì)師可以根據(jù)應(yīng)用的需求進(jìn)行多種組合.

然而,NVM的應(yīng)用也帶來(lái)了3個(gè)巨大挑戰(zhàn):1)針對(duì)慢速存儲(chǔ)介質(zhì)設(shè)計(jì)的傳統(tǒng)存儲(chǔ)軟件棧需要重新設(shè)計(jì),讓應(yīng)用程序可以通過(guò)loadstore接口直接訪問(wèn)NVM,繞過(guò)冗長(zhǎng)的基于文件系統(tǒng)的IO訪問(wèn)路徑,以發(fā)揮出NVM的低延遲優(yōu)勢(shì);2)由于應(yīng)用程序可以直接以訪問(wèn)主存的方式訪問(wèn)NVM以及非易失存儲(chǔ)介質(zhì)普遍存在的寫入次數(shù)有限等問(wèn)題,需要采取措施防止不經(jīng)意寫操作、提高元數(shù)據(jù)安全以及預(yù)防磨損惡意攻擊;3)由于NVM具有非易失特性,在作為高速緩存和工作內(nèi)存時(shí),斷電后存放在上面的信息仍然存在,因此,需要采取措施防止持久化內(nèi)存泄漏、非易失指針、數(shù)據(jù)保護(hù)及泄露等問(wèn)題.

NVM的安全與隱私保護(hù)是個(gè)系統(tǒng)工程,跨越多個(gè)層級(jí).1)硬件層,如防止磨損攻擊;2)操作系統(tǒng)層,要求設(shè)計(jì)靈活并且安全的文件訪問(wèn)接口,防止不經(jīng)意的寫操作,防止元數(shù)據(jù)的隨意修改;3)編程模型層,需要編寫魯棒、安全的應(yīng)用程序.

新型非易失存儲(chǔ)介質(zhì)還處于實(shí)驗(yàn)研究階段,雖然存在讀寫不對(duì)稱、寫入次數(shù)有限等不足,但其存儲(chǔ)密度高、功耗低、低延遲、非易失、字節(jié)尋址等特性,足以讓計(jì)算機(jī)架構(gòu)設(shè)計(jì)師興奮不已.學(xué)術(shù)界和企業(yè)界都在進(jìn)行緊鑼密鼓的研究,新型存儲(chǔ)介質(zhì)的軟件生態(tài)系統(tǒng)基本成熟.

可以預(yù)見(jiàn),隨著器件技術(shù)的成熟、支撐軟件的完善、芯片成本的降低,新型存儲(chǔ)介質(zhì)必將顛覆現(xiàn)有的多級(jí)存儲(chǔ)層次架構(gòu),在保證可靠性、安全隱私足夠魯棒的前提下以更高的性能服務(wù)于大數(shù)據(jù)處理和類腦計(jì)算.

[1]Sterling T, Brodowicz M, Gilmanov T. Towards brain-inspired system architectures[C]Proc of Int Workshop on Brain-Inspired Computing. Berlin: Springer, 2013: 159-170[2]Balasubramonian R, Chang J, Manning T, et al. Near-data processing: Insights from a MICRO-46 workshop[J]. IEEE Micro, 2014, 34(4): 36-42[3]Zhang Hongbin, Fan Jie, Shu Jiwu, et al. Summary of storage system and technology based on phase change memory[J]. Journal of Computer Research and Development, 2014, 51(8): 1647-1662 (in Chinese) (張鴻斌, 范捷, 舒繼武, 等. 基于相變存儲(chǔ)器的存儲(chǔ)系統(tǒng)與技術(shù)綜述[J]. 計(jì)算機(jī)研究與發(fā)展, 2014, 51(8): 1647-1662)[4]Mao Wei, Liu Jingning, Tong Wei, et al. A review of storage technology research based on phase change memory[J]. Chinese Journal of Computers, 2015, 38(5): 944-960 (in Chinese)(冒偉, 劉景寧, 童薇, 等. 基于相變存儲(chǔ)器的存儲(chǔ)技術(shù)研究綜述[J]. 計(jì)算機(jī)學(xué)報(bào), 2015, 38(5): 944-960)[5]Strukov D B, Snider G S, Stewart D R, et al. The missing memristor found[J]. Nature, 2008, 453(7191): 80-83[6]HP Labs. The machine: A new kind of computer[EBOL]. [2015-06-10]. http:www.hpl.hp.comresearchsystems-researchthemachine[7]Swanson S, Caulfield A M. Refactor, reduce, recycle: Restructuring the IO stack for the future of storage[J]. Computer, 2013, 46(8): 52-59[8]Enck W, Butler K, Richardson T, et al. Defending against attacks on main memory persistence[C]Proc of Computer Security Applications Conf. Piscataway, NJ: IEEE, 2008: 65-74[9]Halderman J A, Schoen S D, Heninger N, et al. Lest we remember: Cold-boot attacks on encryption keys[J]. Communications of the ACM, 2009, 52(5): 91-98[10]Liu R S, Shen D Y, Yang C L, et al. NVM duet: Unified working memory and persistent store architecture[J]. ACM SIGPLAN Notices, 2014, 49(4): 455-470[11]Volos H, Swift M. Storage systems for storage-class memory[C]Proc of Annual Non-Volatile Memories Workshop (NVMW’11). Piscataway, NJ: IEEE, 2011[12]Volos H, Tack A J, Swift M M. Mnemosyne: Lightweight persistent memory[J]. ACM SIGPLAN Notices, 2011, 46(3): 91-104[13]Moraru I, Andersen D G, Kaminsky M, et al. Consistent, durable, and safe memory management for byte-addressable non volatile main memory[C]Proc of the 1st ACM SIGOPS Conf on Timely Results in Operating Systems. New York: ACM, 2013: 1-17[14]Caulfield A M, Mollov T I, Eisner L A, et al. Providing safe, user space access to fast, solid state disks[J]. ACM SIGARCH Computer Architecture News, 2012, 40(1): 387-400[15]Dulloor S R, Kumar S, Keshavamurthy A, et al. System software for persistent memory[C]Proc of the 9th European Conf on Computer Systems. New York: ACM, 2014: 15[16]Chen F, Mesnier M P, Hahn S. A protected block device for persistent memory[C]Proc of the 30th Symp on Mass Storage Systems and Technologies. Piscataway, NJ: IEEE, 2014: 1-12[17]Volos H, Nalli S, Panneerselvam S, et al. Aerie: Flexible file-system interfaces to storage-class memory[C]Proc of the 9th European Conf on Computer Systems. New York: ACM, 2014: 14[18]Chhabra S, Solihin Y. Defining anomalous behavior for phase change memory[C]Proc of Workshop on the Use of Emerging Storage and Memory Technologies, Held in Conjunction with HPCA. Piscataway, NJ: IEEE, 2010: 1-7[19]Qureshi M K, Karidis J, Franceschini M, et al. Enhancing lifetime and security of PCM-based main memory with start-gap wear leveling[C]Proc of the 42nd Annual IEEEACM Int Symp on Microarchitecture. New York: ACM, 2009: 14-23[20]Seong N H, Woo D H, Lee H H S. Security refresh: Protecting phase-change memory against malicious wear out[J]. IEEE Micro, 2011, 31(1): 119-127[21]Qureshi M K, Seznec A, Lastras L, et al. Practical and secure PCM systems by online detection of malicious write streams[C]Proc of the 17th Int Symp on High Performance Computer Architecture. Piscataway, NJ: IEEE, 2011: 478-489[22]Yun J, Lee S, Yoo S. Bloom filter-based dynamic wear leveling for phase-change RAM[C]Proc of the Conf on Design, Automation and Test in Europe, New York: ACM, 2012: 1513-1518[23]Seznec A. A phase change memory as a secure main memory[J]. Computer Architecture Letters, 2010, 9(1): 5-8[24]Coburn J, Caulfield A M, Akel A, et al. NV-Heaps: Making persistent objects fast and safe with next-generation, non-volatile memories[J]. ACM SIGARCH Computer Architecture News, 2011, 39(1): 105-118[25]SNIA Technical Position. NVM programming model (NPM)[EBOL]. (2013-12-21) [2015-06-10]. http:snia.orgsitesdefaultfilesNVMProgrammingModel_v1.pdf[26]Farrow R. Interview with steve swanson[J]. ;login:, 2015, 40(1): 15-17[27]Bailey K, Ceze L, Gribble S D, et al. Operating system implications of fast, cheap, non-volatile memory[C]Proc of the 13th USENIX Conf on Hot Topics in Operating Systems. Berkeley, CA:USENIX Association, 2011: 2-6[28]Badam A. How persistent memory will change software systems[J]. Computer, 2013, 46(8): 45-51[29]Young V, Nair P J, Qureshi M K. DEUCE: Write-efficient encryption for non-volatile memories[C]Proc of the 20th Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2015: 33-44[30]Kong J, Zhou H. Improving privacy and lifetime of PCM-based main memory[C]Proc of IEEEIFIP Int Conf on Dependable Systems and Networks. Piscataway, NJ: IEEE, 2010: 333-342[31]Chhabra S, Solihin Y. i-NVMM: A secure non-volatile main memory system with incremental encryption[C]Proc of the 38th Annual Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2011: 177-188[32]Zhu Xuan. Memristor-based storage encryption architecture technology[D]. Changsha: National University of Defense Technology, 2014 (in Chinese)(朱玄. 基于憶阻器的存儲(chǔ)加密體系結(jié)構(gòu)技術(shù)[D]. 長(zhǎng)沙: 國(guó)防科學(xué)技術(shù)大學(xué), 2014)[33]Kong J, Aciicmez O, Seifert J P, et al. Architecting against software cache-based side-channel attacks[J]. IEEE Trans on Computers, 2013, 62(7): 1276-1288[34]Meza J, Luo Y, Khan S, et al. A case for efficient hardware-software cooperative management of storage and memory[C]Proc of the 5th Workshop on Energy-Efficient Design (WEED). Piscataway, NJ: IEEE, 2013: 1-7[35]Kadav A, Renzelmann M J, Swift M M. Tolerating hardware device failures in software[C]Proc of the 22nd ACM SIGOPS Symp on Operating Systems Principles. New York: ACM, 2009: 59-72[36]Pillai T S, Chidambaram V, Alagappan R, et al. All file systems are not created equal: On the complexity of crafting crash-consistent applications[C]Proc of the 11th USENIX Symp on Operating Systems Design and Implementation. Berkeley, CA:USENIX Association, 2014: 1-16[37]Chidambaram V, Sharma T, Arpaci-Dusseau A C, et al. Consistency without ordering[C]Proc of the 10th USENIX Conf on File and Storage Technologies. Berkeley, CA:USENIX Association, 2012: 9-24[38]Jose J, Banikazemi M, Belluomini W, et al. MetaData persistence using storage class memory: Experiences with flash-backed DRAM[C]Proc of the 1st Workshop on Interactions of NVMFLASH with Operating Systems and Workloads. New York: ACM, 2013: 3-9[39]Narayanan D, Hodson O. Whole-system persistence[J]. ACM SIGARCH Computer Architecture News, 2012, 40(1): 401-410[40]Fryer D, Sun K, Mahmood R, et al. Recon: Verifying file system consistency at runtime[J]. ACM Trans on Storage, 2012, 8(4): 15-27[41]Hagmann R. Reimplementing the cedar file system using logging and group commit[C]Proc of the Symp on Operating Systems Principles. New York: ACM, 1987: 155-162[42]Rosenblum M, Ousterhout J K. The design and implementation of a log-structured file system[J]. ACM Trans on Computer Systems, 1992, 10(1): 26-52[43]Zhao J, Li S, Yoon D H, et al. Kiln: Closing the performance gap between systems with and without persistence support[C]Proc of the 46th Annual IEEEACM Int Symp on Microarchitecture. New York: ACM, 2013: 421-432[44]Sun L, Lu Y, Shu J. DP2: Reducing transaction overhead with differential and dual persistency in persistent memory[C]Proc of the 12th ACM Int Conf on Computing Frontiers. New York: ACM, 2015: 24

[45]Bridge B. NVM support for C applications[EBOL]. (2015-01-20) [2015-06-10]. http:www.snia.orgsitesdefaultfilesBillBridgeNVMSummit2015Slides.pdf

Xu Yuanchao, born in 1975. PhD and assistant professor since 2005, postgraduate supervisor since 2013, at the College of Information Engineering, Capital Normal University, China. Member of China Computer Federation. His main research interests include computer architecture and operating system.

Yan Junfeng, born in 1991. Master candidate. Her main research interests include system software for non-volatile memory.

Wan Hu, born in 1991. Master candidate. Student member of China Computer Federation. His main research interests include system software for non-volatile memory.

Sun Fengyun, born in 1989. Master. Student member of China Computer Federation. Her main research interests include system software for non-volatile memory.

Zhang Weigong, born in 1967. PhD, professor and PhD supervisor. Senior member of China Computer Federation. His main research interests include embedded computer architecture, fault tolerance.

Li Tao, born in 1972. Full professor in the Department of Electrical and Computer Engineering at the University of Florida. Received his PhD degree in computer engineering from the University of Texas at Austin. Member of ACM and IEEE. His main research interests include computer architecture, the impacts of emerging technologiesapplications on computing.

A Survey on Security and Privacy of Emerging Non-Volatile Memory

Xu Yuanchao1,2, Yan Junfeng1, Wan Hu1, Sun Fengyun1, Zhang Weigong1, and Li Tao3

1(CollegeofInformationEngineering,CapitalNormalUniversity,Beijing100048)2(StateKeyLaboratoryofComputerArchitecture(InstituteofComputingTechnology,ChineseAcademyofSciences),Beijing100190)3(DepartmentofElectricalandComputerEngineering,UniversityofFlorida,Gainesville,Florida,USA32611)

In recent years, emerging non-volatile memory (NVM) technologies, such as phase change memory (PCM), spin-transfer torque RAM (STT-RAM), and memristor have gained great attention of researchers. NVM has both byte-addressable and non-volatile features, thereby making it possible to replace both traditional main memory and persistent storage. Also, NVM can be used in hybrid memory and storage architecture. Due to the advantages of low latency, high density, and low power, NVM has become the promising memory technology because of the effect of alleviating memory wall problem. However, applications can access NVM directly through ordinary loadstore interface, and more important, data resided in the NVM still retains after power loss, thus it imposes new challenges of security and privacy. This paper surveys several security problems about NVM and existing solutions including persistent memory leak, stray writes, metadata security, malicious wearout attacks, and non-volatile pointer. Then, privacy issues and existing studies about NVM, such as data protection and information leaks, are discussed. Finally, we explore other potential security and privacy issues related to NVM and propose several possible solutions, such as convergence of permission and protection, security of non-volatile cache, volatile NVM, and program security.

memory leak; non-volatile memory (NVM); security; privacy; wearout attack; stray write

2015-06-16;

2015-08-26

國(guó)家自然科學(xué)基金項(xiàng)目(61472260,61402302);北京市自然科學(xué)基金項(xiàng)目(4143060);計(jì)算機(jī)體系結(jié)構(gòu)國(guó)家重點(diǎn)實(shí)驗(yàn)室開(kāi)放課題(CARCH201503)

This work was supported by the the National Natural Science Foundation of China (61472260,61402302), Beijing Municipal Natural Science Foundation (4143060), and the Project Funded by the State Key Laboratory of Computer Architecture of China (CARCH201503).

TP309; TP333

猜你喜歡
失性存儲(chǔ)介質(zhì)指針
面向非易失性內(nèi)存的持久索引數(shù)據(jù)結(jié)構(gòu)研究綜述
一種面向非易失性內(nèi)存文件系統(tǒng)的數(shù)據(jù)讀寫粒度控制策略
偷指針的人
檔案館移動(dòng)存儲(chǔ)介質(zhì)管理方法探討
為什么表的指針都按照順時(shí)針?lè)较蜣D(zhuǎn)動(dòng)
一種使用存儲(chǔ)介質(zhì)驅(qū)動(dòng)的方式
非易失性納米晶存儲(chǔ)器的研究
詩(shī)性
——史性——失性——試論《白鹿原》及其話劇和電影改編
大眾文藝(2016年7期)2016-01-27 11:18:22
基于改進(jìn)Hough變換和BP網(wǎng)絡(luò)的指針儀表識(shí)別
硬盤
CHIP新電腦(2015年3期)2015-04-02 11:28:15
灵台县| 吐鲁番市| 天津市| 吉木乃县| 水富县| 德惠市| 上思县| 邯郸县| 大庆市| 墨脱县| 皋兰县| 交城县| 响水县| 噶尔县| 嘉峪关市| 育儿| 海原县| 治多县| 武隆县| 沾化县| 怀集县| 桦甸市| 拉萨市| 蒙城县| 千阳县| 富锦市| 邻水| 武邑县| 桂林市| 静宁县| 拜泉县| 金山区| 饶平县| 西盟| 临安市| 婺源县| 高密市| 会昌县| 方山县| 维西| 瑞丽市|