概要

FIDO2(Fast Identity Online 2)はFIDOアライアンスとW3Cが策定したパスワードレス認証の標準です。WebAuthn(Web Authentication API)とCTAP(Client to Authenticator Protocol)で構成され、公開鍵暗号を使ったフィッシング耐性の高い認証を実現します。パスキー(Passkey)はFIDO2資格情報をデバイス間で同期できるようにしたApple・Google・Microsoftが推進する実装です。

仕組みと動作原理

FIDO2の構成要素

要素役割
WebAuthnブラウザとWebサーバ間の認証プロトコル(W3C標準)
CTAPブラウザと認証器(YubiKey等)間のプロトコル
認証器(Authenticator)鍵ペアの生成・保管・署名を行う装置またはソフトウェア

登録フロー(初回)

1. ユーザがWebサイトにFIDO2登録を要求
2. サーバがチャレンジ(乱数)を送付
3. 認証器が鍵ペア(秘密鍵・公開鍵)を生成
   - 秘密鍵:認証器内に安全に保管(外部に出ない)
   - 鍵はサイトごとに固有(rpId = ドメイン名に紐付け)
4. 認証器がチャレンジに秘密鍵で署名して返す
5. サーバが公開鍵と署名を検証して公開鍵を保存

認証フロー(2回目以降)

1. サーバがチャレンジを送付
2. 認証器がチャレンジに秘密鍵で署名
3. サーバが保存済み公開鍵で署名を検証 → 認証成功

パスワードが通信路を流れることは一切ありません。

FIDO2の登録〜認証フロー
1
登録
サーバがチャレンジを送付し認証器が鍵ペアを生成
秘密鍵は認証器内に保管
2
登録
認証器がチャレンジに署名しサーバが公開鍵を保存
鍵はドメイン(rpId)ごとに固有
3
認証
サーバがチャレンジを送付し認証器が署名
2回目以降のログイン
4
認証
サーバが保存済み公開鍵で署名を検証
検証成功で認証完了

フィッシング耐性の仕組み

鍵はドメイン名(rpId)に紐付いて生成されます。

正規サイト:example.com → 鍵A(example.comの鍵)で署名可能
偽装サイト:evil-example.com → 鍵Aは使えない(別ドメインなので)

偽装サイトがどんなにリアルに見えても、ドメインが異なればFIDO2資格情報は使用されません。これがフィッシング耐性の本質です。

パスキー(Passkey)

デバイスバウンドキーとの違い

種類保管場所特徴
デバイスバウンドキー(YubiKey等)物理デバイスのみ紛失すると使えない。高いセキュリティ
パスキークラウド同期(iCloud Keychain・Google Password Manager等)複数デバイスで使用可能。利便性高い
デバイスバウンドキー と パスキー の比較
デバイスバウンドキー パスキー
保管場所
物理デバイスのみ
クラウド同期(iCloud Keychain等)
紛失時の影響
使えなくなる
別デバイスから同期して利用可能
利便性
低い(デバイス依存)
高い(複数デバイスで共有)
フィッシング耐性
あり(ドメイン紐付け)
維持される(ドメイン紐付けは不変)

パスキーのセキュリティ

  • 秘密鍵は暗号化されてクラウドに保存
  • デバイスのロック解除(生体認証・PIN)で使用可能
  • フィッシング耐性は維持される(ドメイン紐付けは変わらない)

認証器の種類

種類特徴
プラットフォーム認証器Touch ID・Face ID・Windows Helloデバイスに内蔵
ローミング認証器(外部)YubiKey・セキュリティキーデバイスに依存しない
パスキー(クラウド同期)iCloud Keychain・Google PM複数デバイスで使用

従来のMFAとFIDO2の比較

認証方式フィッシング耐性利便性
パスワードのみ
パスワード + SMS OTP✗(OTPも中継可能)
パスワード + TOTP✗(TOTPも中継可能)
FIDO2 / パスキー◎(ドメイン紐付けで根本防止)

SC試験での頻出ポイント

  • FIDO2がフィッシングに強い根本的理由:鍵がドメイン(rpId)に紐付いているため、偽サイトでは使用不能
  • WebAuthnとFIDO2の関係:FIDO2はWebAuthn(ブラウザAPI)とCTAP(認証器プロトコル)で構成
  • パスキーとFIDO2の違い:パスキーはFIDO2資格情報をクラウド同期できるようにした実装
  • 従来MFAとの違い:SMS・TOTPはAiTM攻撃でリアルタイムに中継可能。FIDO2は中継しても使えない
  • 秘密鍵が外部に出ない重要性:秘密鍵はデバイス内(セキュアエレメント等)から出ず、署名のみを外部に送る

よくある誤問・ひっかけパターン

誤り① 「パスキーは秘密鍵をクラウドに保存するので安全でない」→ 不正確。秘密鍵は暗号化されてクラウドに保存され、デバイスロック解除なしでは使用できません。フィッシング耐性も維持されます。

誤り② 「FIDO2を導入すればフィッシングの被害は0になる」→ 不正確。FIDO2はフィッシングによる認証情報窃取を防ぎますが、添付ファイルのマルウェア実行などFIDO2とは別の攻撃経路は残ります。

誤り③ 「YubiKeyを使えばFIDO2の認証が必要ない」→ 。YubiKeyはFIDO2の「ローミング認証器」です。WebAuthnプロトコルを通じてFIDO2認証を行います。

関連用語

重要キーワード

用語説明
FIDO2パスワードレス認証の業界標準。WebAuthnとCTAPで構成
WebAuthnブラウザとWebサーバ間のFIDO2認証プロトコル(W3C標準)
パスキーFIDO2資格情報をクラウド同期可能にした実装
rpIdFIDO2で鍵を紐付けるドメイン識別子。フィッシング耐性の技術的根拠
認証器鍵ペアの生成・保管・署名を行うデバイスまたはソフトウェア
フィッシング耐性偽サイトでは鍵が使えないためフィッシングで認証情報を奪えない性質