🔐

FIDO, WebAuthnの仕様の関係まとめ

2022/01/29に公開

概要

  • FIDOやWebAuthnに関連する仕様の概要及び関係性を自分用に整理したメモ

FIDO (Fast IDentity Online) Alliance

  • FIDOの仕様を作っている団体
  • パスワード認証の課題を解決を目的に2012年に発足した非営利団体
  • PayPalサービス向けの生体認証によるオンラインユーザ認証の構想がきっかけとなりPayPal, 指紋センサーのベンダーなどが集まって設立された
  • amazon, apple, google, meta, microsoftなども加入

FIDO Alliance
FIDO Members

FIDO Allianceが策定している仕様とWebAuthnの関係

FIDOで策定している仕様

FIDO UAF(Universal Authentication Framework)

  • オンラインサービスがパスワードレスでかつ多要素認証のセキュリティを提供するための仕様
  • 上記を提供するためにサーバー(FIDO Sever)、クライアント(FIDO client)及び認証器(FIDO Authenticator)がどう振舞うべきか、それぞれのコンポーネントがどのように何をやりとりすべきかが書かれているの
  • サーバー側も含めた登録、認証処理の流れが書かれているので全体像を掴むのにも役立つ

FIDO UAF Architectural Overview - FIDO UAF High-Level Architectureより

FIDO UAF Architectural Overview

CTAP (Client to Authentiator Protocol)

  • スマートフォンやセキュリティキーなどの認証器とクライアント間のプロトコル
  • AuthenticatorのAPI、メッセージエンコーディング及びトランスポート固有(USB, Bluetooth, NFC)の仕様を定義
  • CTAPにはCTAP1とCTAP2が存在する
  • CTAP1はFIDO U2Fとも呼ばれ、FIDO U2Fデバイスを二要素認証として利用するための仕様
    • 仕様のドキュメント自体はCTAPの仕様とFIDO U2Fの仕様で分かれており、CTAPの仕様によりU2Fの仕様が一部置き換えられてそうにみえる
  • CTAP2は外部の認証器をパスワードレス、二要素認証及びマルチファクター認証に利用するための仕様(CTAP1は二要素認証のデバイスとしてだけ使える、CTAP2はそれ以外もサポートしているという部分が差異と思われる)

https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-client-to-authenticator-protocol-v2.0-id-20180227.html

WebAuthn

  • ウェブアプリケーションがFIDOの仕組みを利用できるようにするためにブラウザAPIを定義している
  • WebAuthnはブラウザが提供しているCredentials Management APIを拡張した形で提供される
  • W3Cが策定している

Web Authentication:
An API for accessing Public Key Credentials
Level 2

Discussion