论文部分内容阅读
NAND Flash以其大容量,低成本,低功耗,抗震荡在非易失存储介质中占据重要地位,已经被广泛应用于消费型电子,航空设备等领域。但是由于NANDFlash的物理特性不同于磁盘存储设备,需要为其提供特别的存储管理方案。现在主流的解决方案分为FTL+磁盘文件系统和Flash文件系统两种。Flash文件系统一般采用日志结构,提供掉电保护,崩溃恢复机制和垃圾收集机制,在嵌入式应用中使用广泛。NAND Flash作为非易失存储介质大量应用于嵌入式系统,我们必须重视存储信息的安全问题。由于嵌入式系统具有体积小,便于携带,多部署于公共场所等特性,一旦发生设备遗失、被窃或非法攻击,这些敏感数据将会被非法分子获取,给拥有者造成损失,甚至威胁到国家安全。加密文件系统是对抗物理攻击的一种重要方式,具有以文件粒度加密,抗暴力分析能力强;使用简单,对用户层应用透明等特点。因此,设计并实现一款针对嵌入式应用的NANDFlash加密文件系统,具有现实意义与实用价值。本文首先分析NAND Flash的物理特性与Linux中文件系统架构,研究EFS,CFS,eCryptfs等加密文件系统的系统架构与加解密机制,为NFEFS文件系统的设计提供参考与借鉴。随后深入研究YAFFS2文件系统的源代码,详细分析了YAFFS2中初始化挂载流程,读写机制,对象(Object)创建机制,垃圾收集机制,为NFEFS的实现打下了基础。接着在文中提出了NFEFS文件系统的设计要求,总体架构,并且给出了在YAFFS2文件系统的基础上对文件内容加密,对文件结构信息加密,密钥管理机制以及对不同Linux内核版本的支持的具体实现。最后设计测试方案,对NFEFS的读写性能指标进行测试与分析。