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

?

面向安全持久性內(nèi)存的元數(shù)據(jù)協(xié)同管理方法

2022-11-12 11:28:44魏學(xué)亮楊明順劉景寧肖仁智
計(jì)算機(jī)研究與發(fā)展 2022年11期
關(guān)鍵詞:分片計(jì)數(shù)器結(jié)點(diǎn)

魏學(xué)亮 楊明順 馮 丹,2 劉景寧,2 吳 兵 肖仁智 童 薇,2

1(武漢光電國家研究中心(華中科技大學(xué)) 武漢 430074) 2(華中科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 武漢 430074)

近年來,新型非易失存儲(chǔ)器(non-volatile memory, NVM),例如自旋轉(zhuǎn)移矩磁阻式隨機(jī)存取存儲(chǔ)器(spin-torque transfer RAM, STT-RAM)[1]、相變存儲(chǔ)器(phase change memory, PCM)[2]、電阻式隨機(jī)存取存儲(chǔ)器(resistive RAM, ReRAM)[3],受到來自學(xué)術(shù)界和工業(yè)界越來越多的關(guān)注.相比傳統(tǒng)存儲(chǔ)設(shè)備,例如機(jī)械硬盤(hard disk drive, HDD)和固態(tài)硬盤(solid state drive, SSD),NVM具有訪問延遲低、字節(jié)可尋址的優(yōu)點(diǎn).相比傳統(tǒng)DRAM內(nèi)存,NVM具有存儲(chǔ)密度高、靜態(tài)功耗低、非易失的優(yōu)點(diǎn).這些優(yōu)點(diǎn)使得NVM可以被放置在內(nèi)存總線上作為持久性內(nèi)存(persistent memory, PM)使用.PM允許應(yīng)用直接通過訪存指令,而不用經(jīng)過傳統(tǒng)存儲(chǔ)棧訪問持久化數(shù)據(jù),從而減少持久化數(shù)據(jù)訪問開銷.

目前使用NVM構(gòu)建高效安全的PM系統(tǒng)依然面臨諸多挑戰(zhàn).首先,PM系統(tǒng)需要保證數(shù)據(jù)的安全性.現(xiàn)有研究工作表明,內(nèi)存系統(tǒng)容易遭受惡意攻擊影響[4-5],例如總線監(jiān)聽、內(nèi)存竊取、重放攻擊.攻擊者可以通過未授權(quán)讀寫操作獲取或篡改內(nèi)存中重要數(shù)據(jù).為防止攻擊者獲取內(nèi)存中的數(shù)據(jù),需要對數(shù)據(jù)進(jìn)行加密.一種被廣泛使用的加密技術(shù)為計(jì)數(shù)器模式加密(counter-mode encryption)[6-9].該加密技術(shù)為每個(gè)數(shù)據(jù)塊維護(hù)1個(gè)加密計(jì)數(shù)器,用于計(jì)算加密所需的一次性填充數(shù)據(jù)(one-time pad, OTP).為防止攻擊者篡改內(nèi)存中數(shù)據(jù),需要對數(shù)據(jù)進(jìn)行完整性保護(hù).常用的完整性保護(hù)技術(shù)包括在加密計(jì)數(shù)器上建立的完整性檢測樹[5,10],以及根據(jù)數(shù)據(jù)塊和計(jì)數(shù)器生成的消息鑒別碼(message authentication code, MAC)[5].

其次,PM系統(tǒng)需要解決NVM寫性能和耐久性較差的問題.近期研究工作表明,NVM的寫延遲約為讀延遲的3~8倍[11],并且耐久性僅為107~108次寫操作[12].為了減少寫延遲并提升壽命,位級(jí)寫縮減技術(shù)[13-14]被廣泛應(yīng)用于未加密NVM,以減少數(shù)據(jù)寫入NVM時(shí)造成的位翻轉(zhuǎn)(即0變1或1變0).然而,由于加密算法的雪崩效應(yīng)[6,8,11,15],這些位級(jí)寫縮減技術(shù)不適用于加密NVM.因此,近期研究工作提出選擇重加密策略[6,8],以優(yōu)化加密NVM的寫操作.這類策略將數(shù)據(jù)塊劃分為細(xì)粒度的數(shù)據(jù)片,并為每個(gè)數(shù)據(jù)片維護(hù)局部計(jì)數(shù)器,用于在數(shù)據(jù)寫回NVM時(shí)僅重新加密并寫入被修改的數(shù)據(jù)片.

為解決使用NVM構(gòu)建PM系統(tǒng)的各種挑戰(zhàn),多種元數(shù)據(jù)被引入到PM系統(tǒng)中,例如加密計(jì)數(shù)器、完整性檢測樹、MAC、局部計(jì)數(shù)器.如果將這些元數(shù)據(jù)獨(dú)立存放在NVM中不同區(qū)域,則會(huì)顯著增加NVM訪問開銷.例如,從NVM讀取1個(gè)數(shù)據(jù)塊時(shí),不僅需要讀取加密計(jì)數(shù)器和局部計(jì)數(shù)器對數(shù)據(jù)塊解密,還需要讀取完整性檢測樹和MAC進(jìn)行完整性驗(yàn)證.為加速元數(shù)據(jù)的訪問,許多研究工作在處理器中添加片上元數(shù)據(jù)緩存[7,11].然而,元數(shù)據(jù)緩存只能緩存小部分元數(shù)據(jù).當(dāng)緩存不命中時(shí),依然需要從NVM中讀取元數(shù)據(jù),從而造成額外的NVM訪問開銷.因此,近期研究工作提出各類元數(shù)據(jù)管理方法[7,10,16-17],以減小元數(shù)據(jù)訪問造成的開銷.

然而,我們發(fā)現(xiàn)現(xiàn)有的元數(shù)據(jù)管理方法僅考慮部分元數(shù)據(jù),依然存在較大的元數(shù)據(jù)訪問開銷.例如,MorphCtr[7]未針對寫性能和耐久性相關(guān)元數(shù)據(jù)進(jìn)行優(yōu)化,使得數(shù)據(jù)塊訪問依然需要在關(guān)鍵路徑上等待這些元數(shù)據(jù)的讀取.具體地,當(dāng)其與選擇重加密策略Nacre[8]協(xié)同工作時(shí),我們通過實(shí)驗(yàn)觀察到17.3%的性能開銷和59.6%的額外NVM訪問,并且額外訪問中68.4%為對寫性能和耐久性相關(guān)元數(shù)據(jù)的訪問.此外,我們通過實(shí)驗(yàn)還發(fā)現(xiàn),對于不同應(yīng)用,數(shù)據(jù)塊中不同字節(jié)存在不同修改頻率,并且修改頻率存在一定規(guī)律.然而,現(xiàn)有的選擇重加密策略采用的靜態(tài)數(shù)據(jù)分片策略無法充分利用這些規(guī)律,從而在數(shù)據(jù)塊寫入NVM時(shí)造成額外的位翻轉(zhuǎn).

