「Universal 2nd Factor」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎OpenSSH: == Data-at-rest encryption with LUKS == を追加)
77行目: 77行目:
   
 
{{Note|If you are using a Yubikey, firmware version 5.2.3 is needed for the ed25519-sk key type.}}
 
{{Note|If you are using a Yubikey, firmware version 5.2.3 is needed for the ed25519-sk key type.}}
  +
  +
== Data-at-rest encryption with LUKS ==
  +
  +
Since version 248, [[systemd]] can be use to unlock a [[Dm-crypt/Encrypting an entire system|LUKS partition]] using a FIDO2 key.
  +
  +
First, you will need to setup your {{ic|/etc/crypttab}} file, or customize your {{ic|initramfs}} if you wish to unlock your root partition. The full procedure is similar to the use of a TPM chip for unlocking. See [[Trusted Platform Module#systemd-cryptenroll]].
  +
  +
To register the key, you will need to use the ''systemd-cryptenroll'' utility. First, run the following command to list your detected keys:
  +
  +
$ systemd-cryptenroll --fido2-device=list
  +
  +
Then you can register the key in a LUKS slot, specifying the path to the FIDO2 device, or using the {{ic|auto}} value :
  +
  +
$ systemd-cryptenroll --fido2-device=/path/to/fido2_device /dev/sdX

2021年7月20日 (火) 12:44時点における版

Universal 2nd Factor (U2F) はスマートカードと同様のセキュリティ技術に基づいて、専用の USB または NFC デバイスを使用した二要素認証 (2FA) を強化、簡素化するためのオープンスタンダードです。

当初は Google と Yubico が開発し、NXP セミコンダクターズが貢献していましたが、現在は、FIDO アライアンスがホストしています。

U2F および U2F-devices については、Category:Universal 2nd Factor も参照してください。

Web サイトの認証

U2F は、Google、Facebook、Twitter、Github などの主要なサイトでサポートされています。twofactorauth.org または dongleauth.info には他のサイトや設定資料へのリンクがありますのでご確認ください。サポートしている全てのブラウザでは、 libfido2 をインストールするだけでよいでしょう。Yubico はテスト用に demo page を提供しています。

Firefox

Firefox 設定#​Fido U2F 認証

Chromium/Chrome

Chromium 設定#U2F 認証

Arch Linux の認証

YubiKey を開発した Yubico 社は、U2F PAM モジュールを開発しました。U2F PAM モジュールは、ログイン時の二番目の要素として、またはパスワードを完全に置き換えるために使用することができます。

PAM モジュールのインストール

このモジュールは、pam-u2f パッケージの一部です。

鍵の追加

鍵は pamu2fcfg ツールで追加する必要があります:

$ mkdir ~/.config/Yubico
$ pamu2fcfg -o pam://hostname -i pam://hostname > ~/.config/Yubico/u2f_keys

U2F キーのボタンをクリックして、鍵を確認します。

ノート: 異なるネットワークの DHCP などが原因で、システムのホスト名が変更された場合、ログインできなくなります。これを防ぐために、上記のオプションを指定し、hostname を実際のホスト名に置き換えることをお勧めします。

複数の鍵を所有している場合は、それらを追加してください

$ pamu2fcfg -o pam://hostname -i pam://hostname -n >> ~/.config/Yubico/u2f_keys

パスワードなしの sudo

警告: 設定に変更を加える前に、root 権限で別のシェルを開始してください。(例 sudo -s)。このようにすることで、問題が発生した場合に変更を元に戻すことができます。

/etc/pam.d/sudo を開いて、以下を追加

auth            sufficient      pam_u2f.so origin=pam://hostname appid=pam://hostname

1行目の記述します。前述の hostname は必ず書きかえてください。次に、新しいターミナルを起動し、sudo ls と入力します。キーの LED が点滅し、それをクリックするとコマンドが実行されます。

GDM ログイン

/etc/pam.d/gdm-password を開いて追加します。

auth            required      pam_u2f.so nouserok origin=pam://hostname appid=pam://hostname

既存の auth 行の後に追加します。nouserok オプションを使用することで、ユーザーがキーを設定していない場合にルールを失敗させることができることに留意してください。これにより、複数のユーザーが U2F キーを使用している場合でも、そのうちの一部のユーザーのみが U2F キーを使用するという設定が可能です。

ノート: この方法は暗号化されたホームパーティションでは動作しません。なぜなら、ログインプロセスが完了する前に復号化が行われず、u2f_keys ファイルが利用できないからです。この場合、official documentation of pam-u2f で説明されているように、セントラルマッピングファイルを使用してください。

その他の認証方法

上で説明したように、他のサービスに対しても PAM モジュールを有効にします。例えば、Cinnamon のスクリーンセーバーを保護するには、/etc/pam.d/cinnamon-screensaver を編集します。

トラブルシューティング

システムから自分自身をロックアウトしてしまった場合は、リカバリーモードまたは USB ペンドライブから起動します。その後、PAM コンフィグの変更を元に戻して再起動します。

OpenSSH

OpenSSH supports FIDO/U2F hardware tokens natively since 8.2. Both the client and server must support the ed25519-sk key types. Generate a security key backed key pair with:

$ ssh-keygen -t ecdsa-sk
ノート: If you are using a Yubikey, firmware version 5.2.3 is needed for the ed25519-sk key type.

Data-at-rest encryption with LUKS

​ Since version 248, systemd can be use to unlock a LUKS partition using a FIDO2 key. ​ First, you will need to setup your /etc/crypttab file, or customize your initramfs if you wish to unlock your root partition. The full procedure is similar to the use of a TPM chip for unlocking. See Trusted Platform Module#systemd-cryptenroll. ​ To register the key, you will need to use the systemd-cryptenroll utility. First, run the following command to list your detected keys: ​

$ systemd-cryptenroll --fido2-device=list

​ Then you can register the key in a LUKS slot, specifying the path to the FIDO2 device, or using the auto value : ​

$ systemd-cryptenroll --fido2-device=/path/to/fido2_device /dev/sdX