如何阻止 cryptsetup luksFormat 在加密设备上创建 luks 标头?

如何阻止 cryptsetup luksFormat 在加密设备上创建 luks 标头?

我正在尝试设置一个分区,并尝试将 luks 标头放在 USB 设备上,因此我使用了参数--header /path/to/usb-device,但是我仍然能够在不安装 USB 设备的情况下解密该设备。如何阻止 cryptsetup 在加密设备上创建 luks 标头?

答案1

您一定在某个地方使用了错误的命令...cryptsetup不会在各处随意创建 LUKS 标头...它只执行您告诉它的操作,并且通常会在执行此操作之前要求确认。

例子:

# truncate -s 8M luksheader luksdevice
# cryptsetup luksFormat --header luksheader luksdevice

WARNING!
========
This will overwrite data on luksheader irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase: 
Verify passphrase: 

# file -s luks*
luksdevice: data
luksheader: LUKS encrypted file, ver 1 [aes, xts-plain64, sha256] UUID: …

如您所见,之后 luks 设备上没有 LUKS 标头。如果有的话,那么它以前就已经在那里了。

您还可以直接使用luksFormat外部设备/文件,而无需指定“加密设备”(这仅在 上真正重要luksOpen)。

简化示例:

# cryptsetup luksFormat luksheader

这几乎相当于上面更复杂的命令,唯一的区别在于Payload offset您可以在 中看到luksDump。如果标头首先被创建为外部标头,则该偏移量应该是0,否则大约是4096(2 MiB) 。

如果您愿意,任何 LUKS 标头都可以用作外部标头,并且保持Payload offset完整有其优点。如果您决定更改设置,只需将外部标头放回到原始设备上(反之亦然,切换到现有设备的外部标头)。

相关内容