LUKS 是如何运作的?

fri*_*itz 8 encryption partitioning lvm luks

我只是好奇是否有人对像 LUKS 这样的系统如何用于全盘加密有一个高层次的概述。它如何存储密钥以及如何验证这些密钥,以及数据是否由所有标准 i/o 的包装器解密。我在无头服务器上使用 LUKS 进行完整系统加密 - 使用 dropbear 和busybox 解锁此处找到了有关 LUKS 如何挂钩到 init 进程的简要说明。如何?

tho*_*ter 15

Luks 是块设备上的加密层,因此它在特定的块设备上运行,并公开一个新的块设备,即解密版本。访问此设备将在使用时触发透明加密/解密。

它通常用于磁盘分区或 LVM 物理卷,允许在同一个加密容器中有多个分区。

LUKs 在设备启动时存储了一堆元数据。它有多个密码的插槽。每个插槽都有一个 256 位的盐,它与加密消息一起以明文形式显示。当输入密码短语时,LUKS 依次将其与每个盐组合在一起,对结果进行散列,并尝试使用结果作为密钥来解密每个插槽中的加密消息。此消息由一些已知文本和主密钥的副本组成。如果它适用于任何一个插槽,因为已知文本匹配,主密钥现在是已知的,您可以解密整个容器。在使用容器时,主密钥必须在 RAM 中保持未加密状态。

知道主密钥允许您访问容器中的所有数据,但不会泄露密码槽中的密码,因此一个用户无法看到其他用户的密码。

该系统不是为了让用户在运行时能够看到主密钥而设计的,并且该密钥在不重新加密的情况下无法更改。然而,使用密码槽意味着无需重新加密整个容器即可更改密码,并允许使用多个密码。

  • @CiprianTomoiagă不幸的是没有,它仍然是一个草案。我可以给你看草稿,但请记住它还没有完成。它可能包含错误并且不够理解:)这里:https://gist.github.com/joonas-fi/b6bfc564a1a7f3d6b120728db5d48b61 (2认同)