Ecryptfs企业级加密文件系统 https://www.ibm.com/developerworks/cn/linux/l-cn-ecryptfs/
https://www.linuxjournal.com/article/9400
内核源码:fs\ecryptfs
1、介绍 架构在在文件系统之上,VFS之下。
eCryptfs 采用 OpenPGP 的文件格式存放加密文件, 对称密钥加密算法以块为单位进行加密/解密,因此 eCryptfs 将加密文件分成多个逻辑块,称为 extent。当读入一个 extent 中的任何部分的密文时,整个 extent 被读入 Page Cache,通过 Kernel Crypto API 被解密;当 extent 中的任何部分的明文数据被写回磁盘时,需要加密并写回整个 extent。 加密文件的头部存放元数据,包括元数据长度、标志位以及 EFEK 链,目前元数据的最小长度为 8192 字节
A. 加密写入 eCryptfs Layer 创建一个新文件时,Keystore 利用内核提供的随机函数创建一个 FEK;新文件关闭时,Keystore 和 eCryptfs Daemon 合作为每个授权用户创建相应 EFEK,存放在加密文件的头部元数据中。
B、解密读出 eCryptfs Layer 首次打开一个文件时,通过下层文件系统读取该文件的头部元数据,交与 Keystore 模块进行 EFEK(加密后的 FEK)的解密。
官网
2、安装 sudo apt-get install ecryptfs-utils
ecryptfs-add-passphrase $FNEK - 输入:passphrase
输出:计算出两组sig加到keyring,前一组加密文件内容,后一组加密文件名 Inserted auth tok with sig [cbd6dc63028e5602] into the user session keyring Inserted auth tok with sig [e8d80a5db4e67d9e] into the user session keyring 可获取写入Private.sig mount.ecryptfs_private 通过文件(如Private.sig )得到上面的两组sig, sig_fekek = sigs[0]; sig_fnek = sigs[1]; 通过参数得到其余参数,调用mount ecryptfs_check_dev_ruid, ecryptfs_cipher=%s, KEY_CIPHER ecryptfs_key_bytes=%d, KEY_BYTES ecryptfs_sig sig_fekek ecryptfs_fnek_ sigsig_fnek 一些操作可常见脚本:ecryptfs-setup-private
https://blog.csdn.net/shenlan211314/article/details/6439573
https://blog.csdn.net/jy54264946/article/details/71336049
|