Linux

LUKS 密碼不起作用

  • August 4, 2017

有一天,當我打開電腦時,我的家庭部分 /dev/sda7 的密碼不起作用(我 147% 絕對確定,我寫的是正確的通行證)!經過三次嘗試,我通過強​​制關機重新啟動電腦並嘗試輸入相同的密碼。那沒有用。然後,我選擇了“Boot arch with Linux linux”,而不是預設啟動“Boot arch”。它幫助了我。我一整天都在工作,然後關掉電腦。但是在下一次啟動時,這個技巧對我沒有幫助。甚至選擇“使用 Linux linux (initramfs fallback) 引導架構”(我只有 3 種引導選擇)。然後我決定從 Ubuntu LiveUSB 啟動。sudo cryptsetup luksOpen /dev/sda7 home說:No key available with this passphrase.

我試過執行sudo cryptsetup --verbose repair /dev/sda7,裡面說No known problems detected for LUKS header.。我已經編譯並執行了官方 cryptsetup 工具https://gitlab.com/cryptsetup/cryptsetup/tree/master/misc/keyslot_checker來檢查密鑰槽。它說關於鍵槽的相同資訊,即 luksDump。

$ sudo cryptsetup
LUKS header information for /dev/sda7

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha256
Payload offset: 4096
MK bits:        256
MK digest:      fc 18 49 fe 3a 4e d4 11 b9 6f 0c c7 1d 54 0a 8d 44 01 86 36 
MK salt:        5e 59 c8 fc f2 a9 10 b9 bf 7c 68 4b e4 a5 8e 00 
               5a f9 c7 66 f9 5b 02 ff e7 59 e4 fd 43 f2 dc b5 
MK iterations:  249500
UUID:           cc2f71c3-f0d9-4642-bf59-87bff4f60b54

Key Slot 0: ENABLED
   Iterations:             1996099
   Salt:                   3e 60 e7 14 02 95 89 c0 c2 bf 8d 61 bb 99 13 aa 
                           9d 9a c4 7d d4 41 78 ee 76 b0 48 b4 ed b0 ff a8 
   Key material offset:    8
   AF stripes:             4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

所有這一切看起來一切都很好。像頭和所有分區都沒有損壞。我不知道為什麼密碼不適合。我只能說我每天都在全面升級我的系統(通過 sudo pacman -Syyu)。並且可能在某一天以某種方式升級導致了這種後果。

如果 LUKS 標頭中有損壞(不僅僅是一個字節),則幾乎不可能恢復。

LUKS 標頭沒有針對其密鑰材料的校驗和,因此 - 如果它以任何方式損壞,cryptsetup luksDump看起來將與往常一樣,但您的密碼將不再有效。如果您無法使密碼有效,則無法排除腐敗。

您可以使用hexdump(鍵槽檢查器的手動方法)進行檢查:

hexdump -C -n 132096 foobar.img | less

00000000  4c 55 4b 53 ba be 00 01  61 65 73 00 00 00 00 00  |LUKS....aes.....|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00  78 74 73 2d 70 6c 61 69  |........xts-plai|
... 0x00000->0x01000 should be mixed text, zero and random ...
00001000  9f 27 7a 46 8b c7 0e 09  00 82 2d 66 a7 4b b7 76  |.'zF......-f.K.v|
00001010  7a 01 ed 65 91 d0 96 af  3c f1 85 0d 64 48 81 e7  |z..e....<...dH..|
00001020  3a 00 0d d1 23 e0 95 d2  8e 42 34 4d e2 74 c4 d6  |:...#....B4M.t..|
... 0x01000->0x20400 should be 128K of random only ...
000203d0  b6 04 f6 34 08 64 10 3f  4e b7 c4 21 e6 d8 da 56  |...4.d.?N..!...V|
000203e0  0e eb 53 ce d2 a6 94 f0  92 7b 11 4b c1 96 9f 17  |..S......{.K....|
000203f0  94 88 b4 cd 36 a5 e1 b2  e9 ba 27 f3 85 7d cb 3f  |....6.....'..}.?|
00020400

第一段是luksDump顯示的,只有部分是隨機的。範圍00001000..00020400是 的關鍵材料Key Slot 0,這應該在整個過程中看起來是隨機的,如果有任何部分被歸零或明顯缺乏隨機性(如出現的野生純文字字元串),則標頭已損壞。

如果您不使用美國佈局,請嘗試該佈局以及您通常使用的任何佈局。鍵盤佈局問題也是密碼停止工作的常見原因。在這種情況下,它有助於多次添加相同的密碼(每個佈局一個),因此 LUKS 將接受它,無論哪個佈局目前處於活動狀態。

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