web-dev-qa-db-ja.com

LUKSパスフレーズが機能しない

ある日、コンピュータの電源を入れたときに、ホームパーツ/ dev/sda7のパスフレーズが機能しません(147%確信しています。正しいパスを書いていたと確信しています)。 3回試行した後、強制シャットダウンを介してコンピューターを再起動し、同じパスを入力しようとしました。それはうまくいきませんでした。次に、デフォルトのブート「Boot Arch」の代わりに、「Boot Arch withLinuxlinux」を選択しました。そしてそれは私を助けました。私は一日中働いていて、コンピューターの電源を切った後。しかし、次の起動時に、このトリックは私を助けませんでした。 「LinuxlinuxでのBootArch(initramfsフォールバック)」を選択しても(ブートの選択肢は3つしかありません)。次に、UbuntuLiveUSBから起動することにしました。 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を介して)システムを完全にアップグレードしているということです。そしておそらくある日、アップグレードがこの結果を引き起こしたのでしょう。

3
Constantor

LUKSヘッダーに破損(1バイト以上)がある場合、回復することはほとんど不可能です。

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..00020400Key Slot 0の重要な要素であり、ゼロ化されたセグメントがある場合、またはランダム性に明らかに欠けているセグメントがある場合(ワイルドプレーンテキスト文字列が表示されるなど)、これは全体を通してランダムに見えるはずです。ヘッダーが破損しています。

USレイアウトを使用していない場合は、通常のレイアウトを使用してください。キーボードレイアウトの問題も、パスフレーズが機能しなくなる一般的な原因です。この場合、同じパスフレーズを複数回(レイアウトごとに1つ)追加すると、現在アクティブなレイアウトに関係なく、LUKSがそれを受け入れるようになります。

2
frostschutz