為解決上述問題,本文提出一種面向安全PM的元數(shù)據(jù)協(xié)同管理方法(coordinated metadata man-agement for secure PM, COTANA).為減少元數(shù)據(jù)訪問開銷,COTANA將相同數(shù)據(jù)塊的寫性能和耐久性相關(guān)的元數(shù)據(jù)與加密計(jì)數(shù)器整合在相同元數(shù)據(jù)塊中,使得元數(shù)據(jù)緩存未命中時(shí)僅需1次額外的NVM訪問就可以獲取加解密所需的全部元數(shù)據(jù).COTANA基于上述元數(shù)據(jù)塊建立完整性檢測樹,并利用完整性檢測樹優(yōu)化策略[7,10]減小存儲(chǔ)開銷,從而增加元數(shù)據(jù)緩存命中率,進(jìn)而減少額外的NVM訪問.此外,COTANA采用ECC(error-correcting code)內(nèi)存架構(gòu)組織PM,并將MAC存放在ECC芯片中,使MAC訪問可以與數(shù)據(jù)塊訪問并行執(zhí)行,從而避免MAC訪問造成的延遲.為減少寫開銷并提升NVM壽命,我們根據(jù)數(shù)據(jù)塊中字節(jié)修改頻率的規(guī)律設(shè)計(jì)一種聚集分片方法.COTANA采用動(dòng)態(tài)數(shù)據(jù)分片策略,從聚集分片方法和現(xiàn)有的連續(xù)分片方法中動(dòng)態(tài)地選擇造成位翻轉(zhuǎn)最少的方法,從而減少位翻轉(zhuǎn).

本文的主要貢獻(xiàn)有3個(gè)方面:

1) 觀察發(fā)現(xiàn)真實(shí)應(yīng)用所修改的數(shù)據(jù)塊中,不同字節(jié)有著不同修改頻率,且修改頻率存在規(guī)律.根據(jù)此規(guī)律提出一種聚集分片方法,以減少位翻轉(zhuǎn).

2) 提出一種面向安全PM的元數(shù)據(jù)協(xié)同管理方法COTANA,通過精心組織各類元數(shù)據(jù)減少元數(shù)據(jù)訪問開銷,通過動(dòng)態(tài)數(shù)據(jù)分片策略減少寫開銷并提升NVM壽命.

3) 在Gem5[18]上對COTANA進(jìn)行實(shí)驗(yàn)測試.測試結(jié)果顯示,與采用最新的元數(shù)據(jù)管理方法[7]和選擇重加密策略[8]的系統(tǒng)相比,COTANA最多能提升13.7%的性能,并減少21.3%的位翻轉(zhuǎn).

1 背景及動(dòng)機(jī)

1.1 新型非易失存儲(chǔ)器

過去幾十年以來,DRAM一直是計(jì)算機(jī)系統(tǒng)內(nèi)存的首選.然而,近期DRAM的發(fā)展面臨工藝尺寸難以進(jìn)一步縮小的難題[19].因此,NVM獲得來自學(xué)術(shù)界和工業(yè)界越來越多的關(guān)注.表1列舉了DRAM和典型NVM器件的主要特征對比.NVM有著非易失性以及接近DRAM的讀延遲,但是寫延遲遠(yuǎn)高于讀延遲,并且寫耐久性遠(yuǎn)低于DRAM.因此,NVM可以放置在內(nèi)存總線上作為PM使用,但是需要解決NVM寫延遲高和耐久性差的問題.

Table 1 Comparison of Characteristics Between DRAM and NVM Devices[20]

1.2 威脅模型

內(nèi)存系統(tǒng)容易遭受多種惡意攻擊的威脅,導(dǎo)致重要數(shù)據(jù)被攻擊者獲取或篡改[4-5,21].此外,相比易失的DRAM,PM在系統(tǒng)斷電后依然能長時(shí)間保存數(shù)據(jù),使得PM系統(tǒng)面臨著更為嚴(yán)峻的安全問題.

本文基于圖1所示的威脅模型研究PM系統(tǒng)的安全問題.該模型已在許多研究工作中被廣泛使用[7-11,16,21-23].在該模型中,處理器為可信計(jì)算基(trusted computing base, TCB),即所有處理器片上組件(例如核心內(nèi)的寄存器、緩存、內(nèi)存控制器)均位于安全區(qū)域,無法被攻擊者竊取或篡改.而所有的處理器片外資源均位于非安全區(qū)域.攻擊者可以監(jiān)聽或篡改內(nèi)存總線上傳輸?shù)臄?shù)據(jù),也可以讀取或修改PM中的數(shù)據(jù).本文不考慮推測執(zhí)行攻擊[24]、側(cè)信道攻擊[25]等攻擊方式.這些攻擊方式可以通過現(xiàn)有研究工作提出的方法[24-25]進(jìn)行防御,并且這些研究工作與本文是正交的.

Fig. 1 Threat model圖1 威脅模型

1.3 計(jì)數(shù)器模式加密

為防止攻擊者從內(nèi)存總線或PM竊取數(shù)據(jù),處理器需要在向PM發(fā)送數(shù)據(jù)前對數(shù)據(jù)進(jìn)行加密.而計(jì)數(shù)器模式加密[6-11]是目前被廣泛使用的加密技術(shù)之一.如圖2所示,計(jì)數(shù)器模式加密在PM中為每個(gè)緩存行大小的數(shù)據(jù)塊維護(hù)1個(gè)加密計(jì)數(shù)器,并在每次將數(shù)據(jù)塊從緩存寫回PM時(shí)增加計(jì)數(shù)器的值.執(zhí)行加密時(shí),首先將密鑰、緩存行地址、加密計(jì)數(shù)器輸入加密引擎,例如高級(jí)加密標(biāo)準(zhǔn)(advanced encryption standard, AES)加密引擎;然后,加密引擎根據(jù)輸入數(shù)據(jù)生成OTP;最后,將OTP與緩存行異或得到密文,并將密文發(fā)送給PM.執(zhí)行解密時(shí),首先生成OTP并同時(shí)從PM中讀取密文,再通過將OTP與密文異或得到明文.

Fig. 2 Counter-mode encryption圖2 計(jì)數(shù)器模式加密

1.4 完整性檢測

為防止攻擊者篡改內(nèi)存總線上或PM中的數(shù)據(jù),需要采用完整性檢測技術(shù)保證數(shù)據(jù)的完整性.一種被廣泛使用的完整性檢測技術(shù)是MAC[5,16,21].如圖3所示,將數(shù)據(jù)、密鑰、地址、加密計(jì)數(shù)器作為加密Hash函數(shù)(例如AES-GCM[26])的輸入可計(jì)算得到MAC.當(dāng)數(shù)據(jù)寫回PM時(shí),算出的MAC和數(shù)據(jù)一同寫回PM.而當(dāng)數(shù)據(jù)讀出PM時(shí),重新計(jì)算MAC,并將算出的MAC和PM中存儲(chǔ)的MAC進(jìn)行比較,如果兩者不相同,則數(shù)據(jù)或加密計(jì)數(shù)器被篡改.

Fig. 3 Data integrity verification with MAC圖3 通過MAC驗(yàn)證數(shù)據(jù)完整性

