论文部分内容阅读
Linux系统中传统的文件加密方法是利用“crypt”命令或者依赖加密应用程序,这两种方法使用起来都非常麻烦,且保密性也非常低。我们通过将加密技术和文件系统紧密结合,设计出一个加密文件系统(EFS—Encryption File System),使其能自动地对系统中的文件或目录进行加密和解密。这种加密和解密过程对用户是透明的,加密文件的合法访问者能够方便地读取文件内容,而不具备访问权限的用户将无法读取文件内容,从而提高文件系统的安全性,帮助用户保护敏感数据。在使用EFS加密文件之后,只有掌握密钥的授权用户才可以打开和使用加密过的文件。这在便携式PC、便携式存储设备或网络传输中尤为有用,因为即使他人窃取了便携设备或截获了网络中的文件,也无法打开加密过的文件。因此,EFS可以解决未经授权的访问和因便携式设备的失窃或网络传输中的明文数据被截获而引发的泄密等问题。 如以传统的开发方式在Linux系统中实现一个具有特殊功能的文件系统,一些程序员常常选择一个已有的文件系统作为起点,通过修改它的源代码和底层设备的驱动程序来加入需要的功能,这种开发方式具有开发周期长、调试困难和可移植性差等弊端。另外一些程序员可能选择开发用户模式的文件系统,这种文件系统存在于用户空间,便于开发和移植。但是,它的最大问题是效率较低,在一些特定的环境下,这些效率的损失是不可容忍的。堆栈式文件系统就是为解决这些问题而提出的一个方法,它把要开发的文件系统插入到VFS(Virtual File System)和现有文件系统之间,而基本不涉及底层的文件系统,这就降低了文件系统的开发难度,增强了文件系统的可移植性。同时,堆栈式文件系统是以内核可加载模块的形式实现,又提高了文件系统的效率。 本论文讨论了在Linux 2.4内核下的BEFS(Blowfish Encryption File System)的设计思想、实现要点及性能测试等主题。首先,明确了密码学基本概念,阐述了加密文件系统和堆栈式文件系统等内涵;其次,介绍了FiST(File System Translator)文件系统开发工具及其使用方法;第三,比较了几种常用的对称加密算法,并从中选取了安全、快速的Blowfish算法作为BEFS的加密算法;第四,深入阐述了BEFS的设计思想、实现要点和实现细节等内容;最后,本论文对实现的BEFS和其它相关文件系统进行了性能对比及测试。 本论文通过分析BEFS的设计思路和实现手段,介绍了一种用堆栈式文件系统开发加密文件系统的新方法,希望对Linux文件系统的研究和开发人员,具有一定的参考价值,能起到一个抛砖引玉的作用。