FIDO UAF 1.1

Universal Authentication Framework

端末のAuthenticator能力を共通Policyで選択し、パスワードを置き換える登録・認証メッセージと処理規則を定義する従来FIDO仕様です。

STATUSFIDO Alliance Proposed StandardFLOWS1 documentedPrimary specification ↗

この仕様は、
何を解決するのか。

既存UAFシステムを理解・保守する人や、FIDO2へ移行する際にアーキテクチャの違いを整理したい人向けです。

FIDO UAFは、端末に備わる生体認証やPINなどを利用し、パスワードを置き換えることを目的としたFIDOの認証アーキテクチャです。Relying PartyはAuthenticatorの種類を直接実装せず、Policyとして必要な能力を指定します。

UAF ClientはPolicyに合うAuthenticatorを選び、ASMを介して登録や署名を実行します。サーバーには公開鍵が登録され、認証時にはchallengeに対する署名を検証します。ローカルの生体情報はサーバーへ送られません。

仕様が定める、大切なこと。

01

パスワードレス認証

端末内のAuthenticatorと公開鍵署名によって、共有パスワードに依存しない認証を実現します。

02

AuthenticatorをPolicyで選ぶ

生体認証やハードウェア保護など、Relying Partyが必要とする能力をPolicyとして表現します。

03

端末機能を抽象化する

UAF ClientとASMが、Authenticator固有の実装差をアプリケーションから隠します。

01Passwordless02UAF Client03Authenticator Policy04ASM05Signed Assertion

安全に使うための確認事項。

仕様を実装するときは、正常系の通信だけでなく、値のすり替え、再利用、漏えいが起きた場合も考えます。

  1. 01

    UAF ProtocolメッセージはTLSで送信します。

  2. 02

    AppIDとFacet IDの関係を検証し、別アプリからCredentialを利用されないようにします。

  3. 03

    Authenticator MetadataとPolicyを検証して許可したAuthenticatorだけを登録します。

  4. 04

    署名counterを確認し、Authenticator複製の兆候を検知します。

この仕様に属するフロー

ほかの仕様との関係

UAFは従来FIDOのパスワードレス仕様です。Webの新規実装では、ブラウザ標準APIとして普及しているWebAuthn/FIDO2を検討します。UAFの公開鍵認証という基本思想はFIDO2にも引き継がれています。

OAuth 2.0 (RFC 6749)The OAuth 2.0 Authorization FrameworkOAuth 2.0 Device Authorization (RFC 8628)OAuth 2.0 Device Authorization GrantOAuth 2.1OAuth 2.1 Authorization FrameworkOpenID Connect Core 1.0OpenID Connect Core 1.0FIDO2 WebAuthn Level 3Web Authentication: Public Key CredentialsFIDO2 CTAP 2.2Client to Authenticator ProtocolFIDO U2F 1.2Universal Second FactorOpenID Connect CIBA Core 1.0Client-Initiated Backchannel AuthenticationOAuth 2.0 PKCE (RFC 7636)Proof Key for Code Exchange by OAuth Public ClientsJSON Web Token (RFC 7519)JSON Web Token (JWT)OAuth 2.0 DPoP (RFC 9449)OAuth 2.0 Demonstrating Proof of PossessionSAML 2.0Security Assertion Markup Language 2.0SCIM 2.0 (RFC 7644)System for Cross-domain Identity Management: Protocol