然而,僅靠MAC無法完全保證數(shù)據(jù)的完整性,攻擊者依然可以通過重放攻擊等方式篡改數(shù)據(jù).例如,假設(shè)PM中的初始數(shù)據(jù)為{數(shù)據(jù)0,加密計(jì)數(shù)器0,MAC0},并且正常應(yīng)用將其更新為{數(shù)據(jù)1,加密計(jì)數(shù)器1,MAC1}.如果攻擊者將數(shù)據(jù)替換為{數(shù)據(jù)0,加密計(jì)數(shù)器0,MAC0},那么僅通過MAC無法發(fā)現(xiàn)數(shù)據(jù)篡改.為解決此問題,通常將加密計(jì)數(shù)器所在的塊作為葉子結(jié)點(diǎn)構(gòu)建完整性檢測樹,例如默克爾樹[5,27]和SGX風(fēng)格的完整性檢測樹(簡稱為SGX樹)[7,10].如圖4所示,SGX樹的根結(jié)點(diǎn)存放在處理器中以防攻擊者篡改.每個(gè)結(jié)點(diǎn)塊中包含計(jì)數(shù)器和MAC.其中,MAC(例如MAC00)由結(jié)點(diǎn)塊中所有計(jì)數(shù)器(例如計(jì)數(shù)器01到計(jì)數(shù)器0x)以及父結(jié)點(diǎn)中的1個(gè)計(jì)數(shù)器(例如計(jì)數(shù)器11)作為輸入通過Hash得到.如果任意非根結(jié)點(diǎn)被篡改,則計(jì)算得到的MAC與結(jié)點(diǎn)塊中存放的MAC不匹配,從而發(fā)現(xiàn)篡改.

Fig. 4 SGX-style integrity verification tree圖4 SGX風(fēng)格的完整性檢測樹

1.5 選擇重加密

Fig. 5 Avalanche effect of encryption圖5 加密的雪崩效應(yīng)

如表1所示,相比DRAM,NVM有著較差的寫延遲和耐久性.為了優(yōu)化NVM的寫性能并提升壽命,位級(jí)寫縮減技術(shù)[13-14]被廣泛用于減少數(shù)據(jù)寫入NVM時(shí)造成的位翻轉(zhuǎn),從而增加寫并行性并減少存儲(chǔ)單元磨損.例如,F(xiàn)NW(flip-n-write)[13]在寫操作造成的位翻轉(zhuǎn)超過數(shù)據(jù)塊大小一半時(shí),先對數(shù)據(jù)塊中所有的位進(jìn)行翻轉(zhuǎn),再將發(fā)生翻轉(zhuǎn)的位寫回PM,從而將位翻轉(zhuǎn)減少至數(shù)據(jù)塊大小一半以下.然而,由于加密算法存在雪崩效應(yīng)[6,8,11,15],這些位級(jí)寫縮減技術(shù)不適用于加密NVM.雪崩效應(yīng)指,即使只修改明文中的1 b數(shù)據(jù)也會(huì)造成密文中超過半數(shù)的位發(fā)生變化.例如,如圖5所示,對于未加密NVM,數(shù)據(jù)在經(jīng)過FNW處理后僅需修改1 b數(shù)據(jù).而對于加密NVM,雪崩效應(yīng)使得無論是否經(jīng)過FNW處理均需要修改超過1 b數(shù)據(jù).

為優(yōu)化寫性能并提升壽命,一些研究工作針對加密NVM提出選擇重加密技術(shù)[6,8,28].該技術(shù)將每個(gè)數(shù)據(jù)塊劃分為細(xì)粒度的數(shù)據(jù)片,并在數(shù)據(jù)塊寫回PM時(shí)只將被修改的數(shù)據(jù)片采用新計(jì)數(shù)器重新加密并寫回.例如,如圖6所示,Nacre(8,4)[8]將數(shù)據(jù)塊劃分為大小為8 B的數(shù)據(jù)片并分配4個(gè)局部計(jì)數(shù)器.此外,為每個(gè)數(shù)據(jù)片維護(hù)2 b計(jì)數(shù)器指示器,以指示被用于加密該數(shù)據(jù)片的局部計(jì)數(shù)器.當(dāng)新數(shù)據(jù)寫回PM時(shí),首先對比新舊數(shù)據(jù)確定被修改的數(shù)據(jù)片(例如分片1,3,4),然后將新的局部計(jì)數(shù)器(例如局部計(jì)數(shù)器1)和加密計(jì)數(shù)器拼接起來對被修改的數(shù)據(jù)片進(jìn)行加密,最后僅將重加密后的數(shù)據(jù)片寫回PM.

Fig. 6 Example of selective reencryption圖6 選擇重加密示例

1.6 開銷分析

為構(gòu)建高效安全PM系統(tǒng),加密、完整性檢測、選擇重加密技術(shù)引入多種元數(shù)據(jù),例如加密計(jì)數(shù)器、MAC、完整性檢測樹、局部計(jì)數(shù)器.這些元數(shù)據(jù)分別存放在PM中的不同位置,使得在訪問PM中的數(shù)據(jù)塊時(shí)需要額外執(zhí)行多次元數(shù)據(jù)訪問操作.例如,當(dāng)從PM讀取數(shù)據(jù)塊時(shí),需要讀取加密計(jì)數(shù)器和局部計(jì)數(shù)器對數(shù)據(jù)塊進(jìn)行解密,還需要讀取MAC和完整性檢測樹來驗(yàn)證完整性.為加速元數(shù)據(jù)訪問,許多研究工作[7,11,17,22]在處理器中添加元數(shù)據(jù)緩存,并對元數(shù)據(jù)管理方法進(jìn)行優(yōu)化.例如,將每個(gè)加密計(jì)數(shù)器塊分為1個(gè)主計(jì)數(shù)器和多個(gè)大小可變的從計(jì)數(shù)器[7],從而增加每個(gè)塊存放的計(jì)數(shù)器的數(shù)量,使得元數(shù)據(jù)緩存有更高的命中率.因?yàn)镾GX樹的每個(gè)結(jié)點(diǎn)中也包含計(jì)數(shù)器,所以增加每個(gè)塊的計(jì)數(shù)器數(shù)量還可以降低樹的高度和大小,從而減少完整性檢測樹造成的開銷.

然而,現(xiàn)有的元數(shù)據(jù)管理優(yōu)化方法僅考慮部分元數(shù)據(jù).使用這些優(yōu)化方法管理加密、完整性檢測、選擇重加密技術(shù)引入的所有元數(shù)據(jù)依然存在顯著開銷.為量化此開銷,我們對元數(shù)據(jù)管理方法MorphCtr[7]和選擇重加密技術(shù)Nacre[8]進(jìn)行了實(shí)驗(yàn)分析.其中,MorphCtr允許每個(gè)塊中計(jì)數(shù)器數(shù)量根據(jù)負(fù)載需求變化,但僅針對加密和完整性檢測元數(shù)據(jù)進(jìn)行優(yōu)化.而Nacre將數(shù)據(jù)分片后使用新的局部計(jì)數(shù)器對被修改的分片重新加密,如圖6所示.實(shí)驗(yàn)中我們對4個(gè)系統(tǒng)進(jìn)行對比:MC-Only采用MorphCtr管理元數(shù)據(jù),但不執(zhí)行選擇重加密;MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4)采用MorphCtr管理元數(shù)據(jù),并采用相應(yīng)的Nacre執(zhí)行選擇重加密.如圖7(a)所示,MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4)相比MC-Only分別減少9.8%,16.8%,20.0%的位翻轉(zhuǎn),同時(shí)分別造成10.4%,12.4%,17.3%的性能下降.圖7(a)的縱軸含義中IPC表示每周期執(zhí)行的指令數(shù)(instruction per cycle, IPC).如圖7(b)所示,越細(xì)粒度的數(shù)據(jù)分片方法造成的額外內(nèi)存訪問越多.MC-Nacre(2,4)會(huì)造成59.6%的額外內(nèi)存訪問,并且額外內(nèi)存訪問中68.4%為對選擇重加密元數(shù)據(jù)的訪問.因此,性能開銷主要源于對選擇重加密元數(shù)據(jù)的訪問,而現(xiàn)有的元數(shù)據(jù)管理方法無法高效地管理加密、完整性檢測、選擇重加密技術(shù)引入的全部元數(shù)據(jù).

