
パスフレーズとキー ファイルで保護された luks 暗号化パーティションがあります。キー ファイルは日常的なアクセス用で、パスフレーズは緊急時用に封印された封筒に入っていました。5 月が過ぎ、誤ってキー ファイルを破棄してしまったため、封筒のパスフレーズを使用して復元しました。現在、2 つのアクティブなキー スロットがあるのですが、どちらに役に立たないキー ファイルのパスフレーズが入っていて、どちらに緊急時のパスフレーズが入っているのかわかりません。明らかに、間違ったスロットを削除すると、ドライブ上のすべてのデータが失われます。
#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 に正しいパスフレーズを入力すると成功し、それ以外の場合は失敗します (他のキー スロットのパスフレーズが正しい場合も含む)。
パスフレーズを 1 つ忘れた場合は、消去法でしかそのパスフレーズがどのスロットにあるかを見つけることができません。また、パスフレーズを 2 つ忘れた場合は、どちらがどちらであるかを判断する方法がありません (そうしないと、パスフレーズ ハッシュが壊れてしまいます)。
忘れてしまったパスフレーズを削除するには、 を実行してcryptsetup luksKillSlot /dev/sda2 0
、覚えているパスフレーズを入力すれば大丈夫です。キー スロットを消去するには、少なくともバッチ モードで実行していない場合 (つまり、または同等のオプションがない場合) cryptsetup
、別のキー スロットのパスフレーズが必要です。--batch-mode
--key-file=-
答え2
もっと簡単な方法は (今のところ?)、オプションを指定してコマンドを使用し--verbose
、オプションを指定しないことです--key-slot
。
# cryptsetup --verbose open --test-passphrase /dev/sda2
Enter passphrase for /dev/sda2:
Key slot 4 unlocked.
適切なスロットを自動的にチェックするので、適切なスロットを探すためにループする必要はありません :)