パスフレーズがどのスロットにあるかを判断する

パスフレーズがどのスロットにあるかを判断する

パスフレーズとキー ファイルで保護された 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.

適切なスロットを自動的にチェックするので、適切なスロットを探すためにループする必要はありません :)

関連情報