それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

LUKSのキーの存在チェック(パスフレーズのテスト)

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/