李 杰 李景峰 房 方
(解放軍信息工程大學 河南 鄭州 450004)
?
面向NAND閃存的數據安全刪除研究
李杰李景峰房方
(解放軍信息工程大學河南 鄭州 450004)
摘要針對閃存的數據安全刪除提出一種載體訪問分層模型,討論在各層訪問并實現數據安全刪除的優缺點,給出各層具有代表性的數據安全刪除方法與技術。最后,提出一種基于控制器的數據安全刪除方案,詳細描述方案的實現流程以及各模塊的主要功能。實驗表明,該方法能夠實現數據的安全刪除。
關鍵詞安全刪除閃存文件系統控制器
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共同的優點,分為NOR型和NAND型,是一種掉電后信息不會丟失的非易失型存儲器。NOR型閃存和NAND型閃存的區別很大,NOR型更像內存,有獨立的地址線和數據線,價格較高,容量較??;NAND型更像硬盤,地址線和數據線共用,與NOR型閃存相比,其成本較低、容量較大。近來,閃存(特別是NAND型閃存)得到了快速發展,不僅容量越來越大,可靠性也在不斷提高,在移動電話、數碼相機、PDA多媒體消費類電子產品中得到了廣泛的應用。但是,Demetrios Roubos等人在購買的一些二手電子存儲設備中恢復出了大量隱私信息[1],證明閃存的數據殘留非常普遍,導致了嚴重的數據安全問題。為了確保數據安全,必須確保存儲敏感數據的閃存得到安全刪除[2,3]。
所謂數據安全刪除是指通過各種技術手段,使存儲載體中的數據被刪除后不可恢復,且設備可用于二次利用?,F在已經針對磁介質提出了多種基于覆寫的安全刪除方法,但由于閃存先擦除再寫入的特點[4],這些方法都受到了限制。因此,提出一種安全刪除閃存上敏感數據的方法,已經成為一個重要的研究內容。
1載體訪問分層模型
1.1分層模型
由于對存儲介質的訪問需要通過不同層次的接口來實現,因此可以利用這些接口進行數據安全刪除。個人計算機上訪問閃存的分層方式如圖1所示。

