マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

基本思想

FIDOの基本思想は、

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

というもの。

また、

など。

様々な外部認証器通信(FIDO標準プロトコル・メッセージ)APIクライアント(FIDO Client, RP Application)WebAPI通信(FIDO標準プロトコル・メッセージ)サーバ(RP Server, FIDO Server)
生体認証<--->
EAP (External Authenticator Protocol)
JS、NativeのAPI
以下は同じものを指している?
- Web Authentication API
- WebAPI for Accessing Credential API
(WebAPIと言っているが所謂、WebAPIではない...。)
各種ブラウザ、各種OS各種HttpClient?<--->
ここの仕様は存在しない?
サービスA
サービスB
サービスC
...サービスX
 指紋
 静脈
 虹彩
 
その他の認証方法
 PINコード
 ジェスチャー

仕組み

採用、普及の状況

特性

利点

セキュリティ向上

コスト削減

標準規格のため、認証器はサービスに共通的に使える。

プライバシー保護

操作性

課題

機能

認証器の信頼性

用語

OAuth2と同じで、Relying Party(RP)という用語が使用されている。

Relying Party(RP)には以下の2つがある。

RP Application

= FIDOクライアント

RP Server

= FIDOサーバ

変遷

FIDO 1.0

UAF(Universal Authentication Framework)

パスワードレス認証の仕様

U2F(Universal Second Factor)

パスワードに加えた2要素認証向けの仕様

2要素認証(USB、Bluetooth、NFC経由)

FIDO 1.1

2016年12月8日、複数の機能拡張を追加。

FIDO 2.0

2015年11月19日、WWW技術の標準化団体であるW3Cに FIDO 2.0 のWeb API仕様を提案

Webプラットフォーム API仕様

デバイス間連携仕様

デバイス組込みではない認証器に対応するための通信プロトコルの規定。

詳細

処理シーケンス

登録

認証器で鍵を生成・登録するAPIを使用して処理を行う。

  1. サービス要求(RP Application ---> RP Server---> FIDO Server)
  2. 認証要求(RP Application <--- RP Server <--- FIDO Server)
  3. クレデンシャル生成要求(RP Application ---> FIDO Client ---> 認証器
  4. クレデンシャル生成 「この機器(認証器)をサーバーに登録しますか?」
    • ユーザーによる明示的な操作(ジェスチャー)
    • 秘密鍵・公開鍵のペアを生成することを承認(確認)
  5. クレデンシャル情報の応答(RP Application ---> RP Server---> FIDO Server)
    公開鍵、鍵情報 (署名つき) などを公開鍵暗号方式でサーバーに伝達する。
  6. サーバーで・・・(RP Server ---> FIDO Server)

認証

登録済みの鍵を使って認証用の署名を生成するAPIを使用して処理を行う。

  1. サービス要求(RP Application ---> RP Server---> FIDO Server)
  2. 認証要求(RP Application <--- RP Server <--- FIDO Server)
  3. FIDO認証要求(RP Application ---> FIDO Client ---> 認証器
  4. クレデンシャルの検索
    「この機器(認証器)を用いて認証しますか?」
    • ユーザーによる明示的な操作(ジェスチャー)
    • 既存のクレデンシャルを利用することを承認(確認)
  5. 認証器による認証
    • デバイス側の認証器で認証を完了させ、
    • 認証結果を端末側が持つ秘密鍵を使って署名する。
  6. アサーション応答(RP Application ---> RP Server---> FIDO Server)
    署名されたアサーション(署名つきchallenge + その他データ)を公開鍵暗号方式でサーバーに伝達する。
  7. サーバーで署名検証(RP Server ---> FIDO Server)
    サーバーでは、このアサーションの署名を検証することでログインできる。

FIDOクライアント

認証器

認証器は、Authenticatorとも言う。

ブラウザ

FIDO 2.0のWeb API仕様に対応したブラウザは、

などの、FIDO準拠のデバイスやソフトウエアによるユーザー認証の結果を、
標準化されたAPIで受け取ってWebサービスに通知することができる。

FIDOサーバー

各仕様

FIDOサーバ側のWebAPIのインターフェイス定義は発見できず(未定義?)。

WebAPI for Accessing Credential API

どうも、Web Authentication APIと同じものを指している模様。

# WebAPI for Accessing Credential APIが、Web Authentication APIに準拠?

Key Attestation Format

クライアントや認証器などのコンテキストを表現するための
アサーションや、クレデンシャルのフォーマットを定義している。

Signature Format

FIDO 2.0準拠クレデンシャル用の署名フォーマット(上記のアサーションに署名を行う)

FIDO準拠のデバイスやソフトウエア

Windows Hello

Touch ID

iPhoneシリーズのTouch IDの指紋認証は、FIDO対応ではないもよう。
しかし、FIDOクライアント側で、Touch IDを利用可能にしている模様。

応用

FIDO認証とID連携

ID連携により、アサーションを連携することで、他のRPでもFIDO認証をサポートできる。

オフライン利用

アサーションの提示でオフラインでも本人確認が可能。

参考

Yahoo! JAPAN

Tech Blog

Microsoft

しばやん雑記

Tsmatz

Microsoft Docs

FIDO Alliance

生体認証などを利用したより強力なオンライン認証技術の標準化を目指す
非営利の標準化団体(2012年7月に設立、2013年2月に正式発足)

セミナー

FIDO Alliance MetaData? Service

脆弱性の発覚などで信用性が低下したデバイスに関する情報。

ES256のJWTであるもよう。

W3C

FIDO 2.0

Web Authentication API

その他

端末のセキュリティ

TPM(Trusted Platform Module)

TEE(Trusted Execution Environment)

SE(Secure Element)

USBドングル

挿さないとPCが動かないハードウエア型の鍵デバイス


Tags: :認証基盤


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS