Luks

如何阻止 cryptsetup luksFormat 在加密設備上創建 luks 標頭?

  • July 26, 2016

我正在嘗試設置一個分區,並且我正在嘗試將 luks 標頭放在 USB 設備上,因此我使用了參數--header /path/to/usb-device,但是我仍然能夠在沒有安裝 USB 設備的情況下解密設備。如何阻止 cryptsetup 在加密設備上創建 luks 標頭?

您一定在某處使用了錯誤的命令…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: …

如您所見,之後 luksdevice 上沒有 LUKS 標頭。如果有,那麼它之前就已經存在了。

您也可以luksFormat直接只使用外部設備/文件,而無需指定“加密設備”(僅在 上才真正重要luksOpen)。

簡化範例:

# cryptsetup luksFormat luksheader

這幾乎等同於上面更複雜的命令,唯一的區別在於Payload offset您可以在luksDump. 如果標頭最初是作為外部標頭創建的,則此偏移量應為0,否則類似於4096(2 MiB) 。

如果您願意,任何 LUKS 標頭都可以用作外部標頭,並且保持Payload offset原樣有其優勢。如果您決定更改設置,您只需將外部接頭放回原始設備(反之亦然,切換到現有設備的外部接頭)。

引用自:https://unix.stackexchange.com/questions/298407