圖1 載體訪問分層模型
1.2各層訪問特性分析
不管如何實現數據安全刪除,都需要考慮安全刪除的性能特點,本節將詳細分析圖1所示各層訪問實現數據安全刪除的特性。
1.2.1控制器層
控制器提供了一個標準化的、明確的硬件接口,如SCSI或ATA[5],允許讀寫物理介質上大小固定的塊。SCSI和ATA還可以提供能夠刪除物理介質上所有數據的刪除命令[6]。但該命令不能刪除特定數據對象,這造成了基于控制器層的數據安全刪除的靈活性較差。另外,對所有塊進行安全刪除,耗時會隨著閃存容量的變大而不斷增加。
1.2.2文件系統層
文件系統層通過使用設備驅動程序接口,允許對文件進行讀、寫、創建等操作。目前文件系統訪問閃存主要分為兩類,一是通過FTL[7](Flash Translation Layer)層,模擬磁介質的塊設備訪問方法;一是為了延長設備壽命,設計專用于閃存的文件系統,如YAFFS[8]、UBIFS[9,19]。文件系統層可訪問不同類型的硬件,基于文件系統層的安全刪除應用范圍廣泛,且利用閃存專用的文件系統實現安全刪除不受寫入和擦除粒度的限制。但利用塊文件系統會給閃存帶來巨大的磨損;此外文件系統比較復雜,安全刪除的實現難度大。
1.2.3用戶應用程序層
用戶應用程序是進行介質訪問的最高層,能夠提供圖形用戶界面。一個安全刪除用戶應用程序只能與兼容POSIX的文件系統相互作用。在用戶應用程序中進行數據安全刪除,可以很容易地刪除特定數據對象,靈活性好;但保證數據不可恢復的程度最小,且會帶來很高的磨損。
總之,對于安全刪除方法來說,在選擇使用訪問層次時要權衡效率和磨損兩個因素。事實上,抽象接口距離介質越遠,就越難保證數據的不可恢復。因此,當一層不能實現數據安全刪除時,可以利用文件系統層向更低層傳遞刪除對象的信息[10,11]實現數據安全刪除,這樣可使數據安全刪除方法更為高效。
2現有數據安全刪除方法與技術
針對閃存的數據安全刪除逐步引起了人們的重視,許多專家學者已經提出了相應的解決方案,下面結合載體訪問層次模型給出具有代表性的數據安全刪除方法與技術。
2.1控制器層的安全刪除
Wei等人[12]觀察到閃存中控制器層的安全刪除并不總是正確的。在某些情況下,設備報道操作成功時,整個文件系統卻仍然可用。
在后續的研究工作中,Swanson等人[2]描述了一種可證實的全設備銷毀方法,并與硬盤消磁進行了比較。他們提出用密鑰加密寫入物理介質的所有數據,并將密鑰存儲在硬件控制器內;銷毀設備時,首先擦除控制器內的密鑰,其次通過寫入預設序列對設備上的塊進行兩次擦除;最后,重新初始化設備,并給閃存控制器一個新的密鑰。
彭勇等發明了一種固態硬盤快速數據銷毀的結構設計[13],可通過控制芯片實現數據的清除,且清除后不可恢復。
2.2文件系統層的安全刪除
文件系統層的數據安全刪除是目前主流的研究方法,已經提出了多種方案和技術。
(1) 最初提出了緊湊的方法。該方法復制塊上的有效數據到其它地方后執行擦除操作,因此操作代價很大,主要包括復制數據的消耗時間,以及移動和擦除造成的磨損。
(2) 對緊湊的方法進行改進后,提出了分批緊湊的方法。該方法間歇地進行數據安全刪除。盡管有刪除延遲,但其刪除的分攤時間和耗損在減小。事實上,日志結構文件系統已經執行一個類似的技術來恢復浪費空間,通常稱之為垃圾收集[14]。垃圾收集試圖優化擦除的次數,但不考慮刪除延遲這一問題。
(3) Wei 等人[12]提出了擦洗的方法。擦洗工作是通過使閃存中所有單元充電變為零來避免敏感信息,這樣塊上的其它數據仍然可用,但官方尚未給予定義[15]。作者在實際中測試了該方法所導致的錯誤率,實驗表明有的設備會導致頻繁的錯誤,而有的不會產生錯誤。
(4) Lee 等人[16]針對YAFFS[10]提出了相應的安全刪除方法。該方法是用唯一的密鑰加密每一個文件,密鑰存儲在相應的文件頭里。文件系統把所有的文件頭存儲在一個擦除塊上。這樣,可通過刪除單獨的擦除塊實現所有數據的安全刪除,明顯減少了安全刪除的成本。
(5) Reardon 等人[18]提出了DNEFS。該方法是在UBIFS[9,19]上實現的,通過修改文件系統在存儲文件時用唯一的密鑰加密每個數據塊,并把密鑰存儲到密鑰存儲區。安全刪除是間歇地用新的密鑰替換原來密鑰存儲區的密鑰。
2.3用戶應用程序層的安全刪除
目前主要有三種用戶級的刪除方法,一種是介質接口上的安全刪除程序;一種是解鏈前覆寫數據;一種是先解鏈,再填充介質的空閑容量。
總體上看,現有的數據安全刪除方法一般都是通過塊擦除或零覆寫的方法。塊擦除技術是通過擦除整塊的密鑰或原始數據達到安全刪除的目的。由于按塊擦除,一次性刪除的數據較多,因此,該方法可用于大量數據的刪除;但當塊上含有有效密鑰或數據時,就需要先將有效密鑰或數據復制到有效頁,然后再進行擦除。必然導致額外的時間開銷,造成存儲設備的磨損懲罰。零覆寫是指通過將頁中的位全部置零實現數據安全刪除。該方法只需要覆寫待刪除頁即可,不會因有效數據而帶來額外的開銷,但是若塊中待刪除頁較多,零覆寫造成的時間開銷將會很大。此外,文獻[15]中指出這種方法只適用于一部分NAND型閃存。
對于這兩種方法來說,都會帶來一定的開銷,為了分析兩種方法的性能,進行相應符號設置如表1所示。

表1 符號設置
對含有NE個有效頁的塊進行擦除的時間開銷為NE×(TW+ TR)+ TE;對于含有NO個刪除頁的塊進行零覆寫的時間開銷為:NO×TW,另外,進行頁的零覆寫后,如果需要重新使用,仍需要進行塊擦除,消耗時間為TE,即零覆寫總的時間開銷為NO×TW+TE。因此,針對有效頁和刪除頁一定的情況,只需要比較NE×( TW+ TR)和NO× TW的大小,就可以判斷哪種方法開銷更小。
3安全刪除控制器的設計與實現
根據不同層次實現數據安全刪除的要求和可靠性的不同,本節設計了一種具有較高寫入速度和安全要求的數據安全刪除控制器。此外,由于進行零覆寫會導致存儲器產生錯誤,因此,本控制器采用擦除的方法。為了保證刪除的可靠性,進行擦除后再寫入偽隨機數。
3.1硬件平臺
系統編程器以Linux操作系統為平臺,通過使用硬件實現,其結構圖具體如圖2所示。

圖2 硬件平臺
系統主控制器選用基于ARM7內核的LPC2214[20]。LPC2214微處理器用于實現系統整體控制;程序存儲和運行于ARM芯片的FLASH和SRAM中;電池的作用是在未加電情況下給系統供電;按鍵通過GPIO端口連接,用于用戶操作;指示燈指示存儲芯片的連接情況和擦除寫入過程的完成情況。其工作顯示狀態如表2所示。

表2 指示燈狀態指示
3.2模塊組成
系統包括驅動層、功能層和控制層三層,采用模塊化設計,關系如圖3所示。

