eCryptfs加密主页-说明


9

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

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

Answers:


11

这描述了标准的加密家庭设置。如果要使用其他密码短语或文件夹,加密算法,密钥大小等,则可以mount.ecryptfs直接使用。

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

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

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

    • 自动卸载 -如果存在,它会告诉ecryptfs-umount-private您在注销时运行,卸载专用(主)文件夹。看到man ecryptfs-umount-private

    • Private.mnt-mount.ecryptfs_private登录时读取的配置文件,定义了应在何处安装加密目录。如果您已经加密了主目录,则该目录将为$HOME
    • Private.sig-包含安装点密码短语的签名。它提供了一个安全,可靠的机制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设置PAM(请参阅中的文件/etc/pam.d/),以/home/.ecryptfs/根据是否存在auto-mountauto-umount文件,自动在其中查找加密的主文件夹并在登录/注销时装入和卸载加密的主文件夹。有关更多详细信息,请参见eCryptfs源代码以及.deb包的preinst和postrm脚本(以上链接),以及来自以下位置的剪辑man ecryptfs-setup-private

将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有很好的帮助文件,例如《 Ubuntu Server》指南中的HomeeCryptfs加密文件

Arch Linux通常具有出色的帮助,请参阅https://wiki.archlinux.org/index.php/System_Encryption_with_eCryptfs

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

您可以使用添加新用户并使用加密的主目录adduser --encrypt-home(有关更多信息,请参考的-b选项ecryptfs-setup-private),然后看看如何为您自己设置文件。要真正弄清所有您可能不想知道的细节,请参见源代码


在/ etc / crypttab中,cryptswap只有一行;fstab也没什么特别的。我的家已经加密了。仍然不知道系统如何知道我的住所已加密,并且在登录时需要特殊设置。
ardabro 2014年

我认为当查看@login时会自动完成。您是否阅读了archlinux帮助,但没有任何帮助?但请定义“特殊”,我或“谷歌教授”都对此很熟悉。“特别的东西”的缩写?像什么?
Xen2050

另一个特别之处是获取密钥并安装加密目录,这是登录过程中的额外路径。Arch Wiki很有帮助。另外,我对ecryptfs源代码进行了一些调查。但是我仍然不知道登录过程中关键的“ if”指令在哪里以及它究竟要检查什么。
ardabro 2014年

这听起来有点像linux如何查找和使用任何主目录文件夹,我认为一些信息/etc/passwd(至少存储在主目录和外壳程序中)对于加密的主目录用户来说看起来有所不同吗?我也会在回答中添加一些有关内核密钥环的信息,ecryptfs显然将密钥存储在该位置
Xen2050 2014年

1
抱歉,我错过了更新。很好的解释。非常感谢!
ardabro 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.