Skip to main content

FIDO/WebAuthn - Passwordless Authentication Standards

About 2 min read

FIDO (Fast IDentity Online) と WebAuthn は、パスワードに依存しない認証を実現するための国際標準規格です。 FIDO Alliance が策定した技術仕様と、 W3C が Web 標準として勧告した WebAuthn API を組み合わせることで、 ブラウザやアプリケーションから公開鍵暗号ベースの認証を利用できます。フィッシングに対する構造的な耐性を持ち、 パスワード漏洩という根本的な問題を解消する技術として、業界全体で採用が進んでいます。

FIDO Alliance の設立と規格の進化

2012 年、 PayPal と Lenovo を中心に FIDO Alliance が設立されました。当時、パスワードの使い回しや 大規模な情報漏洩事件が相次ぎ、パスワード認証の限界が明確になっていた時期です。 Alliance はまず 2014 年に 2 つの規格を公開しました。 UAF (Universal Authentication Framework) は 生体認証によるパスワードレスログインを、 U2F (Universal 2nd Factor) は USB セキュリティキーによる 二要素認証を実現するものでした。

2018 年に大きな転換点が訪れます。 FIDO2 プロジェクトとして、 W3C の WebAuthn API と FIDO Alliance の CTAP (Client to Authenticator Protocol) が標準化されました。 WebAuthn はブラウザ側の API 仕様、 CTAP は認証器 (セキュリティキーや生体認証デバイス) との 通信プロトコルです。この 2 つが組み合わさることで、 Web ブラウザから直接ハードウェア認証器を 利用できるようになりました。そして 2022 年以降、パスキーとして FIDO2 の認証情報をクラウド同期する仕組みが普及し、一般ユーザーにも手が届く技術になっています。

公開鍵暗号ベースの認証フロー

FIDO/WebAuthn の認証は、チャレンジ-レスポンス方式で動作します。従来のパスワード認証では 「秘密の文字列」をサーバーに送信しますが、 FIDO では秘密鍵がデバイスの外に出ることはありません。

サーバーがランダムなチャレンジを生成
ブラウザが WebAuthn API を呼び出し
認証器が本人確認 (生体 / PIN)
秘密鍵でチャレンジに署名
サーバーが公開鍵で署名を検証

この方式の決定的な利点は、サーバー側にはユーザーの公開鍵しか保存されないことです。 仮にサーバーが侵害されても、公開鍵から秘密鍵を逆算することは計算上不可能であり、データ漏洩が 認証情報の悪用に直結しません。

フィッシング耐性の仕組み - オリジン検証

FIDO/WebAuthn がフィッシングに強い最大の理由は、認証時にオリジン (ドメイン) の検証が 自動的に行われる点にあります。認証器は、認証リクエストの発行元ドメインを暗号的に署名に含めます。 攻撃者が偽サイト (例: examp1e.com) でユーザーに認証を求めても、正規サイト (example.com) の 認証情報は偽サイトのオリジンでは使用できません。ユーザーが騙されて偽サイトにアクセスしても、 認証器レベルで不正が検出されるため、フィッシング攻撃が構造的に成立しないのです。 これはパスキー移行の課題を 検討する上でも重要な利点です。

パスキーとの関係

パスキーは FIDO2/WebAuthn の実装形態の一つです。技術的には同じ公開鍵暗号ベースの認証ですが、 パスキーは認証情報をクラウド経由で複数デバイスに同期できる点が従来の FIDO2 と異なります。 従来の FIDO2 セキュリティキーは物理デバイスに紐づくため、紛失時のリカバリーが課題でした。 パスキーはこの問題を解決し、 iCloud キーチェーンや Google パスワードマネージャーを通じて シームレスなデバイス間同期を実現しています。生体認証との組み合わせにより、 ユーザー体験も大幅に向上しました。

対応状況と実務上の考慮点

2025 年時点で、 Chrome 、 Safari 、 Firefox 、 Edge の主要ブラウザすべてが WebAuthn API に対応しています。 OS レベルでは Windows Hello 、 macOS / iOS の Touch ID / Face ID 、 Android の生体認証が FIDO2 認証器として機能します。企業導入では、 YubiKey などのハードウェアセキュリティキーを多要素認証の 手段として採用するケースが増えています。FIDO2 security key guides on Amazonも実装の参考になります。

実務上の注意点として、 WebAuthn の導入にはサーバー側の対応も必要です。 チャレンジの生成、公開鍵の保存、署名の検証ロジックを実装する必要があり、 ライブラリ (SimpleWebAuthn 、 py_webauthn など) の活用が推奨されます。 また、暗号化の基礎知識、 特に公開鍵暗号の仕組みを理解しておくと、トラブルシューティング時に役立ちます。生体認証のリスク二段階認証の基本も あわせて把握しておくと、認証設計の全体像が見えてきます。

Related Terms

Was this article helpful?

XHatena