李 杰 李景峰 房 方
(解放軍信息工程大學(xué) 河南 鄭州 450004)
?
面向NAND閃存的數(shù)據(jù)安全刪除研究
李杰李景峰房方
(解放軍信息工程大學(xué)河南 鄭州 450004)
摘要針對閃存的數(shù)據(jù)安全刪除提出一種載體訪問分層模型,討論在各層訪問并實現(xiàn)數(shù)據(jù)安全刪除的優(yōu)缺點,給出各層具有代表性的數(shù)據(jù)安全刪除方法與技術(shù)。最后,提出一種基于控制器的數(shù)據(jù)安全刪除方案,詳細(xì)描述方案的實現(xiàn)流程以及各模塊的主要功能。實驗表明,該方法能夠?qū)崿F(xiàn)數(shù)據(jù)的安全刪除。
關(guān)鍵詞安全刪除閃存文件系統(tǒng)控制器
RESEARCH ON SECURE DATA DELETION FOR NAND FLASH
Li JieLi JingfengFang Fang
(PLA Information Engineering University,Zhengzhou 450004,Henan,China)
AbstractAiming at secure data deletion of flash memory, in this paper we propose a hierarchical model of carrier access. We discuss the advantages and disadvantages of realising secure data deletion while accessing each layer, and give the representative methods and techniques of secure data deletion on each layer. At last, we propose a controller-based secure data deletion scheme, and expatiate on the implementation process of the scheme and the main functions of each module. Experiments show that this method can realise secure data deletion.
KeywordsSecure deletionFlash memoryFile systemsController
0引言
閃存具備ROM和RAM共同的優(yōu)點,分為NOR型和NAND型,是一種掉電后信息不會丟失的非易失型存儲器。NOR型閃存和NAND型閃存的區(qū)別很大,NOR型更像內(nèi)存,有獨立的地址線和數(shù)據(jù)線,價格較高,容量較小;NAND型更像硬盤,地址線和數(shù)據(jù)線共用,與NOR型閃存相比,其成本較低、容量較大。近來,閃存(特別是NAND型閃存)得到了快速發(fā)展,不僅容量越來越大,可靠性也在不斷提高,在移動電話、數(shù)碼相機(jī)、PDA多媒體消費類電子產(chǎn)品中得到了廣泛的應(yīng)用。但是,Demetrios Roubos等人在購買的一些二手電子存儲設(shè)備中恢復(fù)出了大量隱私信息[1],證明閃存的數(shù)據(jù)殘留非常普遍,導(dǎo)致了嚴(yán)重的數(shù)據(jù)安全問題。為了確保數(shù)據(jù)安全,必須確保存儲敏感數(shù)據(jù)的閃存得到安全刪除[2,3]。
所謂數(shù)據(jù)安全刪除是指通過各種技術(shù)手段,使存儲載體中的數(shù)據(jù)被刪除后不可恢復(fù),且設(shè)備可用于二次利用?,F(xiàn)在已經(jīng)針對磁介質(zhì)提出了多種基于覆寫的安全刪除方法,但由于閃存先擦除再寫入的特點[4],這些方法都受到了限制。因此,提出一種安全刪除閃存上敏感數(shù)據(jù)的方法,已經(jīng)成為一個重要的研究內(nèi)容。
1載體訪問分層模型
1.1分層模型
由于對存儲介質(zhì)的訪問需要通過不同層次的接口來實現(xiàn),因此可以利用這些接口進(jìn)行數(shù)據(jù)安全刪除。個人計算機(jī)上訪問閃存的分層方式如圖1所示。
圖1 載體訪問分層模型
1.2各層訪問特性分析
不管如何實現(xiàn)數(shù)據(jù)安全刪除,都需要考慮安全刪除的性能特點,本節(jié)將詳細(xì)分析圖1所示各層訪問實現(xiàn)數(shù)據(jù)安全刪除的特性。
1.2.1控制器層
控制器提供了一個標(biāo)準(zhǔn)化的、明確的硬件接口,如SCSI或ATA[5],允許讀寫物理介質(zhì)上大小固定的塊。SCSI和ATA還可以提供能夠刪除物理介質(zhì)上所有數(shù)據(jù)的刪除命令[6]。但該命令不能刪除特定數(shù)據(jù)對象,這造成了基于控制器層的數(shù)據(jù)安全刪除的靈活性較差。另外,對所有塊進(jìn)行安全刪除,耗時會隨著閃存容量的變大而不斷增加。
1.2.2文件系統(tǒng)層
文件系統(tǒng)層通過使用設(shè)備驅(qū)動程序接口,允許對文件進(jìn)行讀、寫、創(chuàng)建等操作。目前文件系統(tǒng)訪問閃存主要分為兩類,一是通過FTL[7](Flash Translation Layer)層,模擬磁介質(zhì)的塊設(shè)備訪問方法;一是為了延長設(shè)備壽命,設(shè)計專用于閃存的文件系統(tǒng),如YAFFS[8]、UBIFS[9,19]。文件系統(tǒng)層可訪問不同類型的硬件,基于文件系統(tǒng)層的安全刪除應(yīng)用范圍廣泛,且利用閃存專用的文件系統(tǒng)實現(xiàn)安全刪除不受寫入和擦除粒度的限制。但利用塊文件系統(tǒng)會給閃存帶來巨大的磨損;此外文件系統(tǒng)比較復(fù)雜,安全刪除的實現(xiàn)難度大。
1.2.3用戶應(yīng)用程序?qū)?/p>
用戶應(yīng)用程序是進(jìn)行介質(zhì)訪問的最高層,能夠提供圖形用戶界面。一個安全刪除用戶應(yīng)用程序只能與兼容POSIX的文件系統(tǒng)相互作用。在用戶應(yīng)用程序中進(jìn)行數(shù)據(jù)安全刪除,可以很容易地刪除特定數(shù)據(jù)對象,靈活性好;但保證數(shù)據(jù)不可恢復(fù)的程度最小,且會帶來很高的磨損。
總之,對于安全刪除方法來說,在選擇使用訪問層次時要權(quán)衡效率和磨損兩個因素。事實上,抽象接口距離介質(zhì)越遠(yuǎn),就越難保證數(shù)據(jù)的不可恢復(fù)。因此,當(dāng)一層不能實現(xiàn)數(shù)據(jù)安全刪除時,可以利用文件系統(tǒng)層向更低層傳遞刪除對象的信息[10,11]實現(xiàn)數(shù)據(jù)安全刪除,這樣可使數(shù)據(jù)安全刪除方法更為高效。
2現(xiàn)有數(shù)據(jù)安全刪除方法與技術(shù)
針對閃存的數(shù)據(jù)安全刪除逐步引起了人們的重視,許多專家學(xué)者已經(jīng)提出了相應(yīng)的解決方案,下面結(jié)合載體訪問層次模型給出具有代表性的數(shù)據(jù)安全刪除方法與技術(shù)。
2.1控制器層的安全刪除
Wei等人[12]觀察到閃存中控制器層的安全刪除并不總是正確的。在某些情況下,設(shè)備報道操作成功時,整個文件系統(tǒng)卻仍然可用。
在后續(xù)的研究工作中,Swanson等人[2]描述了一種可證實的全設(shè)備銷毀方法,并與硬盤消磁進(jìn)行了比較。他們提出用密鑰加密寫入物理介質(zhì)的所有數(shù)據(jù),并將密鑰存儲在硬件控制器內(nèi);銷毀設(shè)備時,首先擦除控制器內(nèi)的密鑰,其次通過寫入預(yù)設(shè)序列對設(shè)備上的塊進(jìn)行兩次擦除;最后,重新初始化設(shè)備,并給閃存控制器一個新的密鑰。
彭勇等發(fā)明了一種固態(tài)硬盤快速數(shù)據(jù)銷毀的結(jié)構(gòu)設(shè)計[13],可通過控制芯片實現(xiàn)數(shù)據(jù)的清除,且清除后不可恢復(fù)。
2.2文件系統(tǒng)層的安全刪除
文件系統(tǒng)層的數(shù)據(jù)安全刪除是目前主流的研究方法,已經(jīng)提出了多種方案和技術(shù)。
(1) 最初提出了緊湊的方法。該方法復(fù)制塊上的有效數(shù)據(jù)到其它地方后執(zhí)行擦除操作,因此操作代價很大,主要包括復(fù)制數(shù)據(jù)的消耗時間,以及移動和擦除造成的磨損。
(2) 對緊湊的方法進(jìn)行改進(jìn)后,提出了分批緊湊的方法。該方法間歇地進(jìn)行數(shù)據(jù)安全刪除。盡管有刪除延遲,但其刪除的分?jǐn)倳r間和耗損在減小。事實上,日志結(jié)構(gòu)文件系統(tǒng)已經(jīng)執(zhí)行一個類似的技術(shù)來恢復(fù)浪費空間,通常稱之為垃圾收集[14]。垃圾收集試圖優(yōu)化擦除的次數(shù),但不考慮刪除延遲這一問題。
(3) Wei 等人[12]提出了擦洗的方法。擦洗工作是通過使閃存中所有單元充電變?yōu)榱銇肀苊饷舾行畔?,這樣塊上的其它數(shù)據(jù)仍然可用,但官方尚未給予定義[15]。作者在實際中測試了該方法所導(dǎo)致的錯誤率,實驗表明有的設(shè)備會導(dǎo)致頻繁的錯誤,而有的不會產(chǎn)生錯誤。
(4) Lee 等人[16]針對YAFFS[10]提出了相應(yīng)的安全刪除方法。該方法是用唯一的密鑰加密每一個文件,密鑰存儲在相應(yīng)的文件頭里。文件系統(tǒng)把所有的文件頭存儲在一個擦除塊上。這樣,可通過刪除單獨的擦除塊實現(xiàn)所有數(shù)據(jù)的安全刪除,明顯減少了安全刪除的成本。
(5) Reardon 等人[18]提出了DNEFS。該方法是在UBIFS[9,19]上實現(xiàn)的,通過修改文件系統(tǒng)在存儲文件時用唯一的密鑰加密每個數(shù)據(jù)塊,并把密鑰存儲到密鑰存儲區(qū)。安全刪除是間歇地用新的密鑰替換原來密鑰存儲區(qū)的密鑰。
2.3用戶應(yīng)用程序?qū)拥陌踩珓h除
目前主要有三種用戶級的刪除方法,一種是介質(zhì)接口上的安全刪除程序;一種是解鏈前覆寫數(shù)據(jù);一種是先解鏈,再填充介質(zhì)的空閑容量。
總體上看,現(xiàn)有的數(shù)據(jù)安全刪除方法一般都是通過塊擦除或零覆寫的方法。塊擦除技術(shù)是通過擦除整塊的密鑰或原始數(shù)據(jù)達(dá)到安全刪除的目的。由于按塊擦除,一次性刪除的數(shù)據(jù)較多,因此,該方法可用于大量數(shù)據(jù)的刪除;但當(dāng)塊上含有有效密鑰或數(shù)據(jù)時,就需要先將有效密鑰或數(shù)據(jù)復(fù)制到有效頁,然后再進(jìn)行擦除。必然導(dǎo)致額外的時間開銷,造成存儲設(shè)備的磨損懲罰。零覆寫是指通過將頁中的位全部置零實現(xiàn)數(shù)據(jù)安全刪除。該方法只需要覆寫待刪除頁即可,不會因有效數(shù)據(jù)而帶來額外的開銷,但是若塊中待刪除頁較多,零覆寫造成的時間開銷將會很大。此外,文獻(xiàn)[15]中指出這種方法只適用于一部分NAND型閃存。
對于這兩種方法來說,都會帶來一定的開銷,為了分析兩種方法的性能,進(jìn)行相應(yīng)符號設(shè)置如表1所示。
表1 符號設(shè)置
對含有NE個有效頁的塊進(jìn)行擦除的時間開銷為NE×(TW+ TR)+ TE;對于含有NO個刪除頁的塊進(jìn)行零覆寫的時間開銷為:NO×TW,另外,進(jìn)行頁的零覆寫后,如果需要重新使用,仍需要進(jìn)行塊擦除,消耗時間為TE,即零覆寫總的時間開銷為NO×TW+TE。因此,針對有效頁和刪除頁一定的情況,只需要比較NE×( TW+ TR)和NO× TW的大小,就可以判斷哪種方法開銷更小。
3安全刪除控制器的設(shè)計與實現(xiàn)
根據(jù)不同層次實現(xiàn)數(shù)據(jù)安全刪除的要求和可靠性的不同,本節(jié)設(shè)計了一種具有較高寫入速度和安全要求的數(shù)據(jù)安全刪除控制器。此外,由于進(jìn)行零覆寫會導(dǎo)致存儲器產(chǎn)生錯誤,因此,本控制器采用擦除的方法。為了保證刪除的可靠性,進(jìn)行擦除后再寫入偽隨機(jī)數(shù)。
3.1硬件平臺
系統(tǒng)編程器以Linux操作系統(tǒng)為平臺,通過使用硬件實現(xiàn),其結(jié)構(gòu)圖具體如圖2所示。
圖2 硬件平臺
系統(tǒng)主控制器選用基于ARM7內(nèi)核的LPC2214[20]。LPC2214微處理器用于實現(xiàn)系統(tǒng)整體控制;程序存儲和運行于ARM芯片的FLASH和SRAM中;電池的作用是在未加電情況下給系統(tǒng)供電;按鍵通過GPIO端口連接,用于用戶操作;指示燈指示存儲芯片的連接情況和擦除寫入過程的完成情況。其工作顯示狀態(tài)如表2所示。
表2 指示燈狀態(tài)指示
3.2模塊組成
系統(tǒng)包括驅(qū)動層、功能層和控制層三層,采用模塊化設(shè)計,關(guān)系如圖3所示。
圖3 系統(tǒng)結(jié)構(gòu)圖
(1) 主控模塊構(gòu)成系統(tǒng)的控制層,實現(xiàn)對系統(tǒng)的整體控制,完成對各個功能模塊的調(diào)用或切換。
(2) 功能層是系統(tǒng)主體,分為擦除、寫入、偽隨機(jī)數(shù)產(chǎn)生、電量控制、狀態(tài)指示五個模塊。擦除和寫入模塊共同實現(xiàn)閃存的數(shù)據(jù)安全刪除,并對擦除寫入過程中產(chǎn)生的壞塊進(jìn)行管理;偽隨機(jī)數(shù)產(chǎn)生模塊產(chǎn)生用于寫入操作的隨機(jī)序列;電量控制模塊可對當(dāng)前電量進(jìn)行測量,低時進(jìn)行充電,高時斷開充電電路;狀態(tài)指示模塊用于指示閃存芯片連接、擦除、寫入情況。
(3) 系統(tǒng)驅(qū)動層包括總線開關(guān)驅(qū)動和I/O端口驅(qū)動兩個模塊,用于直接與硬件設(shè)備的交互。其中,通過總線開關(guān)驅(qū)動可以斷開或聯(lián)通控制器與閃存設(shè)備的連接,通過I/O端口驅(qū)動實現(xiàn)閃存芯片的擦除操作,以及為功能模塊提供數(shù)據(jù)訪問控制。
3.3系統(tǒng)實現(xiàn)
本文以K9K8G08U0M[21]為例,進(jìn)行數(shù)據(jù)安全刪除參數(shù)設(shè)置。K9K8G08U0M的規(guī)格是1 GB×8,含有8192個塊,劃分成四個存儲平面(Plane),即Plane0-Plane3;每個存儲平面內(nèi)含2048個塊,而每個塊由64個存儲頁面組成。塊大小是(128 KB+4 KB),頁大小是(2 KB+64 KB),其中含有64個備用字節(jié),安排在頁面高位地址區(qū)。
K9K8G08U0M芯片采用命令、地址和總數(shù)據(jù)線復(fù)合設(shè)計,通過一條8位的雙向總線分時地傳送命令、地址和數(shù)據(jù),其相關(guān)操作指令如表3所示。
表3 操作指令表(十六進(jìn)制)
3.3.1操作時序
系統(tǒng)依據(jù)芯片的操作時序?qū)崿F(xiàn)塊擦除、頁寫入功能。其狀態(tài)轉(zhuǎn)換如圖4所示。
圖4 狀態(tài)轉(zhuǎn)換圖
(1) 擦除時序
擦除操作的作用就是把塊中的全部位置1,刪除先前的所有數(shù)據(jù),并使存儲單元能重新寫入數(shù)據(jù)。為了提高擦除速度,采用雙平面雙塊擦除的方式,但雙平面操作只允許在Plane0和Plane1或者Plane2和Plane3之間進(jìn)行,其他平面組合被禁止?;静僮鞑襟E如下:
① 寫入擦除命令60H;
② 輸入塊地址;
③ 寫入擦除命令60H;
④ 輸入塊地址;
⑤ 寫入擦除確認(rèn)命令D0H,啟動擦除控制器進(jìn)行擦除操作。
(2) 寫入時序
為了提高寫入速度,依然采用雙平面雙頁面的編程方式?;静僮鞑襟E如下:
① 寫入頁編程命令80H;
② 輸入頁地址;
③ 寫入虛擬編程命令11H;
④ 寫入頁編程命令81H;
⑤ 輸入頁地址;
⑥ 寫入編程確認(rèn)命令(10H)。
………
寫入該塊中最后一頁為止。
3.3.2實現(xiàn)流程
① 按下銷毀按鍵后,主控模塊向擦除模塊發(fā)送啟動擦寫命令,調(diào)用擦除模塊對芯片進(jìn)行擦除;
② 擦除完畢后,擦除模塊將結(jié)果傳送給主控模塊;
③ 主控模塊收到指令后,調(diào)用偽隨機(jī)數(shù)產(chǎn)生模塊和寫入模塊,將產(chǎn)生的偽隨機(jī)數(shù)寫到控制器內(nèi)部的數(shù)據(jù)緩存中,由寫入模塊將偽隨機(jī)數(shù)寫到相應(yīng)的區(qū)域;
④ 通過狀態(tài)指示模塊,判斷數(shù)據(jù)安全刪除的完成情況。
3.3.3可行性分析
為了驗證所提方案的可行性,利用本方案分別進(jìn)行數(shù)據(jù)擦除和隨機(jī)數(shù)寫入,并且采用HexEdit分別查看擦除前、擦除后和寫入隨機(jī)數(shù)后芯片的同一物理地址,其結(jié)果分別如圖5-圖7所示。
圖5 芯片擦除前的物理數(shù)據(jù)
圖6 存儲芯片擦除后的物理數(shù)據(jù)
圖7 芯片寫入隨機(jī)數(shù)后的物理數(shù)據(jù)
從以上三幅圖中可以看到,進(jìn)行數(shù)據(jù)擦除后,同一物理地址的數(shù)據(jù)由原始數(shù)據(jù)變?yōu)镕F(十六進(jìn)制),隨著隨機(jī)數(shù)據(jù)的寫入,又由FF變成一串新的隨機(jī)數(shù)。
實驗結(jié)果表明該方案能夠執(zhí)行擦除和寫入隨機(jī)數(shù)操作,實現(xiàn)了先擦除再寫入隨機(jī)碼的功能,達(dá)到了數(shù)據(jù)安全刪除的目的,確保了數(shù)據(jù)安全,有效避免了數(shù)據(jù)殘留導(dǎo)致的數(shù)據(jù)泄露問題。
4結(jié)語
本文提出了一種基于控制器層的數(shù)據(jù)安全刪除方法,描述了該方法的實現(xiàn)流程,并通過仿真實驗證明該方法能夠?qū)崿F(xiàn)閃存芯片的數(shù)據(jù)安全刪除,對信息安全具有很好的保護(hù)作用,但基于控制器的數(shù)據(jù)安全刪除方法會因為存儲芯片容量增大刪除時間不斷增長?;诩用艿臄?shù)據(jù)安全刪除方法可以將大量數(shù)據(jù)的刪除轉(zhuǎn)換為小量密鑰的刪除,因此設(shè)計基于加密的安全刪除方法能明顯提高系統(tǒng)效率,減少對芯片的磨損,是下一步的研究重點。
參考文獻(xiàn)
[1] Roubos D,Palmieri L,Kachur R L,et al.A Study of Information Privacy and Data Sanitization Problems[J].Journal of Computing Sciences in Colleges,2007,22(4):212-219.
[2] Swanson S,Wei M.SAFE:Fast,Verifiable Sanitization for SSDs[OL].UCSD,Tech.Rep.,Oct.2010.
[3] Tang Y,Lee P P C,Lui J C S,et al.Perlman,FADE:Secure Overlay Cloud Storage with File Assured Deletion[C]//Secure Communication,2010:380-397.
[4] Lee J.Flash Memory[M].Intel Corporation,1994.
[5] McLean P T.AT Attachment with Packet Interface Extension (ATA/ATAPI-4)[OL].1998.http://www.t10.org/t13/project/d1153r18-ATA-ATAPI-4.pdf.
[6] Hughes G,Coughlin T,Commins D.Disposal of disk and tape data by secure sanitization[J].Security Privacy, IEEE,2009,7(4):29-34.
[7] David W.Understanding the Flash Translation Layer[EB/OL].http://developer.intel.com/.Technical report,Intel Corporation,Dec.1998.
[8] Aleph One Company.YAFFS[EB/OL].2002-06-20.http://www.alephl.co.uk.
[9] UBIFS[EB].http://en.wokopedia.org/wiki/UBIFS.
[10] Diesburg S,Meyers C,Stanovich M,et al.TrueErase: Per-File Secure Deletion for the Storage Data Path[C]//Proceedings of the 2012 ACM Annual Computer Security Applications Conference (ACSAC’12):439-448.
[11] Intel Corporation.Intel Solid-State Drive Optimizer[OL].2009.http://download.intel.com/design/flash/nand/mainstream/Intel SSD Optimizer White Paper.pdf.
[12] Wei M,Grupp L M,Spada F M,et al.Reliably Erasing Data from Flash-Based Solid State Drives[C]//USENIX conference on File and Storage Technologies,Berkeley,CA,USA,2011:105-117.
[13] 彭勇,葉豐華.一種固態(tài)硬盤快速數(shù)據(jù)銷毀的結(jié)構(gòu)設(shè)計:中國,ZL2012201810407[P].2012-11-07.
[14] Kim J.f2fs:introduce flash-friendly file system[OL].2012.https://lkml.org/lkml/2012/10/5/205.
[15] Open NAND Flash Interface.Open NAND Flash Interface Specification,version 3.0[OL].2011.http://onfi.org/specifications/.
[16] Lee J,Yi S,Heo J,et al.An Efficient Secure Deletion Scheme for Flash File Systems[J].Journal of Information Science and Engineering,2010:27-38.
[17] Charles Manning.How YAFFS Works.2010.
[18] Reardon J,Capkun S,Basin D.Data Node Encrypted File System:Efficient Secure Deletion for Flash Memory[C]//USENIX Security Symposium,2012:333-348.
[19] Hunter A.A Brief Introduction to the Design of UBIFS[OL].2008.http://www.linux-mtd.infradead.org/doc/ubifs whitepaper.pdf.
[20] NXP Semiconductors.LPC2212/2214 Product data sheet[S].2008.
[21] Samsung Semiconductor.Inc.8Gbit/16Gbit NAND Flash Memory[EB/OL].2005-02-14.http://www.samsung.com/products/semicond-uctor/Flash/NAND//8Gbit/K9K8G08U0M.htm.
中圖分類號TP334.5
文獻(xiàn)標(biāo)識碼A
DOI:10.3969/j.issn.1000-386x.2016.02.019
收稿日期:2014-03-13。李杰,碩士生,主研領(lǐng)域:新型計算技術(shù)。李景峰,副教授。房方,碩士。