eCryptfs 加密家庭 - 解释

ard*_*bro 11 linux encryption home-directory ecryptfs

我试图了解 ecryptfs 如何在内部工作,而 ecryptfs.org 上的文档无济于事。也许有人能够解释它是如何真正起作用的。当然我知道这些隐藏的 .Private / .ecryptfs 目录结构。我的问题更详细:

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

Xen*_*050 13

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

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

  • 中的实际加密文件/home/.ecryptfs/user/.Private/,以及/home/.ecryptfs/user/.ecryptfs/包含以下内容的 eCryptfs 配置目录:

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

    • auto-umount - 如果存在,它会告诉ecryptfs-umount-private在注销时运行,卸载私有(主)文件夹。看man ecryptfs-umount-private

    • Private.mnt -mount.ecryptfs_private登录时读取的配置文件,用于定义应安装加密目录的位置。如果您已加密您的主目录,这将是$HOME.
    • Private.sig - 包含挂载点密码的签名。它提供了一个安全,可靠的机制eCryptfs,以确定是否你使用了正确的密钥或没有。(参见关于 Private.sig 和 Private.mnt 的 Q
    • 包装密码- 实际(随机)eCryptfs 密码,用您的登录密码加密(“包装”)

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

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

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

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

解包后,密钥将存储在您的用户内核密钥环中,您可以使用 来查看它keyctl show,因为如果它使用根密钥环 ( sudo keyctl show),管理员可以找出密码短语。您可以使用ecryptfs-unwrap-passphrase来查看实际的 ecryptfs 密码。eCryptfs 使用文件中匹配的密钥签名(ecryptfs 选项ecryptfs_sig=(fekek_sig)ecryptfs_fnek_sig)解密您的文件Private.sig


更多信息

Ubuntu 有很好的帮助文件,例如Home 中的 Encrypted filesUbuntu Server guide 中的 eCryptfs

Arch Linux 有一些非常好的帮助,请参阅https://wiki.archlinux.org/index.php/System_Encryption_with_eCryptfs

而看到man的页面ecryptfs(网上有或您的系统上)和它所有的工具,尤其是ecryptfs-setup-private

您可以使用adduser --encrypt-home(有关更多信息,请参阅 的 -b 选项ecryptfs-setup-private)添加具有加密家庭的新用户,并查看如何为您自己设置文件。要真正了解您可能永远不想知道的所有细节,请参阅源代码