FIDO / FIDO2とは

FIDO(Fast Identity Online)Allianceが策定したパスワードレス認証の国際標準規格群。公開鍵暗号方式を使い、パスワードレスかつフィッシング耐性の高い認証を実現する。Google・Apple・Microsoftが実装に参加している。

FIDOの仕組み

FIDOは公開鍵暗号を使います。認証登録時に、デバイスは「秘密鍵」と「公開鍵」のペアを生成します。 秘密鍵はデバイス内のセキュリティチップ(TPM・Secure Enclave等)に保存され、外部に送出されません。 公開鍵はサーバーに登録されます。

認証時、サーバーは「チャレンジ(乱数)」を送信します。 デバイスはユーザーの生体認証(指紋・顔)を確認してから秘密鍵でチャレンジに署名し、 署名をサーバーに返します。サーバーは登録済み公開鍵で署名を検証して認証成功と判断します。 秘密鍵は外部に出ないため、サーバー側が漏洩してもパスワードは盗めません。

FIDO・FIDO2・WebAuthnの関係

  • FIDO U2F: 2014年策定。パスワード+物理セキュリティキー(YubiKey等)の二段階認証
  • FIDO2: 2018年策定。パスワードなしの単独認証を可能にした
  • WebAuthn: FIDO2の一部でW3Cが標準化したWebブラウザ用API。ブラウザから直接FIDOを利用できる
  • パスキー: FIDO2をさらに使いやすくしたもの。クラウド同期によりマルチデバイス対応

メリット

  • フィッシング完全耐性: チャレンジはドメイン固有のため、偽サイトでは使えない
  • パスワードレス: パスワードの記憶・管理が不要
  • クレデンシャル漏洩リスクなし: サーバーには公開鍵のみ保存、秘密鍵は外部に出ない
  • 生体認証との統合: 指紋・顔認証と組み合わせて高いセキュリティと利便性を両立

デメリット

  • 対応するデバイス・ブラウザが必要(古いデバイスでは利用できない)
  • デバイス紛失時の復旧手順を事前に設定しておく必要がある
  • 導入コスト・開発工数がSMS認証より高い

電話認証との使い分け

FIDOは高セキュリティが要求されるアプリ(金融・エンタープライズ)に適しています。 一方、電話番号の実在確認(スパム対策・不正登録防止)には 電話認証が軽量で実装が簡単です。 用途に応じて使い分けることが推奨されます。

関連用語

  • パスキー — FIDOを日常利用しやすくしたクラウド同期型認証
  • 二段階認証 — FIDOはその最強実装形態
  • TOTP — FIDOより実装が簡単なパスワードレス代替

FIDOより軽量に電話番号認証を実装したい開発者へ

pauth.meの着信認証APIはREST API 3呼び出しで実装完了。スパム・不正登録対策に最適。

無料で試す