Fig. 7 Analysis of metadata access overhead圖7 元數(shù)據(jù)訪問開銷分析

2 COTANA元數(shù)據(jù)協(xié)同管理方法

2.1 總體架構(gòu)

為高效管理加密、完整性檢測、選擇重加密技術(shù)引入的元數(shù)據(jù),本文提出一種面向安全PM的元數(shù)據(jù)協(xié)同管理方法COTANA.圖8所示為COTANA的硬件架構(gòu).其中,NVM芯片以ECC內(nèi)存架構(gòu)組織成PM DIMM(dual inline memory module).PM DIMM的每個(gè)rank包括9顆可并行訪問的NVM芯片,其中8顆為數(shù)據(jù)芯片和1顆為ECC芯片.處理器通過內(nèi)存總線與PM相連,并通過內(nèi)存控制器控制PM執(zhí)行讀寫等操作.內(nèi)存控制器中包含1個(gè)元數(shù)據(jù)緩存.當(dāng)讀寫PM中的數(shù)據(jù)時(shí),內(nèi)存控制器首先從元數(shù)據(jù)緩存中讀取加密計(jì)數(shù)器、局部計(jì)數(shù)器等元數(shù)據(jù)對數(shù)據(jù)進(jìn)行加密或解密.如果元數(shù)據(jù)緩存未命中,則從PM中讀取相應(yīng)元數(shù)據(jù)至元數(shù)據(jù)緩存.從PM中讀取任意數(shù)據(jù)或元數(shù)據(jù)時(shí),均需要進(jìn)行完整性檢測,故完整性檢測相關(guān)元數(shù)據(jù)也需要讀取至元數(shù)據(jù)緩存.

Fig. 8 Hardware architecture of COTANA圖8 COTANA硬件架構(gòu)

2.2 元數(shù)據(jù)協(xié)同管理

基于圖8所示的硬件架構(gòu),元數(shù)據(jù)可以存放于數(shù)據(jù)芯片或ECC芯片.ECC芯片中的元數(shù)據(jù)可以與數(shù)據(jù)芯片中的數(shù)據(jù)并行訪問,從而隱藏元數(shù)據(jù)訪問延遲.然而,ECC芯片容量有限,需要確定將哪些元數(shù)據(jù)存放于ECC芯片才能最小化元數(shù)據(jù)開銷.

假設(shè)內(nèi)存總線寬度為72 b(64 b數(shù)據(jù)和8 b ECC),且數(shù)據(jù)塊大小為64 B,則讀取數(shù)據(jù)塊時(shí)可從ECC芯片并行讀取64 b元數(shù)據(jù).完整性檢測樹結(jié)點(diǎn)因?yàn)榘凑?4 B塊粒度組織,所以不適合存放于ECC芯片.加密計(jì)數(shù)器和選擇重加密元數(shù)據(jù)需要在讀取數(shù)據(jù)前緩存在元數(shù)據(jù)緩存中,使OTP生成與數(shù)據(jù)讀取并行執(zhí)行以減少解密延遲,故不適合存放于ECC芯片.而MAC的大小通常小于64 b,并且只用于在讀取數(shù)據(jù)后檢測完整性,無需與其他元數(shù)據(jù)競爭元數(shù)據(jù)緩存.此外,由于MAC相比ECC有更強(qiáng)的檢錯(cuò)能力,故可以將MAC放置在ECC芯片中代替ECC進(jìn)行檢錯(cuò),僅當(dāng)錯(cuò)誤發(fā)生時(shí)再讀取ECC進(jìn)行糾錯(cuò).ECC信息可以與MAC一同存放于ECC芯片(54 b MAC和10 b ECC信息)[7],也可以單獨(dú)放置在數(shù)據(jù)芯片中(64 b ECC信息)[16].COTANA選擇將數(shù)據(jù)塊的MAC和ECC信息一同存放于ECC芯片.

COTANA按照圖9所示結(jié)構(gòu)對于加密計(jì)數(shù)器、完整性檢測樹、選擇重加密元數(shù)據(jù)進(jìn)行組織.其中,內(nèi)部結(jié)點(diǎn)采用現(xiàn)有的完整性檢測樹優(yōu)化方法[7,10]進(jìn)行組織,而葉子結(jié)點(diǎn)采用分離計(jì)數(shù)器策略[5]組織加密計(jì)數(shù)器,以利用計(jì)數(shù)器訪問局部性提高元數(shù)據(jù)緩存命中率.分離計(jì)數(shù)器策略在每個(gè)元數(shù)據(jù)塊中存放1個(gè)主計(jì)數(shù)器和多個(gè)從計(jì)數(shù)器.每個(gè)從計(jì)數(shù)器對應(yīng)1個(gè)數(shù)據(jù)塊.每當(dāng)數(shù)據(jù)塊寫回內(nèi)存時(shí),通過主從計(jì)數(shù)器拼接得到的計(jì)數(shù)器對數(shù)據(jù)塊進(jìn)行加密,并且增加對應(yīng)從計(jì)數(shù)器的值.當(dāng)從計(jì)數(shù)器溢出時(shí),增加主計(jì)數(shù)器的值并重置該主計(jì)數(shù)器對應(yīng)的所有從計(jì)數(shù)器,同時(shí)對所有從計(jì)數(shù)器對應(yīng)的塊進(jìn)行重加密.當(dāng)主計(jì)數(shù)器溢出時(shí),需要修改加密密鑰,并對整個(gè)內(nèi)存進(jìn)行重加密.為進(jìn)一步降低元數(shù)據(jù)訪問開銷,COTANA將主從計(jì)數(shù)器與相應(yīng)的選擇重加密元數(shù)據(jù)放置在相同元數(shù)據(jù)塊中并作為完整性檢測樹的葉子結(jié)點(diǎn),使得1次訪存操作可以獲取加解密所需的全部元數(shù)據(jù).此外,COTANA將葉子結(jié)點(diǎn)的MAC也存放于ECC芯片,從而在每個(gè)葉子結(jié)點(diǎn)中為選擇重加密元數(shù)據(jù)提供更多存儲(chǔ)空間.由于COTANA通過對完整性檢測樹的葉子結(jié)點(diǎn)(即加密計(jì)數(shù)器所在的元數(shù)據(jù)塊)重新組織來降低元數(shù)據(jù)訪問開銷,故COTANA不僅適用于SGX樹也適用于葉子結(jié)點(diǎn)為加密計(jì)數(shù)器的默克爾樹.

Fig. 9 Metadata management of COTANA圖9 COTANA元數(shù)據(jù)組織方式

