はじめに
Universal 2nd Factor (以下、U2F)は、専用のUSBまたはNFCデバイスなどを使用した二要素認証(2FA)です。
U2Fはオープンスタンダードであり、現在はFIDO2プロジェクトとして、FIDO AllianceとWorld Wide Web Consortium (W3C)によって共同作業が行わています。
FIDO Alliancは、従来のパスワード認証を置き換えることを理念に掲げている非営利の業界団体です。セキュリティキーやパスキーなどと呼ばれているハードウェアデバイスや公開鍵暗号方式を採用することで、パスワードレスを実現しています。
本記事では、Google アカウントの2段階認証プロセスにセキュリティキーを設定する方法について記載しています。
Universal 2nd Factor (U2F)
U2Fは、FIDO認証を用いることで従来のパスワード認証よりもセキュリティを向上させることができます。
U2Fを使用する主なメリットは、公開鍵暗号方式を利用した認証方式によって、認証情報が盗まれにくいことや第2要素としてのパスワード入力を簡略化することができます。Time-based One-Time Password(TOTP)と比較して、U2Fは手間のかからない認証方法を提供します。
デメリットについては、セキュリティキーを第2要素の認証手段としてのみ使用する場合、セキュリティキーが使用不可能になった際、復旧が困難なことです。ハードウェアの複製や代替手段を用意することができないため、セキュリティキーを第2要素として使用する際は注意が必要です。
U2FはFIDO認証の一種になるため、FIDO2やFIDO UAFとは区別されます。
Google アカウント
本記事では、セキュリティキーとしてFlipper Zeroを使用しています。Flipper Zeroについては、以前書いたGeekのためのマルチツール Flipper Zeroをご参照ください。
また、Flipper Zeroの設定方法は、以下の公式ドキュメントから確認できます。
セキュリティキーはYubiKeyが有名です。Googleは自社製品としてTitan セキュリティ キーを販売しています。
セキュリティキーの追加
Google アカウントの画面からセキュリティを選択して「2段階認証プロセス」を押します。
「セキュリティ キー」を押します。
「パスキーを作成する」を押します。
「パスキーを作成」を押します。
画面上部に以下の様なポップアップが表示されるので「許可する」を押します。
Flipper Zeroを接続した状態でボタンを押します。
新しいセキュリティキーがアカウントに追加されたので「完了」を押します。
新しいセキュリティキーが追加されました。
セキュリティキーでログイン
新しいウインドウを開きメールアドレスとパスワードを入力後、画面上部に以下の様なポップアップが表示されます。
Flipper Zeroでボタンを押して認証を行います。
2段階認証プロセスが完了したので「次へ」を押して、認証完了です。
Flipper Zero側は以下の様に表示されます。
おわりに
FIDO認証は、フィッシングに強いセキュリティとして、よりシンプルなユーザーエクスペリエンスを提供します。
ちなみにOpenSSHは8.2からFIDO/U2Fハードウェア認証システムをサポートしているため、サーバでFIDO認証を行うこともできます。なお、OpenSSHでFIDO認証を行うためには、クライアントとサーバ側でecdsa-skまたは、ed25519-sk形式の鍵をサポートしている必要があります。