LUKSのキーがただし正しいかチェックしたい。
LUKSのキー、これだったかかな?と候補があるときに使えます。
また。複数の鍵を登録後に登録チェック、鍵の削除後のチェックなどが必要だと思います。
そのときに、鍵の存在チェックだけをコマンドでおこない自動化出来たらと思います。
LUKS キー チェック
sudo cryptsetup luksOpen --test-passphrase /dev/xxx
実行例。
sudo cryptsetup luksOpen --test-passphrase /dev/sdg3 Enter passphrase for /dev/sda3: No key available with this passphrase. Enter passphrase for /dev/sda3:
ポイントとしては、dm-cryptを luksOpen で開く。パスワード(またはパスフレーズ)を入力してデバイスを開く。ただし、dry-run (--test-passphrase ) で行う。これにより、LUKSにパスワードを使っているか、パスワードが正しいか、チェックすることができる。
標準入力から渡す
パスフレーズを使っているばあいは、標準入力から渡せる。
echo -n my_pass_phrase | sudo cryptsetup luksOpen --test-passphrase /dev/xxx
KeyFileを指定する。
鍵ファイルを指定してる場合は、オプションで指定できる。
sudo cryptsetup luksOpen --key-file path/to/key --test-passphrase /dev/xxx
予備鍵の管理に
LUKSの予備(スペア)キーの管理、鍵ファイルのバックアップが正しいかどうか。それらをチェックすることが出来るので安心。
このパスワード登録してたっけ。というときに重要。
何本のパスワード・鍵が登録されているか。
cryptsetup luksDump /dev/sda2
キースロットが鍵本数。luksDumpコマンドでは利用中の鍵の本数がわかる。
LUKS header information Data segments: 0: crypt Keyslots: 0: luks2 Key: 256 bits Digest ID: 0 Tokens: Digests: 0: pbkdf2 Hash: sha256 Iterations: 26089
パスワードをチェックして、不要な鍵を見つけたら
パスワードを指定して消す
cryptsetup luksRemoveKey
この場合は先頭から消される。
パスワードをチェックして、パスワードがわからない登録(スロット)を見つけたら
luks のKillSlot を使ってスロットを削除する。
cryptsetup luksKillSlot
luksRemoveKey は指定した鍵を探して消す。
まとめ
このように、パスワードを検査することで得られることがある。
2023-11-30
killslot で検索にかからないのでキーワードを追加
参考資料
https://sleeplessbeastie.eu/2019/03/27/how-to-test-luks-passphrase/