在圖9所示的元數(shù)據(jù)組織方式中,葉子結(jié)點(diǎn)的具體實(shí)現(xiàn)取決于選擇重加密策略.例如,圖10所示為采用選擇重加密策略Nacre[8]時(shí)葉子結(jié)點(diǎn)的結(jié)構(gòu).每個(gè)葉子結(jié)點(diǎn)包含1個(gè)32 b主計(jì)數(shù)器和16個(gè)6 b從計(jì)數(shù)器,即每個(gè)葉子結(jié)點(diǎn)對應(yīng)16個(gè)數(shù)據(jù)塊.由于每個(gè)數(shù)據(jù)塊被劃分為8個(gè)數(shù)據(jù)片,故每個(gè)數(shù)據(jù)塊對應(yīng)8個(gè)計(jì)數(shù)器指示器,而每個(gè)葉子結(jié)點(diǎn)需要包含16×8=128個(gè)計(jì)數(shù)器指示器.假設(shè)每個(gè)數(shù)據(jù)塊對應(yīng)的局部計(jì)數(shù)器數(shù)量為N,則每個(gè)計(jì)數(shù)器指示器的大小為lbN.根據(jù)結(jié)點(diǎn)中除主從計(jì)數(shù)器外剩余空間大小,可以為每個(gè)數(shù)據(jù)塊分配4個(gè)2 b局部計(jì)數(shù)器,即總共16×4=64個(gè)局部計(jì)數(shù)器,并且每個(gè)計(jì)數(shù)器指示器的大小為2 b.

Fig. 10 Example of leaf nodes with Nacre圖10 采用Nacre時(shí)的葉子結(jié)點(diǎn)示例

圖11所示為采用Nacre[8]作為選擇重加密策略時(shí)MorphCtr[7](即MC-Nacre)和COTANA的內(nèi)存讀操作執(zhí)行流程對比.MC-Nacre將加密計(jì)數(shù)器放置在完整性檢測樹的葉子結(jié)點(diǎn)中,而將局部計(jì)數(shù)器和計(jì)數(shù)器指示器分離地存放在內(nèi)存中.因此,當(dāng)元數(shù)據(jù)緩存未命中時(shí),最差情況需要在讀操作的關(guān)鍵路徑上執(zhí)行額外3次訪存操作,以讀取葉子結(jié)點(diǎn)、局部計(jì)數(shù)器、計(jì)數(shù)器指示器.而COTANA通過元數(shù)據(jù)協(xié)同管理將數(shù)據(jù)解密所需元數(shù)據(jù)組織在相同葉子結(jié)點(diǎn)中,從而減少額外的訪存操作.

Fig. 11 Comparison of read operation processes圖11 讀操作執(zhí)行流程對比

2.3 動(dòng)態(tài)數(shù)據(jù)分片

現(xiàn)有選擇重加密策略在對數(shù)據(jù)分片時(shí)廣泛采用靜態(tài)的連續(xù)分片方法[6,8,28],將地址連續(xù)的字節(jié)劃分至相同數(shù)據(jù)片.例如,假設(shè)數(shù)據(jù)塊大小為64 B,并且將每個(gè)字節(jié)按照地址從低到高分別記為字節(jié)i(i=0,1,…,63).如果將數(shù)據(jù)塊劃分為8個(gè)數(shù)據(jù)片,則數(shù)據(jù)片m(m=0,1,…,7)包含字節(jié)8m到字節(jié)8m+7.當(dāng)完成數(shù)據(jù)片劃分后,如果數(shù)據(jù)片中存在被修改的數(shù)據(jù),則需要使用新的計(jì)數(shù)器對數(shù)據(jù)片重新進(jìn)行加密.然而,采用靜態(tài)數(shù)據(jù)分片策略時(shí),可能出現(xiàn)每個(gè)數(shù)據(jù)片中僅1 B數(shù)據(jù)被修改而導(dǎo)致重加密整個(gè)數(shù)據(jù)塊的情況.為量化這種情況發(fā)生的概率,我們采用SPEC CPU2006負(fù)載集[29]和持久性數(shù)據(jù)結(jié)構(gòu)負(fù)載集[30]來統(tǒng)計(jì)內(nèi)存寫操作的各個(gè)字節(jié)的修改頻率(字節(jié)的修改頻率=該字節(jié)的修改次數(shù)/內(nèi)存寫操作總數(shù)).圖12所示為不同負(fù)載下的測試結(jié)果.我們發(fā)現(xiàn)如果采用連續(xù)分片方法,每個(gè)數(shù)據(jù)片中總是存在部分字節(jié)的修改頻率顯著高于其他字節(jié).因此,連續(xù)分片方法會(huì)導(dǎo)致未被修改的字節(jié)因少部分頻繁修改的字節(jié)而重加密,從而無法有效地降低加密帶來的寫性能和耐久性影響.

Fig. 12 Modification frequency of different bytes in data blocks圖12 數(shù)據(jù)塊中不同字節(jié)的修改頻率

為解決此問題,COTANA采用動(dòng)態(tài)數(shù)據(jù)分片策略,以從不同的分片方法中動(dòng)態(tài)地選擇造成位翻轉(zhuǎn)最少的方法.如圖13所示,動(dòng)態(tài)數(shù)據(jù)分片策略可選的分片方法包括連續(xù)分片方法和聚集分片方法.其中,聚集分片方法基于圖12所示的字節(jié)修改頻率規(guī)律,即編號(hào)差值為8的字節(jié)具有相似的修改頻率.因此,聚集分片方法將編號(hào)差值為8的字節(jié)劃分至相同數(shù)據(jù)片,即數(shù)據(jù)片m(m=0,1,…,7)包含字節(jié)8i+m(i=0,1,…,7).通過將相似修改頻率的字節(jié)聚集在一起,聚集分片方法能夠有效降低因部分字節(jié)修改而導(dǎo)致重加密整個(gè)數(shù)據(jù)塊的概率,從而減少加密數(shù)據(jù)的寫操作帶來的位翻轉(zhuǎn).

Fig. 13 Successive and gathering partition methods of data blocks圖13 數(shù)據(jù)塊連續(xù)分片方法和聚集分片方法

動(dòng)態(tài)數(shù)據(jù)分片策略包括2種分片方法.為記錄數(shù)據(jù)塊采用何種方法進(jìn)行分片,COTANA為每個(gè)數(shù)據(jù)塊維護(hù)1 b類型標(biāo)記.當(dāng)執(zhí)行讀操作時(shí),先根據(jù)類型標(biāo)記對數(shù)據(jù)塊進(jìn)行分片,再根據(jù)加密計(jì)數(shù)器和選擇重加密元數(shù)據(jù)對數(shù)據(jù)塊解密;當(dāng)執(zhí)行寫操作時(shí),先并行地采用2種分片方法劃分?jǐn)?shù)據(jù)塊并執(zhí)行重加密,再計(jì)算采用不同方法的加密數(shù)據(jù)造成的位翻轉(zhuǎn)數(shù)量.為計(jì)算位翻轉(zhuǎn)數(shù)量,需要將內(nèi)存中數(shù)據(jù)讀取至內(nèi)存控制器中與加密數(shù)據(jù)進(jìn)行對比.因此,動(dòng)態(tài)數(shù)據(jù)分片策略在執(zhí)行每個(gè)寫操作時(shí)會(huì)引入1次額外讀操作.由于NVM的讀延遲通常低于寫延遲,寫耐久性差于DRAM,同時(shí)動(dòng)態(tài)數(shù)據(jù)分片策略可以有效地降低加密帶來的寫性能和耐久性影響,故該策略的額外讀操作帶來的開銷是可接受的.最后,動(dòng)態(tài)數(shù)據(jù)分片策略動(dòng)態(tài)地選擇造成位翻轉(zhuǎn)最少的加密數(shù)據(jù)寫回內(nèi)存并根據(jù)選取的分片方法設(shè)置類型標(biāo)記.為降低維護(hù)類型標(biāo)記的開銷,將類型標(biāo)記也放置在完整性檢測樹的葉子結(jié)點(diǎn)中.例如,每個(gè)葉子結(jié)點(diǎn)包括1個(gè)32 b主計(jì)數(shù)器、16個(gè)5 b從計(jì)數(shù)器、16個(gè)1 b類型標(biāo)記、64個(gè)2 b局部計(jì)數(shù)器、128個(gè)2 b計(jì)數(shù)器指示器.

