论文摘要
NANDFlash以其大容量,低成本,低功耗,抗震荡在非易失存储介质中占据重要地位,已经被广泛应用于消费型电子,航空设备等领域。但是由于NANDFlash的物理特性不同于磁盘存储设备,需要为其提供特别的存储管理方案。现在主流的解决方案分为FTL+磁盘文件系统和Flash文件系统两种。Flash文件系统一般采用日志结构,提供掉电保护,崩溃恢复机制和垃圾收集机制,在嵌入式应用中使用广泛。NANDFlash作为非易失存储介质大量应用于嵌入式系统,我们必须重视存储信息的安全问题。由于嵌入式系统具有体积小,便于携带,多部署于公共场所等特性,一旦发生设备遗失、被窃或非法攻击,这些敏感数据将会被非法分子获取,给拥有者造成损失,甚至威胁到国家安全。加密文件系统是对抗物理攻击的一种重要方式,具有以文件粒度加密,抗暴力分析能力强;使用简单,对用户层应用透明等特点。因此,设计并实现一款针对嵌入式应用的NANDFlash加密文件系统,具有现实意义与实用价值。
本文首先分析NANDFlash的物理特性与Li~中文件系统架构,研究EFS,CFS,eCryPtfs等加密文件系统的系统架构与加解密机制,为NFEFs文件系统的设计提供参考与借鉴。随后深入研究YAFFsZ文件系统的源代码,详细分析了YAFFSZ中初始化挂载流程,读写机制,对象(ObjecO创建机制,垃圾收集机制,为NFEFS的实现打下了基础。接着在文中提出了NFEFS文件系统的设计要求,总体架构,并且给出了在YAFFSZ文件系统的基础上对文件内容加密,对文件结构信息加密,密钥管理机制以及对不同Linux内核版本的支持的具体实现。最后设计测试方案,对NFEFS的读写性能指标进行测试与分析。
关键词:嵌入式系统、加密、Linux、NANDFlash、YAFFSZ
随着科学技术不断发展,嵌入式系统的应用范围越来越广泛,对于大容量存储的需求也越来越来大,NANDFlash以其大容量(已有64G的芯片投入实用),低成本,低功耗,高速读写,抗震荡等诸多优势在实际应用如消费型电子产品,移动多媒体终端(PMP),航天设备等中占据巨大份额[l]。由于NANDFLASH的物理特性与传统的硬盘存储介质不同,不能直接在其上使用原有的磁盘文件系统(FAT,ext3等),需要进行相应的转换。由此,出现了很多的解决方案。解决方案主要分为两类,一类是采用闪存转换层(FTL),其主要原理是将FLASH模拟成为一个传统磁盘器件,通过管理逻辑页地址与物理页地址之间的映射转换,在其上直接应用FAT,ext3等磁盘文件系统:另一类则是使用特制的日志文件系统来实现对Flash的存储管理,如:YAFFS,JFFS,ubifs。
认FFSm是专门针对NANDFlash进行设计,采用类似JFFS/JFFSZ的日志式文件系统。YAFFS拥有更快的启动速度,占用内存更少,YAFFS可以工作在不同的操作系统下(如:LINUX,WINCE);并且提供direct模式,可以在无操作系统的情况下使用l3]。
在NANDFlash大量应用于嵌入式系统的同时,信息安全的问题日益凸显。
一方面,在当今的信息社会,信息和数据具有越来越高的重要性;另一方面,由于嵌入式系统本来就具有体积小,便于携带,多部署于公共场所等特性,一旦发生设备的遗失、被窃或非法攻击,这些敏感数据将会被非法分子获取,给拥有者造成损失,甚至威胁到国家安全,由此对信息安全提出了极大的挑战。
特别是在器件丢失的情况下,我们平时所依靠的操作系统安全机制将受到威胁,非法分子完全可以绕过安全操作系统机制,简单的使用另一个不同的操作系统来获取存储介质中的机密数据。要解决这种安全威胁,对存储介质中的明文数据进行加密就成为了唯一有效的应对这种威胁的方法。存储介质的加密方式一般分为3种,包括文件加密方式、存储介质加密方式和加密文件系统。
.在应用层使用某种文件加密工具是最基本的加密方式,由于需要用户的参与,可能会导致用户忘记使用加密工具或误操作的情况。另外,对于大文件的加密,由于需要读出完整的文件内容,将会导致读写速度降低;.存储介质加密在设备驱动层上实现,是使用驱动对对整个存储介质进行加密,以这种方式实现的加密系统主要有BestcryPt,PGPDisk和Linuxe砂ptoloop等,较缺乏灵活性,无法实现文件粒度的加密;.加密文件系统在普通文件系统的功能的基础上进行扩展,在文件系统中实现加解密,加密文件系统能够实现文件粒度的加密工作,还能提供用户粒度的文件加密管理。Linux中加密文件系统包括CFS,TCFS,以及最新的堆栈式架构的eCrytfs。
由于上述加密文件系统方案并不是针对NANDFlash所设计,所以并没有针对NANDFlash的物理性质进行优化,也没有针对嵌入式应用环境进行相应的优化。对于一些1/0性能要求较高的嵌入式设备,还必须在数据安全与加密算法复杂度之间找到一个平衡点。因此,本文在YAFFSZ文件系统的基础上,设计并实现一个针对嵌入式应用的加密文件系统,提供对Flash中数据的安全性保护,具有一定的实用价值和现实意义。
树形结构图
NFEFS加解密流程图
文件系统读性能吞吐率
文件系统写性能吞吐率
目录
第1章 引言
1.1 研究背景
1.2 论文主要研究工作
1.3 论文组织架构
1.4 小结
第2章 Linux文件系统框架与NANDFlash文件系统
2.1 NANDFlash的物理特性
2.2 Linux的文件系统架构分析
2.3 LINUX中的的NANDFLASH文件系统
2.4 小结
第3章 加密文件系统的研究
3.1 安全标准简介
3.2 windows加密文件系统EFS
3.3 Linux中加密文件系统CFS及其扩展
3.4 eCryPtfs加密文件系统
3.5 小结
第4章 yAFFSZ文件系统研究
4.1 YAFFSZ文件系统主要数据结构
4.2 YAFFSZ文件系统的代码架构
4.3 YAFFSZ文件系统的树节点(Treenode,Tnode)结构
4.4 YAFFSZ文件系统的垃圾收集机制
4.5 小结
第5章 NFEFS文件系统的设计
5.1 NFEFS文件系统的设计要求
5.2 NFEFS文件系统的总体架构
5.3 NFEFS文件系统加密算法的选取
5.4 NFEFS文件系统密钥管理机制的设计
5.5 设计的不足
5.6 小结
第6章 NFEFS文件系统的实现
6.1 NFEFS文件系统特有的数据结构
6.2 NFEFS文件系统对文件加解密的实现
6.3 NFEFs文件系统ObjectHeader结构加解密的实现
6.4 NFEFS文件系统对不同Linux内核版本的支持
6.5 NFEFS文件系统密钥管理机制的实现
6.6 小结
第7章 测试与分析
7.1 测试环境与工具
7.2 测试方案设计
7.3 测试结果与分析
7.4 小结
第8章 总结与展望
8.1 总结
参考文献
致谢
攻读硕士学位期间发表的学术论文
(如您需要查看本篇毕业设计全文,请您联系客服索取)