我可以对多个驱动器使用 luks 分离标头吗?

我可以对多个驱动器使用 luks 分离标头吗?

我可以为多个驱动器使用同一个 LUKS 分离标头吗?
这样做我应该注意什么?如果驱动器根本不同(不同的尺寸、制造等),这也可能吗?

原因:我想在带有 LUKS 的单个系统中使用多个驱动器,但从安全角度来看,使用不同的标头没有任何好处。但也许有技术原因不这样做?

答案1

技术的

是的,您绝对可以将 LUKS 标头从一个磁盘复制到另一个磁盘。确切地说,您可以将其从一个块设备复制到另一个块设备,这意味着您可以安全地将 LUKS 标头从一个分区(块设备)复制到代表整个磁盘的块设备。您可以简单地执行以下操作:

dd if=/path/to/block/deviceA of=/path/to/block/deviceB bs=2M count=1

不过,存在一个技术限制,如果您使用类似udev通过 UUID 识别块设备并将其分配给特定设备文件的方法,则udev可能会感到困惑,因为所有驱动器都具有相同的 UUID。这是因为 LUKS 标头包含 UUID。

请注意,这与在/etc/fstab.mount将查看 LUKS 之上的文件系统的 UUID(只要驱动器已解密)。

LUKS 标头可以在任何块设备上使用这一事实也意味着设备的大小对于标头来说并不重要。如果您在单个分区上使用标头,则分区表知道块设备的大小,如果您在整个磁盘上使用它,则内核知道其大小。

安全

从安全角度来看复制 LUKS 标头是一个坏主意。 LUKS 标头包含用于对数据进行加密的加密密钥,即,使用标头内的密钥而不是使用从密码生成的密钥来加密数据。然后,LUKS 标头存储此加密密钥,该加密密钥在根据密码生成的密钥下多次加密。

如果可以使用 3 个不同的密码对磁盘进行解密,则密钥将存储三次:每次都使用一个密码生成的密钥进行加密。

作为示例,我们假设您有 2 个磁盘,每个磁盘都可以使用 2 个密码解密,并且您将 LUKS 标头从一个磁盘复制到另一个磁盘。现在,如果其中一个密码被泄露,则加密密钥也会被泄露。如果攻击者设法获得 DiskA 并使用泄露的密码获取密钥,那么您需要销毁 DiskB 上的数据,因为攻击者可以解密它。

在相同的情况下(一个密码被泄露),如果您没有复制 LUKS 标头,恢复会容易得多。如果攻击者拥有磁盘 A,并且他拥有磁盘 A 的加密密钥,他仍然无法解密磁盘 B 上的数据。当然,他可以使用泄露的密码从磁盘 B 获取磁盘 B 的加密密钥,但是,如果您比攻击者更快,则可以从磁盘 B 禁用泄露的密码(这是通过覆盖存储在泄露的密码下的加密密钥来实现的)密码)。

因此,使用不同的标头有很多好处。标头的目的之一是允许使用不同的密码,并使每个块设备上加密的数据使用不同的密钥进行加密,尽管用于解密驱动器的密码是相同的。

相关内容