2.4 開銷分析

COTANA通過對多種元數(shù)據(jù)協(xié)同管理,降低元數(shù)據(jù)訪問開銷.但是,由于完整性檢測樹的每個(gè)葉子結(jié)點(diǎn)中僅能存放16個(gè)從計(jì)數(shù)器,故有可能增大元數(shù)據(jù)存儲(chǔ)開銷.表2所示為COTANA和MC-Nacre[7-8]的存儲(chǔ)開銷對比.因?yàn)镃OTANA和MC-Nacre均將數(shù)據(jù)塊的MAC放置于ECC芯片,同時(shí)將加密計(jì)數(shù)器放置在葉子結(jié)點(diǎn)中,所以表2中只考慮完整性檢測樹和選擇重加密元數(shù)據(jù)的開銷.假設(shè)內(nèi)存大小為4 GB,數(shù)據(jù)塊大小為64 B,則內(nèi)存中總共有226個(gè)數(shù)據(jù)塊.MC-Nacre允許每個(gè)完整性檢測樹結(jié)點(diǎn)中至多存放128個(gè)從計(jì)數(shù)器.因此,結(jié)點(diǎn)的總數(shù)約為219個(gè),總大小約為32 MB.此外,MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4)分別為每個(gè)數(shù)據(jù)塊維護(hù)24 b,40 b,72 b選擇重加密元數(shù)據(jù),即存儲(chǔ)開銷分別為192 MB,320 MB,576 MB.此外,MC-Nacre需要在選擇重加密元數(shù)據(jù)上建立額外的完整性檢測樹,以保障元數(shù)據(jù)的完整性.相比于MC-Nacre,COTANA雖然在每個(gè)葉子結(jié)點(diǎn)中僅存放16個(gè)從計(jì)數(shù)器,即完整性檢測樹總大小約為256 MB,但是無需單獨(dú)維護(hù)重加密元數(shù)據(jù)及額外的完整性檢測樹,從而降低元數(shù)據(jù)開銷.

Table 2 Percentage of Memory Size Occupied by Metadata表2 元數(shù)據(jù)占內(nèi)存容量的百分比 %

現(xiàn)有的安全PM系統(tǒng)[7,16-17]在ECC內(nèi)存的內(nèi)存控制器中集成了加密、完整性檢測、選擇重加密所需的硬件,包括元數(shù)據(jù)緩存及計(jì)算組件.在現(xiàn)有系統(tǒng)的基礎(chǔ)上,COTANA僅需對內(nèi)存控制器進(jìn)行小幅修改并添加選擇重加密的計(jì)算組件,以實(shí)現(xiàn)對安全元數(shù)據(jù)的重新組織,以及并行地采用不同分片方法進(jìn)行選擇重加密并動(dòng)態(tài)選擇造成位翻轉(zhuǎn)最少的分片方法.

3 實(shí)驗(yàn)評估

3.1 實(shí)驗(yàn)配置

本文將NVM模擬器NVMain[31]與全系統(tǒng)仿真器Gem5[18]進(jìn)行整合,通過NVMain為Gem5提供高精度PM系統(tǒng)仿真支持,并在此基礎(chǔ)上實(shí)現(xiàn)COTANA.表3所示為仿真器的參數(shù)配置.元數(shù)據(jù)緩存的默認(rèn)大小為128 KB.COTANA采用MorphCtr[7]策略管理完整性檢測樹的內(nèi)部結(jié)點(diǎn),同時(shí)基于Nacre[8]策略實(shí)現(xiàn)葉子結(jié)點(diǎn)的管理和選擇重加密.實(shí)驗(yàn)中,COTANA的對照系統(tǒng)包括僅采用MorphCtr的系統(tǒng)MC-Only,以及采用MorphCtr和Nacre但具有不同參數(shù)的系統(tǒng)MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4).為評估上述系統(tǒng),我們從標(biāo)準(zhǔn)負(fù)載集SPEC CPU2006[29]中選取10個(gè)內(nèi)存密集型負(fù)載.在運(yùn)行每個(gè)負(fù)載時(shí),先執(zhí)行5億條指令對緩存進(jìn)行預(yù)熱,再執(zhí)行20億條指令以統(tǒng)計(jì)實(shí)驗(yàn)結(jié)果.此外,我們還使用表4所示的持久性數(shù)據(jù)結(jié)構(gòu)負(fù)載[30]對上述系統(tǒng)進(jìn)行評估.每個(gè)負(fù)載針對相應(yīng)的數(shù)據(jù)結(jié)構(gòu)執(zhí)行10萬個(gè)事務(wù)操作,每個(gè)事務(wù)中執(zhí)行隨機(jī)查找操作,若未找到數(shù)據(jù)則插入數(shù)據(jù),否則刪除已有數(shù)據(jù).

Table 3 Simulator Configuration of Parameters表3 仿真器參數(shù)配置

Table 4 Persistent Data Structure Workloads表4 持久性數(shù)據(jù)結(jié)構(gòu)負(fù)載

3.2 SPEC CPU2006負(fù)載下的實(shí)驗(yàn)結(jié)果

圖14所示為各系統(tǒng)的IPC,實(shí)驗(yàn)結(jié)果基于MC-Only進(jìn)行了歸一化處理.與MC-Only相比,MC-Nacre(8,4)存在平均10.4%的IPC下降.這是因?yàn)樵跀?shù)據(jù)加解密的關(guān)鍵路徑上可能需要等待從內(nèi)存中分別讀取加密計(jì)數(shù)器和選擇重加密元數(shù)據(jù)塊.由于選擇重加密元數(shù)據(jù)開銷隨著分片粒度的減小而增加,故采用更細(xì)粒度分片的MC-Nacre(4,4)和MC-Nacre(2,4)分別存在12.4%和17.3%的IPC下降,而COTANA僅造成4.6%的IPC下降.相比MC-Nacre(8,4),IPC最高提升了13.7%.這是因?yàn)镃OTANA通過元數(shù)據(jù)協(xié)同管理將數(shù)據(jù)加解密所需元數(shù)據(jù)整合在相同數(shù)據(jù)塊中,從而減少關(guān)鍵路徑上元數(shù)據(jù)塊的訪問.

Fig. 14 Normalized IPC based on MC-Only圖14 基于MC-Only歸一化的IPC

Fig. 15 Breakdown of number of memory accesses圖15 內(nèi)存訪問次數(shù)分解

