Luks
如何驗證 LUKS 主密鑰?
我擁有 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 容器。