確定密碼短語所在的 luks 插槽

確定密碼短語所在的 luks 插槽

我有一個 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

答案1

正如您所發現的,您可以使用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=-等效選項)。

答案2

一種更簡單的方法(現在?)是使用帶有選項的命令--verbose,但不指定--key-slot選項:

# cryptsetup --verbose open --test-passphrase /dev/sda2
Enter passphrase for /dev/sda2: 
Key slot 4 unlocked.

它會自動為您檢查正確的插槽,而無需您循環尋找合適的插槽:)

相關內容