為進(jìn)一步驗(yàn)證COTANA是否能夠有效減少元數(shù)據(jù)導(dǎo)致的內(nèi)存訪問,我們對各系統(tǒng)在負(fù)載運(yùn)行過程中的所有內(nèi)存訪問進(jìn)行統(tǒng)計(jì).圖15所示為基于應(yīng)用數(shù)據(jù)訪問次數(shù)歸一化后的實(shí)驗(yàn)結(jié)果.在所有元數(shù)據(jù)導(dǎo)致的內(nèi)存訪問中,選擇重加密元數(shù)據(jù)訪問占據(jù)較大比例.因?yàn)檫x擇重加密元數(shù)據(jù)總大小隨著數(shù)據(jù)分片粒度減小而增大,所以MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4)的內(nèi)存訪問次數(shù)依次增加.相比MC-Nacre(8,4),COTANA通過元數(shù)據(jù)協(xié)同管理最多減少了22.9%的內(nèi)存訪問次數(shù).對于部分負(fù)載(例如zeusmp),COTANA減少的內(nèi)存訪問相對有限.這是因?yàn)檫@些負(fù)載對于內(nèi)存的訪問具有良好的局部性,使得元數(shù)據(jù)緩存有較高的命中率.對于部分負(fù)載(例如astar),COTANA相比于其他系統(tǒng)有更少的計(jì)數(shù)器溢出造成的內(nèi)存訪問.這是因?yàn)殡m然COTANA將選擇重加密元數(shù)據(jù)與加密計(jì)數(shù)器放置在相同元數(shù)據(jù)塊中會(huì)提升計(jì)數(shù)器溢出頻率,但是當(dāng)計(jì)數(shù)器溢出發(fā)生后,在對內(nèi)存中數(shù)據(jù)重新加密的過程中,COTANA僅需1次內(nèi)存訪問即可獲取重新加密1個(gè)數(shù)據(jù)塊所需的加密計(jì)數(shù)器和選擇重加密元數(shù)據(jù),而其他系統(tǒng)則需要2次內(nèi)存訪問才能獲取相關(guān)元數(shù)據(jù).

圖16所示為加密數(shù)據(jù)塊寫入內(nèi)存時(shí)平均每個(gè)數(shù)據(jù)塊中存在的位翻轉(zhuǎn)的比例.隨著數(shù)據(jù)分片粒度減小,可以減少因部分字節(jié)修改導(dǎo)致整個(gè)分片重加密的情況.因此,MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4)的位翻轉(zhuǎn)比例依次降低,全部負(fù)載的平均值分別為33.2%,26.2%,23.1%.而COTANA的位翻轉(zhuǎn)比例的平均值為27.5%.這是因?yàn)閯?dòng)態(tài)數(shù)據(jù)分片策略可以有效減少因部分字節(jié)修改導(dǎo)致整個(gè)分片重加密的情況.COTANA可以通過與MC-Nacre(8,4)相同的分片粒度同時(shí)取得更高的性能和更少的位翻轉(zhuǎn).而相比MC-Nacre(4,4)和MC-Nacre(2,4),COTANA雖然具有更高的位翻轉(zhuǎn),但可以避免細(xì)粒度分片帶來的選擇重加密元數(shù)據(jù)開銷和性能下降.

Fig. 16 Averaged percent of bit flips per NVM write圖16 NVM寫操作平均位翻轉(zhuǎn)比例

圖17所示為不同元數(shù)據(jù)緩存大小下各系統(tǒng)相對于MC-Only的IPC下降比例.相比MC-Nacre(8,4),COTANA在元數(shù)據(jù)緩存大小為128 KB,64 KB,32 KB時(shí)分別可減少5.8%,12.9%,18.4%的IPC下降比例.這是因?yàn)樵獢?shù)據(jù)緩存的命中率隨著元數(shù)據(jù)緩存大小減小而降低.而COTANA通過元數(shù)據(jù)協(xié)同管理能夠有效降低元數(shù)據(jù)緩存未命中時(shí)訪問元數(shù)據(jù)的開銷.

Fig. 17 Percentages of IPC degradation on different metadata cache sizes圖17 不同元數(shù)據(jù)緩存大小下的IPC下降比例

Fig. 18 Transaction throughput normalized to MC-Only圖18 基于MC-Only歸一化的事務(wù)吞吐率

3.3 持久性數(shù)據(jù)結(jié)構(gòu)負(fù)載下的實(shí)驗(yàn)結(jié)果

圖18所示為各系統(tǒng)的事務(wù)吞吐率.實(shí)驗(yàn)結(jié)果基于MC-Only進(jìn)行了歸一化處理.與MC-Only相比,MC-Nacre(8,4),MC-Nacre(4,4),MC-Nacre(2,4)分別存在平均19.3%,20.7%,21.9%的性能下降.而COTANA相比MC-Only僅平均造成15.2%的性能下降,COTANA相比MC-Nacre(8,4)最多提升9.3%的性能.因此,COTANA不僅適用于計(jì)算密集型的應(yīng)用場景,也適用于存儲(chǔ)密集型的應(yīng)用場景.

4 相關(guān)研究工作

目前一些研究工作關(guān)注于如何高效管理安全元數(shù)據(jù).IVEC[21]提出將完整性檢測與數(shù)據(jù)糾錯(cuò)結(jié)合,利用MAC檢測數(shù)據(jù)是否存在錯(cuò)誤,并通過檢查可能出錯(cuò)的位置或校驗(yàn)信息輔助的方式修復(fù)數(shù)據(jù).在此基礎(chǔ)上,SYNERGY[16]進(jìn)一步提出了數(shù)據(jù)、MAC、校驗(yàn)信息在內(nèi)存中的布局方法,將MAC放置在ECC芯片中,而將校驗(yàn)信息放置在內(nèi)存中其他區(qū)域,從而允許數(shù)據(jù)和MAC并行訪問.VAULT[10]根據(jù)完整性檢測樹中層次越高的結(jié)點(diǎn)中的計(jì)數(shù)器增長越快的特性,為高層次結(jié)點(diǎn)分配更大的計(jì)數(shù)器,從而避免頻繁的計(jì)數(shù)器溢出.此外,通過壓縮數(shù)據(jù)塊將MAC放置在壓縮節(jié)省的空間中,使得無需依賴ECC芯片即可同時(shí)訪問數(shù)據(jù)和MAC.為減少完整性檢測樹開銷并減少計(jì)數(shù)器溢出,MorphCtr[7]提出一種可變的完整性檢測樹結(jié)點(diǎn)組織方式,允許完整性檢測樹根據(jù)應(yīng)用訪問特征動(dòng)態(tài)改變每個(gè)結(jié)點(diǎn)中從計(jì)數(shù)器大小,使得每個(gè)結(jié)點(diǎn)最多可存放128個(gè)從計(jì)數(shù)器.現(xiàn)有的安全元數(shù)據(jù)管理相關(guān)的研究工作主要關(guān)注于加密、完整性檢測引入的元數(shù)據(jù),而沒有考慮因?qū)憙?yōu)化需求而引入的選擇重加密元數(shù)據(jù).COTANA則是綜合考慮加密、完整性檢測、選擇重加密元數(shù)據(jù)的特性,實(shí)現(xiàn)各類元數(shù)據(jù)的協(xié)同管理,以降低元數(shù)據(jù)訪問開銷.

