Luks

確定密碼在哪個 luks 插槽中

  • October 9, 2021

我有一個受密碼片語和密鑰文件保護的 luks 加密分區。密鑰文件用於例行訪問,密碼放在密封的信封中以備不時之需。五月過去了,我不小心撕碎了密鑰文件,所以我使用信封中的密碼恢復了。現在我想知道,我有兩個活動密鑰槽,但我不知道哪個包含無用的密鑰文件密碼,哪個包含我的緊急密碼。顯然,如果我刪除了錯誤的,我將失去驅動器上的所有數據。

#cryptsetup luksDump /dev/sda2
LUKS header information for /dev/sda2

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha256
Payload offset: 4096
MK bits:        256
MK digest:      xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
MK salt:        xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
               xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
MK iterations:  371000
UUID:           28c39f66-dcc3-4488-bd54-11ba239f7e68

Key Slot 0: ENABLED
       Iterations:             2968115
       Salt:                   xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
                               xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
       Key material offset:    8
       AF stripes:             4000
Key Slot 1: ENABLED
       Iterations:             2968115
       Salt:                   xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
                               xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 
       Key material offset:    264
       AF stripes:             4000
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

正如您所發現的,您可以使用cryptsetup luksDump來查看哪些鍵槽有鍵。

您可以使用以下命令檢查特定插槽的密碼

cryptsetup luksOpen --test-passphrase --key-slot 0 /dev/sda2 && echo correct

如果您為密鑰槽 0 輸入正確的密碼,則此操作成功,否則失敗(包括其他密鑰槽的密碼是否正確)。

如果您忘記了其中一個密碼片語,那麼您只能通過消除找到它所在的插槽,如果您忘記了兩個密碼片語,則無法分辨哪個是哪個(否則密碼片語雜湊會被破壞)。

要刪除您忘記的密碼,您可以安全地執行cryptsetup luksKillSlot /dev/sda2 0並輸入您記住的密碼。要擦除密鑰槽,cryptsetup需要不同密鑰槽的密碼,至少在它未以批處理模式執行時(即 no--batch-mode--key-file=-等效選項)。

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