使用decrypt_derived 是否比密钥文件更安全?

信息安全 linux 磁盘加密 卢克斯
2021-08-13 10:42:22

假设我在 Linux 系统上有两个分区,一个根分区 ( /) 和一个/home分区。它们都用LUKS加密。

只有解锁和挂载/home分区才需要解密。/在启动时,我输入根分区的密码。现在我发现了几种避免输入多个密码的可能性:

  • decrypt_derived从 Debian使用这将从(安全?)内存中检索(主?)密钥并将其用作第二个分区的密码。它已在Unix.SE上提到过。
  • 从随机数据创建一个密钥文件,将其存储在主分区上,并将其用作第二个分区的密码。这很容易设置。
  • 以某种方式读取密码并将其写入cryptsetup. 这意味着两个分区的密码短语必须相同。

每种方法的安全含义是什么?推荐哪种方法?

2个回答

decrypt_derived 由于以下原因,它比密钥文件方法略好:

  1. 您可能会不小心以不正确的权限存储密钥文件,从而将内容泄露给系统上的非 root 用户,而 LUKS 权限的主密钥只能由 root 访问。
  2. 您可能会意外删除密钥文件,而不会意外更改或删除主密钥。
  3. 如果根文件系统损坏,您可能会丢失密钥文件的内容,而主密钥不会受此影响。

基本上,decrypt_derived如果它可用(即我正在使用 Debian/Ubuntu),我会使用它,但如果它不可用,我不会去手动安装它。在任何一种情况下,我仍然会在主分区中添加一个额外的密码密钥,以防根分区损坏并且主密钥丢失。

我当然不会使用您建议的第三种方法,因为它的工作量更大,并且您希望避免将密码短语存储在任何地方。

考虑decrypt_keyctl改用,因为:

  1. LUKS2 兼容性。不要decrypt_derived在新安装上盲目使用。它可能会导致在您的密钥槽中出现静态错误消息,而不是安全的派生密码。
  2. 默认情况下,密码在 60 秒后过期。派生的密码始终可供 root 使用。
  3. 它具有几乎所有优势都decrypt_derived超过了密钥文件。缺点是,您不能将它用于稍后连接到系统的磁盘。