由于加密算法存在雪崩效應(yīng),現(xiàn)有一些研究工作關(guān)注于如何降低安全NVM中寫操作開銷.DEUCE[6]為每個(gè)數(shù)據(jù)塊維護(hù)領(lǐng)頭計(jì)數(shù)器和跟隨計(jì)數(shù)器.跟隨計(jì)數(shù)器由領(lǐng)頭計(jì)數(shù)器屏蔽低位后計(jì)算得到.在數(shù)據(jù)寫入內(nèi)存時(shí),將數(shù)據(jù)劃分為16b大小的數(shù)據(jù)片,使用跟隨計(jì)數(shù)器加密未修改數(shù)據(jù)片,使用領(lǐng)頭計(jì)數(shù)器加密被修改的數(shù)據(jù)片.Nacre[8]和SECRET[28]為每個(gè)數(shù)據(jù)片維護(hù)1個(gè)局部計(jì)數(shù)器,僅當(dāng)數(shù)據(jù)片被修改時(shí)才更新局部計(jì)數(shù)器,并對數(shù)據(jù)片進(jìn)行重新加密.DeWrite[11]將加密與數(shù)據(jù)去重結(jié)合,以減少寫入內(nèi)存的重復(fù)數(shù)據(jù).ASSURE[32]將MAC值進(jìn)行細(xì)粒度劃分,以避免為未修改的數(shù)據(jù)片重新計(jì)算MAC.現(xiàn)有安全NVM寫操作優(yōu)化相關(guān)的工作可以直接與COTANA協(xié)同工作,通過元數(shù)據(jù)協(xié)同管理策略降低元數(shù)據(jù)訪問開銷,同時(shí)通過動(dòng)態(tài)數(shù)據(jù)分片策略減少位翻轉(zhuǎn).

系統(tǒng)發(fā)生意外崩潰后,僅當(dāng)安全元數(shù)據(jù)與NVM中的數(shù)據(jù)匹配時(shí),才能正確地解密數(shù)據(jù)并進(jìn)行完整性檢測.因此,部分研究工作[17,22,27,33-36]關(guān)注于如何正確并高效地持久化安全元數(shù)據(jù).例如,cc-NVM[35]通過基于時(shí)段的安全元數(shù)據(jù)更新方法,在保證安全元數(shù)據(jù)一致性的同時(shí)充分利用元數(shù)據(jù)緩存,從而顯著提升系統(tǒng)性能并減少內(nèi)存寫操作數(shù)量.STAR[36]在SGX樹中采用54 b的MAC,并將每個(gè)結(jié)點(diǎn)中節(jié)省的10 b空間用于存放父結(jié)點(diǎn)中對應(yīng)計(jì)數(shù)器的低位,避免在更新SGX樹時(shí)遞歸更新至根結(jié)點(diǎn)并寫回所有更新的結(jié)點(diǎn),從而大幅減少為保證SGX樹的崩潰一致性而引入的寫操作.與上述這些研究工作相比,COTANA主要關(guān)注如何高效組織各類元數(shù)據(jù),可以直接使用現(xiàn)有方法實(shí)現(xiàn)元數(shù)據(jù)正確持久化.例如,將COTANA集成至STAR時(shí),僅需修改SGX樹葉子結(jié)點(diǎn)計(jì)數(shù)器的組織方式,并在選擇重加密時(shí)采用動(dòng)態(tài)數(shù)據(jù)分片策略.此外,COTANA將選擇重加密元數(shù)據(jù)與加密計(jì)數(shù)器放置在相同數(shù)據(jù)塊中,能夠避免單獨(dú)持久化這2種元數(shù)據(jù),從而降低安全元數(shù)據(jù)一致性保障的開銷.

5 總 結(jié)

為構(gòu)建高效安全的PM系統(tǒng),通常使用加密和完整性檢測技術(shù)保證數(shù)據(jù)安全性,以及選擇重加密策略降低寫操作開銷.這些技術(shù)引入各類元數(shù)據(jù),但目前尚無綜合考慮全部元數(shù)據(jù)特性的元數(shù)據(jù)管理方法,從而存在較高的元數(shù)據(jù)開銷.此外,我們發(fā)現(xiàn)數(shù)據(jù)塊中不同字節(jié)存在不同的修改頻率,而現(xiàn)有選擇重加密策略無法充分利用修改頻率特性,從而導(dǎo)致額外的位翻轉(zhuǎn).為解決上述問題,本文提出一種面向安全PM的元數(shù)據(jù)協(xié)同管理方法COTANA.為減少元數(shù)據(jù)開銷,COTANA將選擇重加密元數(shù)據(jù)與加密元數(shù)據(jù)放置在相同塊中,以減少元數(shù)據(jù)緩存未命中時(shí)所造成的額外內(nèi)存訪問.此外,COTANA利用ECC芯片放置數(shù)據(jù)塊和完整性檢測樹葉子結(jié)點(diǎn)的MAC,以避免MAC訪問造成的延遲.為減少位翻轉(zhuǎn),COTANA采用動(dòng)態(tài)數(shù)據(jù)分片策略,從現(xiàn)有的連續(xù)分片方法和基于修改頻率特性設(shè)計(jì)的聚集分片方法中動(dòng)態(tài)選擇造成位翻轉(zhuǎn)最少的方法.實(shí)驗(yàn)結(jié)果顯示,與采用最新的安全元數(shù)據(jù)管理方法和選擇重加密策略的系統(tǒng)相比,COTANA最多能提升13.7%的性能,并減少21.3%的位翻轉(zhuǎn).

作者貢獻(xiàn)聲明:魏學(xué)亮負(fù)責(zé)完善本文工作思路,完成部分相關(guān)實(shí)驗(yàn),并撰寫論文;楊明順提出本文主要工作思路,并完成其余部分實(shí)驗(yàn);馮丹、劉景寧、童薇對整個(gè)工作提出指導(dǎo)意見并修改論文;吳兵和肖仁智對方案設(shè)計(jì)及論文給出修改意見.

猜你喜歡
分片計(jì)數(shù)器結(jié)點(diǎn)
上下分片與詞的時(shí)空佈局
詞學(xué)(2022年1期)2022-10-27 08:06:12
煤氣與熱力(2022年2期)2022-03-09 06:29:30
分片光滑邊值問題的再生核方法
CDN存量MP4視頻播放優(yōu)化方法
基于模糊二分查找的幀分片算法設(shè)計(jì)與實(shí)現(xiàn)
Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點(diǎn)個(gè)數(shù)估計(jì)
計(jì)數(shù)器競爭冒險(xiǎn)及其處理的仿真分析
任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
河南科技(2014年10期)2014-02-27 14:09:30
基于單片機(jī)的仰臥起坐計(jì)數(shù)器
基于Raspberry PI為結(jié)點(diǎn)的天氣云測量網(wǎng)絡(luò)實(shí)現(xiàn)
东海县| 佛山市| 尚义县| 专栏| 天柱县| 金门县| 新蔡县| 潮州市| 玛曲县| 黎城县| 山东省| 叙永县| 珠海市| 黄龙县| 武威市| 策勒县| 通辽市| 赤城县| 广河县| 玉溪市| 广州市| 五常市| 横山县| 资兴市| 香港| 墨竹工卡县| 合阳县| 昌乐县| 灵台县| 沽源县| 青州市| 鹤峰县| 西青区| 新昌县| 巴青县| 肃南| 延边| 板桥市| 桓仁| 犍为县| 扎囊县|