Luks

如何驗證 LUKS 主密鑰?

  • June 4, 2020

我擁有 SSH + root 訪問權限的機器上的加密分區的主密鑰。我無權訪問與分區關聯的任何密碼。有沒有辦法可以驗證主密鑰對該分區有效?

我無法解除安裝分區,因為它是機器的根分區,所以我認為我不能使用 luksOpen 。

就像@HaukeLaging 所說,dmsetup table --showkeys可能會顯示仍然打開的 LUKS 容器的主密鑰(可能不適用於 LUKS2 容器,另請參閱6.10 如何從映射的 LUKS1 容器中恢復主密鑰?)。

您可以像設備的前 128M 一樣複製,然後在家裡進行試驗。

ssh root@server head -c 128M /dev/sdxy > sdxy.img

可能的實驗:

hexedit master.key     # hexedit or xxd -r -p to produce binary file
hexdump -C master.key  # to verify correctness

cryptsetup luksAddKey --master-key-file master.key sdxy.img
cryptsetup luksOpen sdxy.img luksxy
file -sL /dev/mapper/luksxy

如果您獲得隨機數據而不是已知的文件系統或 LVM 標頭,則它是錯誤的密鑰或 LUKS 標頭存在其他問題。

您可以直接在伺服器上執行相同的實驗,但可能會有其他設備的副作用/出現重複的 UUID 等,因此最好在單獨的機器上或在 VM 內進行。

如果 LUKS 標頭損壞導致 luksAddKey 不起作用,您也可以 luksFormat 一個新的。但是,在這種情況下,除了主密鑰之外,您還必須指定正確的密碼和數據偏移量。

但是,如果您對這個 LUKS 容器有任何疑問,您應該在機器仍在執行時備份所有文件。將主密鑰儲存在各處也繞過了 LUKS 安全概念,因此最好從頭開始使用新的主密鑰製作一個新的 LUKS 容器。

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