我应该在哪里存储加密密钥文件?

我应该在哪里存储加密密钥文件?

假设我对除 /boot 之外的所有系统都使用 LUKS,并且我的 /home/user 目录也已加密。在我的用户帐户的安全性(与根的隔离程度更高)的情况下,我是否应该创建另一个加密容器来存储我的密钥文件,以便快速安装加密驱动器?

起初,我想在登录用户帐户时自动安装驱动器,但这似乎不太安全。加密拇指驱动器并将我的密钥存储在其上,以便我必须先解密/安装拇指驱动器会更好吗?

我看到这样的建议这里这里但这又引出了一个问题:如果我在我的用户帐户上下文中解密包含密钥文件的驱动器,它比我将它们存储在 /home/user 中的某个位置更安全吗?

答案1

将密钥文件存储在与加密卷相同的位置是没有用的。仅当解密密钥与加密卷分开存储时,加密才有用:在您的头脑中、可移动设备(USB 密钥、智能卡等)上等。

(有一种方法可以使加密在密钥存储在同一位置时仍然有用:快速擦除。您可以通过擦除密钥来有效擦除加密卷上的数据,而无需擦除整个卷。但是这是边缘。)

要使用全盘加密,您需要在启动时以一种或另一种方式输入解密密钥。因此,您要么需要输入密码,要么插入包含密钥文件的可移动设备。

加密仅对窃取磁盘(无论是否有计算机的其余部分)的人有用。它不能防范计算机上运行的软件:操作系统的隔离和访问控制机制可以做到这一点。启动系统后,防止窃取计算机(包括在您离开时通过键盘打字暂时“窃取”计算机)的保护措施是屏幕锁定。

如果这是单用户系统,那么除了全磁盘加密之外的其他加密有用的情况并不多。攻击者要么有权访问您的帐户,并且可以访问您的所有文件,要么攻击者无权访问您的帐户,并且除了将磁盘放入计算机中之外,他们无法访问任何内容,这会给他们留下加密磁盘并且(假设密钥没有随磁盘一起被盗)无法解密。

如果您认为某些文件特别机密且不经常使用,那么使用第二层加密可能会有优势。如果是这种情况,请使用不同的密码对其进行加密。然后,如果您的计算机被恶意软件感染,那么恶意软件将无法访问您所有最机密的文件,只能访问您在发现恶意软件之前输入解密密钥的文件。

第二层加密的另一个优点是防止相对复杂的攻击者在计算机仍在运行时窃取计算机并从 RAM 中提取密钥。您可以通过将计算机配置为在您不在计算机前时卸载解密的卷来防止这种情况。这需要第二层加密(除非您跳过全盘加密并仅加密您的个人文件),因为系统文件必须保持可访问(解密软件和读取密钥的接口必须可用)。我相信 iOS 和 Android 正在朝着这样的设置迈进,如果他们还没有达到这一点的话,但我不知道在 Linux 下设置这个的简单方法。

关于将密钥文件本身存储在加密容器上,只有当加密容器受密码而不是另一个密钥文件保护时才有意义,并且仅当容器是可移动驱动器时才有用。使用密码保护可移动驱动器意味着,如果有人窃取该驱动器但无法猜出您的密码,他们将无法解密您的数据。但同样,如果密钥文件与数据位于同一介质上,那么首先拥有密钥文件就没有任何好处。

相关内容