APP下载

面向NAND闪存的数据安全删除研究

2016-03-17李景峰

计算机应用与软件 2016年2期
关键词:数据安全密钥芯片

李 杰 李景峰 房 方

(解放军信息工程大学 河南 郑州 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]。

所谓数据安全删除是指通过各种技术手段,使存储载体中的数据被删除后不可恢复,且设备可用于二次利用。现在已经针对磁介质提出了多种基于覆写的安全删除方法,但由于闪存先擦除再写入的特点[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之间进行,其他平面组合被禁止。基本操作步骤如下:

① 写入擦除命令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。李杰,硕士生,主研领域:新型计算技术。李景峰,副教授。房方,硕士。

猜你喜欢

数据安全密钥芯片
芯片会议
幻中邂逅之金色密钥
关于射频前端芯片研发与管理模式的思考
密码系统中密钥的状态与保护*
云计算中基于用户隐私的数据安全保护方法
TPM 2.0密钥迁移协议研究
建立激励相容机制保护数据安全
一种对称密钥的密钥管理方法及系统
大数据云计算环境下的数据安全
多通道采样芯片ADS8556在光伏并网中的应用