基于FUSE的安全文件系统的设计与实现文献综述
2020-04-14 17:24:54
1.1 研究目的及意义
如今计算机技术已经相当成熟了,计算机的应用也是家喻户晓,越来越多的办公环境都信息化了。人们存储各种信息的方式也由纸质文档渐渐向电子文档过渡。将资料存储在计算机中节省了空间,并且使得人们对信息的查找、阅读更加方便快捷。于此同时带来的严重的信息安全问题也不容忽视。笔记本电脑里面的隐私信息被黑客发到网上;技术密集型公司的重要数据被窃取;科研机构核心机密被非法拷贝倒卖等等此类问题都会对个人和相关机构乃至社会造成严重的损失。所以如何保证计算机中数据的安全是一个日渐重要的问题。对于企业或单位的内部办公环境,数据的安全隐患主要是违规拷贝,人为传播出去。针对该问题,利用现有FUSE技术框架设计并实现一个用户计算机本地的FUSE文件系统,并实现对通过FUSE存储、访问的文件进行安全保护,即存写时自动加密,读取时自动解密。
透明文件加密技术是近年来针对企业文件保密需求应运而生的一种文件加密技术。所谓透明,是指对使用者来说是未知的。当使用者在打开或编辑指定文件时,系统将自动对未加密的文件进行加密,对已加密的文件自动解密。文件在硬盘上是密文,在内存中是明文。一旦离开使用环境,由于应用程序无法得到自动解密的服务而无法打开,从而起到保护文件内容的效果。
通过 FUSE 框架开发安全文件系统,使得文件系统的操作从内核态转移到了用户态,将应用程序同内核有效地隔离开来,使应用程序不在直接和内核相互作用,从而提高了系统的安全性和稳定性。
1.2国内外研究现状
现有的加密文件系统按构建方式可以分为用户空间文件系统、内核文件系统和堆栈式文件系统。本次设计是基于FUSE用户空间文件系统,用户空间文件系统运行在系统的用户空间,在操作系统提供的接口上开发。它和普通的应用程序类似,执行文件操作时需要一定的上下文切换,所以性能会受到一定的影响。但是开发相对容易,避免了复杂的内核编程,在同类操作系统中可移植性好。
EFS是一个FUSE级别的加密文件系统,能够透明加密文件,使用任意目录存放加密文件。每个用户都可为自已的目录或文件创建一个加密的文件系统。这个文件系统只能由自己加载和访问,其他用户只能看到加密后的内容。其使用库和内核模块来提供文件系统的接口。虽然 EFS加密系统具有简单易用,对用户来说完全透明,与操作系统结合紧密等特点,但是在实际应用过程中还是体现出它的不足之处,比如,只能对 NTFS 磁盘格式分区进行加密,对 FAT 系列磁盘格式分区不具有兼容性,当一个用户在重载操作系统时,没有及时备份与文件加解密有关的加密证书,被加密文件将无法解密。
目前动态加密的主要技术手段有两种 :一种是应用层的 Hook技术,缺点是效率低、稳定性低,因为其开发相对容易,很多木马、病毒、rookit 等都使用了 Hook 技术 ;另一种是开发文件过滤驱动程序,它是作为内核态中间层过滤驱动,不需要改变下层驱动和用户的使用习惯而增加的新功能,具有效率高、稳定性强、可扩充等优点,成为现阶段信息安全研究的热点。针对基于文件过滤器驱动实现的透明加密技术存在的单缓存缺陷,出现了一种基于双缓冲的透明加密文件系统。该系统通过在 Linux内核中设置两个页缓冲区,令授权和非授权进程分别使用两个隔离的页缓冲,减少加解密的操作次数,从而提升透明加密文件系统的整体性能。后来,Minifilter 框架出现,出现了基于 Minifilter 的双缓存透明文件加密技术,Minifilter 微过滤驱动模型是 Microsoft 极力推荐的一种新型过滤器模型,相比 Sfilter 传统驱动模型,它具有更好的兼容性、稳定性,而且具有更加简洁的开发接口。它省去了 Sfilter 需要创建设备对象并绑定到相应文件系统驱动的步骤。我们只需对要过滤的 I/O 请求分别注册预操作回调函数、后操作回调函数即可。Filter 管理器在请求到来时,就会调用相应 Minifilter 驱动的回调函数,完成过滤实现的功能。