结合容量伪装和双文件系统的文件隐藏方法
打开文本图片集
摘要:针对现有基于通用串行总线(USB)移动存储设备的文件隐藏方法存在的鲁棒性差及隐藏强度低的问题,提出一种结合容量伪装和双文件系统的文件隐藏方法。在分析Nand flash芯片的特点及其管理机制的基础上,该方法通过篡改命令状态包(CSW)中的设备容量值,实现容量伪装,达到欺骗主机的目的;利用闪存转换层(FTL)存储管理机制,通过在物理块冗余区标记不同的内容把物理块分成两部分,划分隐藏区和普通区,利用格式化功能建立双文件系统;用户通过写特定数据发送切换文件系统请求,设备进行用户认证后完成文件系统切换,实现隐藏区的安全访问。理论分析和实验结果表明,该方法实现了对操作系统透明的文件隐藏;相对于挂接应用程序编程接口(API)、基于文件分配表(FAT)的修改以及加密等实现的文件隐藏方法,该方法不受系统对设备操作的影响,具有更好的鲁棒性和更高的隐藏强度。
关键词:闪存转换层;文件隐藏;文件分配表;双文件系统;身份认证;容量伪装
中图分类号:TP309.1 文献标志码:A
0引言
通用串行总线(Universal Serial Bus, USB)移动存储设备,如U盘、U3技术智能闪存盘等,已经成为数据传输的中转站,在计算机间的数据交换中扮演着重要角色。与此同时,数据的安全性问题也日益突出,个人的重要文件经常遭到窃取或破坏,而文件隐藏作为保护敏感数据文件和数据安全的一种重要方法正得到越来越多的研究。
现有的文件隐藏技术主要有以下几种:修改注册表[1],使得用户无法通过普通的文件操作看到被隐藏文件;借助图像、视频[2-5]等文件作为宿主文件,将寄生文件隐藏在其中,如图像水印技术可将文件隐藏在图像信息中;挂接系统应用程序编程接口(Application Programming Interface, API)函数[6-7],使用用户自定义的文件管理相关函数挂接系统原文件管理函数的入口地址的方式,过滤隐藏文件的访问信息,使得用户无法通过资源管理器看到被隐藏的文件;修改文件系统结构,FAT32文件系统中,文件的目录项有一个字节表示此文件的属性,而操作系统默认隐藏具有卷标属性的文件,文献[8]就是通过修改该字节,把一个普通文件赋予卷标文件的属性,来达到文件隐藏的目的;文献[9]在此基础上,修改文件目录项中记录文件存储位置首簇号的内容,同时将隐藏文件对应首簇号记录在FAT32文件系统的冗余扇区中,实现隐藏文件记录信息文件的隐藏,增加文件的隐藏强度;文献[10]提出一种通过修改目录项属性和重构FAT表序列的文件隐藏方法;文献[11]则利用Nand flash存储芯片特点,把文件存储在其用于坏块管理的冗余块中,实现文件隐藏;文献[12]提出把文件隐藏在文件系统中已存在文件的扇区碎片中。
对于文件隐藏,其最重要的衡量标准就是文件的隐藏强度,即文件隐藏的不可感知性和破解查找隐藏文件所需要的时间复杂度以及技术难度。上述方法都能够实现文件的隐藏,但隐藏强度不同。把文件寄宿在宿主文件中的方法容易受宿主文件的操作的影响,鲁棒性太差;文献[11]利用存储芯片特点隐藏文件的方法隐藏强度较好,但是隐藏容量不大,容易影响芯片坏块的管理;文献[12]具有较强的隐蔽性,但其鲁棒性差,隐藏容量小,容易受文件操作的影响;其他几种方法都是采用的主机端技术,如过滤驱动、修改文件属性、重构FAT表等。另外,现有的文件隐藏方法依赖操作系统实现,并不适用于移动存储设备。以上文件隐藏方法有两个主要缺点:1)没有考虑隐藏文件的不可感知性,即攻击者很容易知道隐藏文件的存在,从而窃取隐藏文件;2)隐藏文件容易受文件操作的影响,如格式化操作,攻击者可以通过格式化设备来破坏隐藏文件。
针对上述问题,本文基于Nand Flash存储芯片存储文件和操作系统枚举USB设备的相关机制,采用分割存储区域和欺骗主机存储设备容量等技术,提出一种结合双文件系统和容量伪装的文件隐藏(File Hidden based on Capacity disguised and Double file system, FHCD)方法,并在设备中对该方法进行了实现。实验结果和分析表明,本文方法不仅能够实现文件隐藏对操作系统的透明化,而且比现有方法具有更高的隐藏强度,能够克服隐藏文件随设备格式化而丢失的缺点。
1Nand Flash
Nand Flash内存是Flash存储器的一种,其内部采用非线性宏单元模式,在使用时将其划分为区、块、页三级。此处以2000页(Pages)为例进行分析,一个物理页大小可存放4个逻辑扇区的信息。因此,在使用时还需要将2000页分割为4个子页(SubPages)。每个子页大小为528B,其中前512B用于数据存储,后16B存放坏块管理的相关信息(如页属性、块的好坏等)称为冗余区(Redundant Area);每64个2000页构成一个物理块;每1024个物理块组成一个区(Zone)。图1为128MB大小的Nand Flash,故只有一个zone。Nand Flash存储器具有容量大、成本低、读写速度快等优点,适用于存储大容量的数据。Nand Flash芯片同普通的Flash芯片一样无法像磁盘一样随机存取,只能以一定大小的扇区为单位进行操作,因此,Nand Flash芯片的读写需要借助主控芯片完成。
1.1闪存转换层管理机制
闪存转换层(Flash Translation Layer, FTL)是一种软件中间层,最初由Intel提出,用于将闪存模拟成为虚拟块设备,从而能够在闪存上实现FAT等块设备类文件系统。FTL包含了地址映射、垃圾回收、损耗均衡等几个方面的内容。
FTL最重要的功能就是完成逻辑块地址到物理块地址的转换。逻辑块地址是指从主机角度出发的存储器可用地址编址,是文件系统建立的基础;物理块地址是指Flash存储器中按照实际的物理位置自然排列的地址块。本文以存储芯片采用三星K9F1G08D0M和接口控制芯片采用通用性较强的CY7C68013A构造的USB移动存储设备为例,讨论FTL的机制。在Nand Flash中逻辑块与物理块的映射关系如图2所示。
推荐访问: 文件系统 伪装 容量 隐藏 文件