圖3 系統結構圖
(1) 主控模塊構成系統的控制層,實現對系統的整體控制,完成對各個功能模塊的調用或切換。
(2) 功能層是系統主體,分為擦除、寫入、偽隨機數產生、電量控制、狀態指示五個模塊。擦除和寫入模塊共同實現閃存的數據安全刪除,并對擦除寫入過程中產生的壞塊進行管理;偽隨機數產生模塊產生用于寫入操作的隨機序列;電量控制模塊可對當前電量進行測量,低時進行充電,高時斷開充電電路;狀態指示模塊用于指示閃存芯片連接、擦除、寫入情況。
(3) 系統驅動層包括總線開關驅動和I/O端口驅動兩個模塊,用于直接與硬件設備的交互。其中,通過總線開關驅動可以斷開或聯通控制器與閃存設備的連接,通過I/O端口驅動實現閃存芯片的擦除操作,以及為功能模塊提供數據訪問控制。
3.3系統實現
本文以K9K8G08U0M[21]為例,進行數據安全刪除參數設置。K9K8G08U0M的規格是1 GB×8,含有8192個塊,劃分成四個存儲平面(Plane),即Plane0-Plane3;每個存儲平面內含2048個塊,而每個塊由64個存儲頁面組成。塊大小是(128 KB+4 KB),頁大小是(2 KB+64 KB),其中含有64個備用字節,安排在頁面高位地址區。
K9K8G08U0M芯片采用命令、地址和總數據線復合設計,通過一條8位的雙向總線分時地傳送命令、地址和數據,其相關操作指令如表3所示。

表3 操作指令表(十六進制)
3.3.1操作時序
系統依據芯片的操作時序實現塊擦除、頁寫入功能。其狀態轉換如圖4所示。

圖4 狀態轉換圖
(1) 擦除時序
擦除操作的作用就是把塊中的全部位置1,刪除先前的所有數據,并使存儲單元能重新寫入數據。為了提高擦除速度,采用雙平面雙塊擦除的方式,但雙平面操作只允許在Plane0和Plane1或者Plane2和Plane3之間進行,其他平面組合被禁止?;静僮鞑襟E如下:
① 寫入擦除命令60H;
② 輸入塊地址;
③ 寫入擦除命令60H;
④ 輸入塊地址;
⑤ 寫入擦除確認命令D0H,啟動擦除控制器進行擦除操作。
(2) 寫入時序
為了提高寫入速度,依然采用雙平面雙頁面的編程方式。基本操作步驟如下:
① 寫入頁編程命令80H;
② 輸入頁地址;
③ 寫入虛擬編程命令11H;
④ 寫入頁編程命令81H;
⑤ 輸入頁地址;
⑥ 寫入編程確認命令(10H)。
………
寫入該塊中最后一頁為止。
3.3.2實現流程
① 按下銷毀按鍵后,主控模塊向擦除模塊發送啟動擦寫命令,調用擦除模塊對芯片進行擦除;
② 擦除完畢后,擦除模塊將結果傳送給主控模塊;
③ 主控模塊收到指令后,調用偽隨機數產生模塊和寫入模塊,將產生的偽隨機數寫到控制器內部的數據緩存中,由寫入模塊將偽隨機數寫到相應的區域;
④ 通過狀態指示模塊,判斷數據安全刪除的完成情況。
3.3.3可行性分析
為了驗證所提方案的可行性,利用本方案分別進行數據擦除和隨機數寫入,并且采用HexEdit分別查看擦除前、擦除后和寫入隨機數后芯片的同一物理地址,其結果分別如圖5-圖7所示。

圖5 芯片擦除前的物理數據

圖6 存儲芯片擦除后的物理數據

圖7 芯片寫入隨機數后的物理數據
從以上三幅圖中可以看到,進行數據擦除后,同一物理地址的數據由原始數據變為FF(十六進制),隨著隨機數據的寫入,又由FF變成一串新的隨機數。
實驗結果表明該方案能夠執行擦除和寫入隨機數操作,實現了先擦除再寫入隨機碼的功能,達到了數據安全刪除的目的,確保了數據安全,有效避免了數據殘留導致的數據泄露問題。
4結語
本文提出了一種基于控制器層的數據安全刪除方法,描述了該方法的實現流程,并通過仿真實驗證明該方法能夠實現閃存芯片的數據安全刪除,對信息安全具有很好的保護作用,但基于控制器的數據安全刪除方法會因為存儲芯片容量增大刪除時間不斷增長。基于加密的數據安全刪除方法可以將大量數據的刪除轉換為小量密鑰的刪除,因此設計基于加密的安全刪除方法能明顯提高系統效率,減少對芯片的磨損,是下一步的研究重點。
參考文獻
[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] 彭勇,葉豐華.一種固態硬盤快速數據銷毀的結構設計:中國,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
文獻標識碼A
DOI:10.3969/j.issn.1000-386x.2016.02.019
收稿日期:2014-03-13。李杰,碩士生,主研領域:新型計算技術。李景峰,副教授。房方,碩士。