Universal 2nd Factor
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
Chromium/Chrome
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 キーのボタンをクリックして、鍵を確認します。
複数の鍵を所有している場合は、それらを追加してください
$ pamu2fcfg -o pam://hostname -i pam://hostname -n >> ~/.config/Yubico/u2f_keys
Passwordless sudo
Open /etc/pam.d/sudo
and add
auth sufficient pam_u2f.so origin=pam://hostname appid=pam://hostname
as the first line. Be sure to replace the hostname
as mentioned above. Then create a new terminal and type sudo ls
. Your key's LED should flash and after clicking it the command is executed.
GDM login
Open /etc/pam.d/gdm-password
and add
auth required pam_u2f.so nouserok origin=pam://hostname appid=pam://hostname
after the existing auth
lines. Please note the use of the nouserok
option which allows the rule to fail if the user did not configure a key. This way setups with multiple users where only some of them use a U2F key are supported.
Other authentication methods
Enable the PAM module for other services like explained above. For example, to secure the screensaver of Cinnamon, edit /etc/pam.d/cinnamon-screensaver
.
Troubleshooting
If you managed to lock yourself out of the system, boot into recovery mode or from a USB pen drive. Then revert the changes in the PAM config and reboot.
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