更多信息

更多信息

我试图了解 ecryptfs 的内部工作原理,但 ecryptfs.org 上的文档没有帮助。也许有人可以解释它到底是如何工作的。当然,我知道这些隐藏的 .Private / .ecryptfs 目录结构。我的问题更详细:

  • 当我登录时,系统如何知道我的主页已加密并解密?
  • 它如何搜索关键目录(包含加密数据的目录、其挂载点(有时是 home,有时是 /home/Private)、包含包装密码的目录等)。这些目录通常放在 /home/.ecryptfs/ 中并链接到 home。哪个位置是关键?“.ecryptfs”和“.Private”目录名称是保留的和硬编码的还是可配置的?
  • 关于密钥环:假设我的密钥环中有多个密钥 - 它如何将正确的密钥与某个加密目录匹配?

答案1

这描述了标准的加密主目录设置。如果您想使用不同的密码或文件夹、加密算法、密钥大小等……您可以使用mount.ecryptfs直接地。

当你创建一个具有加密主目录的用户,或者ecryptfs-migrate-home在现有用户上使用时,它会使用 eCryptfs 并设置一个目录,/home/.ecryptfs/其中包含新用户“真实主目录”的文件夹,/home/.ecryptfs/user/包含:

  • 你的实际加密文件/home/.ecryptfs/user/.Private/和 eCryptfs 配置目录/home/.ecryptfs/user/.ecryptfs/包含:

    • 自动挂载- 如果存在,它会告诉ecryptfs-mount-private在登录时运行,安装私人(主)文件夹。参见man ecryptfs-mount-private

    • 自动卸载- 如果存在,它会告诉ecryptfs-umount-private在注销时运行,卸载私人(主)文件夹。请参阅man ecryptfs-umount-private

    • 私人.mnt- 登录时读取的配置文件mount.ecryptfs_private,定义应将加密目录挂载到何处。如果您已加密主目录,则该文件为$HOME
    • 私人签名- 包含挂载点密码的签名。它为 eCryptfs 提供了一种安全可靠的机制来确定如果您是否使用了正确的密钥。(请参阅关于 Private.sig 和 Private.mnt 的问题
    • 包装密码- 实际的(随机)eCryptfs 密码,使用您的登录密码加密(“包装”)

常规主目录/home/user/仅包含指向和的链接 /home/.ecryptfs/user/.ecryptfs以及/home/.ecryptfs/user/.Private另外两个指向帮助文件 & 的链接/usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop(仅运行ecryptfs-mount-private)。

eCryptfs 设置聚丙烯酰胺(参见 中的文件/etc/pam.d/)在登录/注销时自动查找 中的加密主文件夹并挂载和卸载加密主文件夹,具体取决于和文件/home/.ecryptfs/是否存在。有关更多详细信息,请参阅 eCryptfs 源代码和 .deb 包的 preinst 和 postrm 脚本(链接见上文),以及来自auto-mountauto-umountman ecryptfs-setup-private

pam_ecryptfs.so 模块添加到 PAM 堆栈中,它将自动使用登录密码来解开挂载密码,将密码添加到用户的内核密钥环,并自动执行挂载。请参阅 pam_ecryptfs(8)。

  • 这个 Ubuntu 帮助页面有关于如何“在启动时自动挂载 ecryptfs 加密文件系统...使用/root/.ecryptfsrc包含挂载选项的文件以及驻留在 USB 密钥上的密码文件。

一旦解开包装,密钥就会存储在您的用户内核密钥环中,您可以使用 查看它keyctl show,因为如果它使用根密钥环(sudo keyctl show),管理员可以找出密码。您可以使用查看实际的 ecryptfs 密码。eCryptfs 使用文件中的ecryptfs-unwrap-passphrase匹配密钥签名(ecryptfs 选项ecryptfs_sig=(fekek_sig)和)解密您的文件。ecryptfs_fnek_sigPrivate.sig


更多信息

Ubuntu 有很好的帮助文件,例如家中的加密文件Ubuntu 服务器指南中的 eCryptfs

Arch Linux 有一些普遍出色的帮助,请参阅https://wiki.archlinux.org/index.php/System_Encryption_with_eCryptfs

man并查看ecryptfs(在线或在你的系统上)及其所有工具,尤其是ecryptfs-setup-private

adduser --encrypt-home您可以使用以下方式添加具有加密主目录的新用户(有关更多信息,请参阅ecryptfs-setup-private)并查看如何为自己设置文件。要真正了解您可能从未想知道的所有细节,请参阅源代码

相关内容