信息系统安全实验(八):使用eCryptfs加密文件系统

本文详述了一次关于Linux内核eCryptfs加密文件系统的实验,涵盖了eCryptfs的读写工作流程、加密方式以及功能验证。实验中,通过挂载、解挂载、读写操作展示了eCryptfs如何透明地加密和解密文件内容,验证了其加密机制的有效性。
摘要由CSDN通过智能技术生成

这是信息系统安全实验系列的第八篇~

1.   实验目的

(1)掌握eCryptfs的执行过程和设计原理;

(2)学会安装eCryptfs,掌握使用eCryptfs加密文件系统。

2.   实验环境

       安装Ubuntu14.04的虚拟机,eCryptfs等软件。

3.   背景知识

eCryptfs简介

       eCryptfs 是在 Linux 内核 2.6.19 版本中引入的一个功能强大的企业级加密文件系统,堆叠在其它文件系统之上(如 Ext2, Ext3, ReiserFS, JFS 等),为应用程序提供透明、动态、高效和安全的加密功能。

       本质上,eCryptfs插在 VFS(虚拟文件系统层)和 下层物理文件系统之间,充当一个“过滤器”的角色。用户应用程序对加密文件的写请求,经系统调用层到达 VFS 层,VFS 转给 eCryptfs 文件系统组件处理,处理完毕后,再转给下层物理文件系统;读请求(包括打开文件)流程则相反。

       eCryptfs使用了两种方法来加密单个文件:

       (1)eCryptfs 先使用一种对称密钥加密算法来加密文件的内容,密钥 FEK(File Encryption Key)随机产生。

       (2)显然 FEK 不能以明文的形式存放,因此 eCryptfs 使用用户提供的口令(Passphrase)、公开密钥算法(如 RSA 算法)或 TPM(Trusted Platform Module)的公钥来加密保护刚才提及的 FEK。如果使用用户口令,则口令先被散列函数处理,然后再使用一种对称密钥算法加密 FEK。口令/公钥称为 FEFEK(File Encryption Key Encryption Key),加密后的 FEK 则称为 EFEK(Encrypted File Encryption Key)。由于允许多个授权用户访问同一个加密文件,因此 EFEK 可能有多份。

       这种综合的方式既保证了加密解密文件数据的速度,又极大地提高了安全性。虽然文件名没有数据那么重要,但是入侵者可以通过文件名获得有用的信息或者确定攻击目标,因此,最新版的 eCryptfs 支持文件名的加密。

4.   实验过程记录

(1)eCryptfs进行读/写操作时的工作流程

①    读操作

       若执行读操作的文件的路径经过了加密挂载点,则需要对文件进行解密。

       首先,读头部信息,即数据块的第一页。从头部信息中解析出加密算法、标志、密钥信息等等。其中最关键的是要把加密的文件加密密钥(EFEK)解密为文件加密密钥(FEK)。为此,查看密钥环上是否有需要的认证令牌,如果有,则用认证令牌FEKEK对EFEK进行解密得到FEK;如果没有,则需要用户提供解密口令,利用该口令算出(撒盐+多次MD5运算)文件加密密钥的加密密钥(FEKEK,也称为认证令牌),将得到的FEKEK与头部信息中的FEKEK标识符进行比对,比对正确则用FEKEK对EFEK进行解密,得到FEK。

       其次,解密文件。用FEK对文件数据块进行解密。

②    写操作

       若执行写操作的文件的路径经过了加密挂载点,则需要对文件进行加密。

       首先,加密数据块。系统生成一串随机数作为文件加密密钥(FEK),再把文件数据划分成数据块(页),用FEK对这些数据块加密。

       其次,添加头部信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值