#eCryptfs 简介
##术语
FEK(sek): 密钥 FEK(File Encryption Key)
FEKEK(ecryptfs_sig): 使用用户提供的口令(Passphrase)、公开密钥算法(如 RSA 算法)或 TPM(Trusted Platform Module)的公钥来加密保护刚才提及的 FEK(File Encryption Key Encryption Key)
EFEK(): 加密后的 FEK(Encrypted File Encryption Key)
##简介
eCryptfs 是在 Linux 内核 2.6.19 版本中引入的一个功能强大的企业级加密文件系统,堆叠在其它文件系统之上(如 Ext2, Ext3, ReiserFS, JFS 等),为应用程序提供透明、动态、高效和安全的加密功能。
本质上,eCryptfs 就像是一个内核版本的 Pretty Good Privacy(PGP)[3] 服务,插在 VFS(虚拟文件系统层)和 下层物理文件系统之间,充当一个“过滤器”的角色。用户应用程序对加密文件的写请求,经系统调用层到达 VFS 层,VFS 转给 eCryptfs 文件系统组件(后面会介绍)处理,处理完毕后,再转给下层物理文件系统;读请求(包括打开文件)流程则相反。
eCryptfs 的设计受到OpenPGP 规范的影响,使用了两种方法来加密单个文件:
eCryptfs 先使用一种对称密钥加密算法来加密文件的内容,推荐使用 AES-128 算法,密钥 FEK(File Encryption Key)随机产生。有些加密文件系统为多个加密文件或整个系统使用同一个 FEK(甚至不是随机产生的),这会损害系统安全性,因为:a. 如果 FEK 泄漏,多个或所有的加密文件将被轻松解密;b. 如果部分明文泄漏,攻击者可能推测出其它加密文件的内容;c. 攻击者可能从丰富的密文中推测 FEK。
显然 FEK 不能以明文的形式存放,因此 eCryptfs 使用用户提供的口令(Passphr