Skip to content

MS_FIDO

nishi_74322014 edited this page Aug 4, 2026 · 1 revision

FIDO

概要

  • ここでは、基本的に FIDO (Fast IDentity Online) について言及する。
  • FIDO Alliance(生体認証などオンライン認証の標準化団体)により策定。

パスワード認証の問題

  • パスワードは、時代遅れになりつつある。
  • 攻撃を受けるリスクがあり、対策が必要だった。
    • 強度が高く、長くて複雑なパスワードを使用する。
    • パスワードを使い回さない。
    • 定期的にパスワードを変更する。

補足(最新化): 「定期的にパスワードを変更する」は、 現在は推奨されていない。 NIST SP 800-63B(LoA(Level of Assurance) 参照)は、 漏洩の兆候が無い限り定期変更を要求すべきでないとしている。 定期変更を強制すると、利用者は 推測しやすい規則的な変形(Pass01Pass02)に走り、 かえって弱くなるためである。 総務省も 2018 年に同趣旨へ方針を改めている。

基本思想

FIDO の基本思想は、

「生体情報などの認証情報をサーバに保存したり送信したりせず、
ユーザーのデバイスに保存することで、秘密情報の漏洩を防ぐ。」

というもの。また、

  • 認証の部品化(プラグイン化)

など。

仕組み

  • 公開鍵暗号方式をベースとしたチャレンジ・レスポンス認証。
  • 「既存の認証」に対して公開鍵を登録するという実装になる。

補足: 動作を整理すると次のとおり。

登録時

  1. サーバがチャレンジを送る
  2. 認証器がそのサービス専用の鍵ペアを生成する
  3. 秘密鍵は認証器内に留め、公開鍵だけをサーバに登録する

認証時

  1. サーバがチャレンジを送る
  2. 利用者は生体認証や PIN で認証器のロックを解除する
  3. 認証器が秘密鍵でチャレンジに署名して返す
  4. サーバは登録済みの公開鍵で検証する

ここで重要なのは、署名対象にオリジン(接続先)が含まれる点である。 偽サイトに対しては別の鍵が選ばれ、署名も一致しないため、 フィッシングが原理的に成立しないワンタイム・パスワード が リアルタイム フィッシングに無力だったのと決定的に違う。

また、サービスごとに鍵が異なるため、 サービス間での名寄せもできない(PPID と同じ発想)。

採用、普及の状況

既に FIDO エコシステムを構築、市場に普及。

企業の採用状況

Google / Microsoft / PayPal / Dropbox / GitHub / Samsung Electronics / NTT docomo / Bank of America Corporation など。

主要OSの採用状況

OS 方式
Windows 10 従来型のパスワード方式/4 桁(以上の)数字の「PIN コード」方式/Windows Hello による生体認証方式
Android 従来型のパスワード方式/4 桁数字の「PIN コード」方式/点をなぞる「パターンロック」方式
iOS 4 桁数字の「PIN コード」方式/「Touch ID」による指紋認証方式/「Face ID」による顔認証方式

補足(最新化): 現在の大きな動きは パスキー(Passkey) である。 FIDO2 の資格情報をクラウド経由で同期できるようにしたもので、 Apple / Google / Microsoft が 2022 年に共同で対応を表明した。

従来の FIDO2 パスキー
鍵の所在 デバイスに固定 アカウントに紐づき複数デバイスで同期
端末紛失時 アカウントを失う(要バックアップ手段) 復元できる
保証レベル 高い(LoA の AAL3 相当も可) 同期の分だけ前提が緩む

「端末が壊れたらログインできない」という FIDO 最大の運用課題を解いたことで、一般消費者向けに普及が進んだ。

特性

利点

観点 内容
セキュリティ向上 パスワードへの依存を減らし、認証の安全性が向上する。パスワードなどの認証情報がネットワークに流れない
コスト削減 標準規格のため、認証器はサービスに共通的に使える
プライバシー保護 サーバ側にパスワード情報や生体情報を持たない。「端末側での本人確認」と「サーバ側での認証」を分けている
操作性 生体認証や端末のボタン操作など認証操作が簡単になる。これにより、パスワード入力・管理を不要にできる

補足: 「端末側での本人確認」と「サーバ側での認証」の分離が、 FIDO を理解する鍵である。 生体認証 で述べたとおり、 生体情報は変更できない秘密なのでネットワークに流してはならない。 FIDO では生体認証は認証器のロック解除にしか使われず、 サーバに渡るのは署名だけである。

課題

機能

  • ユーザとデバイスの組の確実性しか保証されない。
  • また、権限制御は別途実装する必要がある。

認証器の信頼性

FIDO認証器を参照。

補足(運用上の課題): 実装・運用で必ず問題になるのは次の点である。

  • アカウント回復
    認証器を失った場合の復旧手段が、系全体の強度を決めてしまう。 「秘密の質問」や SMS に落とすと、そこが最弱点になる。 認証器を 2 つ以上登録させるのが定石。
  • 既存認証との併存
    パスワードを残したままだと、攻撃者はそちらを狙う。 フィッシング耐性を得るには、 最終的にパスワードを廃止する必要がある。

変遷

内容
FIDO 1.0 / 1.1 UAF(パスワードレス)と U2F(二要素)の 2 系統。FIDO1
FIDO 2.0 WebAuthn + CTAP2。FIDO2
  • Web Authentication API(MS_WebAuthenticationAPI.md

用語

FIDO Client

FIDO 対応したクライアント・アプリケーション。

  • FIDO 対応したプラットフォーム上の、中継レイヤ。
  • 認証器を持つデバイス上で FIDO の API を使用する。
  • FIDO2では、OS やブラウザの API が定義され、無くなった。

FIDO Server

RP 側で、登録済みの公開鍵を保持し、署名を検証するサーバ機能。

認証器(Authenticator)

FIDO認証器を参照。

種別
プラットフォーム認証器 Windows Hello、Touch ID / Face ID(端末に内蔵)
ローミング認証器 YubiKey などの USB / NFC / BLE セキュリティ キー

参考


Tags: IT国際標準, 認証基盤, セキュリティ

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally