FIDO2 (YubiKey) Fedora 36 起動時に LUKS ロック解除が機能しない

FIDO2 (YubiKey) Fedora 36 起動時に LUKS ロック解除が機能しない

システムの起動時にLUKSボリュームのロックを解除するためにFedora 36でFIDO2(YubiKey 5)を使用しようとしましたが、LUKSボリュームのロックを解除するためにトークンを使用せずに通常のLUKSパスワードを要求し続けたため、失敗しました。

フォローするレナルト・ペトリングの例systemd-cryptenrollYubiKeyを登録して/etc/crypttab適切な設定でファイルを変更する方法については、彼のブログで確認してください。cryptsetup luksDump表示トークンが LUKS ヘッダーに追加されます。ただし、システムの起動時にPlymouthのようこそ画面が表示され、ボリュームのロックを解除するための一般的なLUKSパスワードの入力を求められます。

PlymouthがFIDO2 PINを入力するように求められない可能性があると考え、ユーザーの存在やPINを必要としないように、追加のパラメータを使用してLUKSキーウェイとトークンを削除して再追加しました。

systemd-cryptenroll --fido2-device=auto --fido2-with-user-verification=false --fido2-with-client-pin=false /dev/sda3

それでも機能せず、LUKSパスワードの入力を求められます。

Fedora 36はsystemdバージョン250を実行しています。

FIDO2がLUKSボリュームのロックを解除できない理由をご存知ですか?

ベストアンサー1

TL、DRの実行dracut --regenerate-all --force

dracut --regenerate-all --forceだから問題を見つけました。再起動する前に変更した内容は実行されませんでした/etc/crypttab。私はDebianベースのディストリビューションを実行する必要があると思いますupdate-initramfs -u。 FIDO2 PINが必要な場合は、Plymouthインターフェースに入力してください。 LUKS パスワードの入力と同じように見えますが、Esc キーを押すと FIDO2 トークン PIN の入力を求められます。

RH / FedoraディストリビューションでLUKSボリュームをロック解除するためにFIDO2トークン(YubiKeyなど)を設定するための完全な手順がここにあります。 (注:この機能はsystemdバージョン248でのみサポートされています。systemctl --version確認してください。)

  1. 既存のLUKSキーホーム情報を表示します。最初にパスワードフレーズのみを使用するように設定されている場合は、1つのキースロット(スロット0)と0個のトークンのみが表示されます。

cryptsetup luksDump /dev/sda3(sda3をブロックデバイスに交換)

  1. 登録トークン。この例では、FIDO2 PINとユーザープレゼンス要件(「タッチ」など)を指定します。

systemd-cryptenroll --fido2-device=auto --fido2-with-client-pin=true --fido2-with-user-presence=true /dev/sda3

  1. LUKSトークンとキーウェイをもう一度確認してください。今回は追加のキースロット(スロット1)と新しいトークン(トークン0)を表示する必要があり、登録中に指定した場合は上記のパラメータも一覧表示されます。

cryptsetup luksDump /dev/sda3

  1. /etc/crypttab を修正します。デフォルトでは、Fedora 36はUUIDを使用します。

vim /etc/crypttab

修正してこのような形になるようにしてください。

luks-a6c32afd-3c35-4628-8653-5be499eaf0ce UUID=a6c32afd-3c35-4628-8653-5be499eaf0ce - fido2-device=auto

  1. 新しい initramfs イメージの作成

dracut --regenerate-all --force

  1. 再起動してテストします。前述のように、Plymouthのようこそ画面は同じに見えますが、LUKSパスワードを入力する代わりにFIDO2 PINを入力します。または、「Esc」を押して実際にFIDO2 PINを入力するように求められます(必要な場合)。現在の状態要件が指定されている場合は、タッチトークンが必要です。システムを起動する必要があります。

追加機能:

LUKSボリュームからトークンを削除します。

cryptsetup token remove --token-id 0 /dev/sda3

そして、対応するキーホームを削除します。

systemd-cryptenroll --wipe-slot=1 /dev/sda3

複数のFIDO2トークンを登録し、PINと現在の状態の要件を指定する場合は、トークンをX回タッチする必要があることがわかりました。ここで、Xは登録されたn番目のトークンです。たとえば、4つのトークンを登録した場合、4番目の登録トークンを使用すると、システムが起動する前に4回タッチする必要があります。私の考えではこれと関係があると思います。これはSYSTEMD-CRYPTENROLL(1)で言及されています。

また、systemd-cryptsetupが現在挿入されているトークンを認識していないため、デバイスにどの認証要求を送信するのかわからないため、複数のFIDO2トークン登録のサポートは現在あまり役に立ちません。

おすすめ記事