FIDO 認証

FIDO とは

U2F

U2Fは従来のパスワード+ワンタイムパスコードに代表される「記憶認証」+「所持認証」の組み合わせた2要素認証プロトコルである.U2F は認証器 (Authenticator) そのものを所持していることを提示するアクション(認証器上のボタンを押す動作)をとることで認証されるため,フィッシングへの耐性がある.なお,クライアント側とサーバ側の通信は HTTPS を用いて暗号化される.

パスワード認証した上で登録などを行うので,ユーザIDと認証器で生成した鍵の紐付けが比較的簡単であり,またプロトコルのシーケンスが比較的シンプルであるため,RP が U2F 対応するための実装コストは比較的少ない.

利用者は,次のような操作を行う.

  1. パスワードとユーザIDで,オンラインサービスにログインする.
  2. 利用するオンラインサービスに USBトークンなどの認証器を登録する.このとき,該当オンラインサービス用の秘密鍵と公開鍵のペアが認証器内に自動的に生成され,公開鍵のみがオンラインサービス側に送られる.
  3. オンラインサービスを利用する際,利用者が認証器の確認ボタンを押すと,認証器内の秘密鍵で署名した認証情報がオンラインサービス側のサーバに送られる.このとき利用する秘密鍵はサーバ側から指示される情報から決定される.
  4. オンラインサービス側で保管している公開鍵で署名を検証し,検証が成功すれば認証が完了する.
  5. 認証完了通知を受けた利用者は,オンラインサービスを利用することができる.

UAF

UAFはパスワードを使用せず,「所持認証」+「生体認証など」を利用した認証を提供するプロトコルである.端末上での生体認証を加えることにより,端末紛失時にもデータを守ることができるようになる.なお,端末で認証に使った生体情報は端末内のセキュアな領域内で管理され,通信路にデータが流れることはない.

UAFの特徴は,RP が許容する認証ポリシーを組み込めることにある. 例えば,サービス提供者がセキュアな認証を求めるケースでは,相応の生体認証が可能な認証装置を搭載している端末のみに利用を制限できる. また.生体認証機能がなくても PINコード入力をするような認証器も許容するなど,様々な認証方式に対応できる.

認証時の流れは,次のようになる(事前に認証器により生成された鍵ペアの内,公開鍵を認証サーバに登録する処理を行う).

  1. 利用者は,オンラインサービスにログインする.
  2. 認証サーバ側 (RP サーバ,FIDO サーバ)が認証リクエストを受け,認証用のチャレンジデータをクライアント側 (RP アプリケーション,FIDO クライアント) に送る.
  3. FIDO クライアントは,有効な認証器を確認し,認証器に認証要求を出す.
  4. 利用者が認証器を使い,生体認証やパスコードなどを入力する.
  5. 秘密鍵を用いて認証情報に対する署名データを生成し,認証レスポンスとして認証サーバに送る.
  6. 認証サーバで保持している公開鍵で署名を検証し,検証が成功すれば認証OKをクライアントに通知する.
  7. 認証完了通知を受けた利用者は,オンラインサービスを利用することができる.

FIDO 2.0

FIDO Alliance は 2015年11月19日,WWW技術の標準化団体であるW3Cに FIDO 2.0 のWeb API仕様を提案している.FIDO 認証の OS や Webブラウザへの導入を目指している.

FIDO 2.0 では,U2FとUAFは統合されており,次のような仕様が規定されている.

inserted by FC2 system