什么是加密文件系统
1.加密文件系统通过将加密服务集成到文件系统
2. 基于块设备的 系统级加密方案

1. 面向网络存储服务(nfs)或称为 网络加密文件系统
2. 本地加密文件系统
(1). 在原有的普通文件系统上直接加入加密功能
(2). 堆叠式加密文件系统(Stackable Cryptographic File System)

加密文件系统比较
Waycryptic 是一个堆叠式加密文件系统,通过修改 Linux 内核的虚拟文件系统层(VFS)来提供加密及解密的功能

Windows EFS(Encrypting File System) 是对 NTFS 文件系统的功能扩充

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

本质上,eCryptfs 就像是一个内核版本的 Pretty Good Privacy(PGP)[3] 服务,插在 VFS(虚拟文件系统层)和 下层物理文件系统之间,充当一个“过滤器”的角色。用户应用程序对加密文件的写请求,经系统调用层到达 VFS 层,VFS 转给 eCryptfs 文件系统组件(后面会介绍)处理,处理完毕后,再转给下层物理文件系统;读请求(包括打开文件)流程则相反

eCryptfs 先使用一种对称密钥加密算法来加密文件的内容,推荐使用 AES-128 算法,密钥 FEK(File Encryption Key)随机产生。有些加密文件系统为多个加密文件或整个系统使用同一个 FEK(甚至不是随机产生的),这会损害系统安全性,因为:a. 如果 FEK 泄漏,多个或所有的加密文件将被轻松解密;b. 如果部分明文泄漏,***者可能推测出其它加密文件的内容;c. ***者可能从丰富的密文中推测 FEK。显然 FEK 不能以明文的形式存放,因此 eCryptfs 使用用户提供的口令(Passphrase)、公开密钥算法(如 RSA 算法)或 TPM(Trusted Platform Module)的公钥来加密保护刚才提及的 FEK。如果使用用户口令,则口令先被散列函数处理,然后再使用一种对称密钥算法加密 FEK。口令/公钥称为 FEFEK(File Encryption Key Encryption Key),加密后的 FEK 则称为 EFEK(Encrypted File Encryption Key)。由于允许多个授权用户访问同一个加密文件,因此 EFEK 可能有多份
ecryptfs使用简介
eCryptfs 需要相应的内核模块和用户态的工具同时配合使用
内核选项
General setup  --->
[*] Prompt for development and/or incomplete code/drivers
File systems  --->
Miscellaneous filesystems  --->
<M> eCrypt filesystem layer support (EXPERIMENTAL)
Security options  --->
<M> Enable access key retention support
Cryptographic API  --->
<M> MD5 digest algorithm
<M> AES cipher algorithms

#rpm -qa |grep ecryptfs
#if not
#yum install ecryptfs-utils
#yum install keyutils
#modprobe ecryptfs
#mount -t ecryptfs /path/to/dir /path/to/dir

参考: