狠狠撸

狠狠撸Share a Scribd company logo
All Rights Reserved | FIDO Alliance | Copyright 2020
How FIDO Works
All Rights Reserved | FIDO Alliance | Copyright 20202
HOW FIDO WORKS
? FIDO Leverage PKC for Authentication – NO SHARED SECRETS
3
FIDO2 Architecture overview
Client(PC,mobile) Relying Party
External
Metadata
Service
Server-Side
App
User
Store
FIDO2
Server
Browser or
Native App
Internal
Authentic
ator
External
Authenticator CTAP2
WebAuthn
4
開発のステップ
1. FIDO2認証サーバーを?前で構築する?法
2. ライセンスを購?し?社でインストールする?法
3.サービスとして提供されている 外部のFIDO2認証サーバーを利?する
?法
5
WebAuthn
WebAuthn enables online services to use FIDO Authentication
through a standard web API that can be built into browsers and
related web platform infrastructure. It is a collaborative effort based
on specifications initially submitted by FIDO Alliance to the W3C and
then iterated and finalized by the broader FIDO and W3C
communities. WebAuthn was designated an official web standard in
March 2019. It is currently supported in Windows 10 and Android
platforms, and Google Chrome, Mozilla Firefox, Microsoft Edge and
Apple Safari web browsers.
6
公開鍵暗号?式を?いた2つの機能
Web Authentication API は登録とログインの2つの基本的な機能を持つ。
登録?署名と公開鍵情報を送信
認証?署名を送信
*登録解除については本?は割愛
7
Registration Flow
*W3C : http://www.w3.org/TR/webauthn
8
RP側の準備
登録ステップでは、RPサーバがRegister, AttestationResponseの2つの
エンドポイントを提供する必要がある。
1.ユーザーIDに紐づいたチャレンジレスポンスを発?するAPI (POST
/attestation/options)
2.ブラウザのAuthenticatorが発?した公開鍵を検証しデータベースに保
存するAPI(POST /attestation/result)
*Server Requirements and Transport Binding Profile
https://fidoalliance.org/specs/fido-v2.0-rd-20180702/fido-server-
v2.0-rd-20180702.html
* Sample
https://github.com/webauthn-open-source/fido2-lib
9
0. ユーザがRPへ登録リクエスト送信
アカウント登録時に必要な情報を
サーバに送信する。登録時に必要な
情報は各サービスごとに異なる。
(?名や住所など)
送られた情報はあとで参照するため、
適切なバリデーションを?い、DB
に?度保存する。
10
(Request Sample)
? URL: /attestation/options
? Method: POST
? URL Params: None
? Body: application/json formatted ServerPublicKeyCredentialCreati
onOptionsRequest
11
(Sample JavaScript)
12
⒈ チャレンジを?成しレスポンス
RPのチャレンジ発?APIはチャレン
ジ(ランダムな値)を発?し、
RelyingPartyの情報など次のステッ
プに必要な情報と合わせレスポンス
データを返す
13
(Success Response)
? HTTP Status Code: 200 OK
? Body: application/json formatted ServerPublicKeyCredentialCreati
onOptionsResponse
14
15
(Error Response Sample)
? HTTP Status Code: 4xx or 5xx
? Body: application/json formatted ServerResponse
16
2.navigator.credentials.create() 実?
navigator.credentials.create()を
実?することでAuthenticatorをRP
上のユーザーに紐づけ
*実際は鍵ペアの作成と公開鍵要求
リクエストの仕様はW3Cの 5.4.
Options for Credential Creationに
記載されている
https://www.w3.org/TR/webaut
hn/#dictionary-
makecredentialoptions
17
Sample
* Enabling Strong Authentication with WebAuthn
https://developers.google.com/web/updates/2018/05/webauthn
18
パラメータ(?部)
パラメータ 説明
rp.id Relying Party ID
rp.name Relying Party Name
user.id User ID
user.name User Name
user.displayName User Name (Display Name)
challenge サーバーで?成した乱数
pubKeyCredParams.type Credentialのタイプ
pubKeyCredParams.alg Attestationに?る公開鍵の暗号化アルゴリズム
19
⒊ 公開鍵とAttestationを作成
Authenticatorはユーザーの本?確
認を?い(例えば、yubikeyの光る
ボタンを指でタップ)、確認が成功
したら、新しい公開鍵とAttestation
を作成する。Attestationとは、
Authenticatorの有効性や正当性を
証明するためのパラメータ。
20
What is Attestation?
? Attestationは、主に公開鍵をサーバが保存するときに、その公開鍵は攻
撃者が置き換えたものではなく、ユーザが所持するAuthenticatorから
?成されたものであることを保証するための仕組み。
? 現在、W3Cが定義しているAttestation Formatは以下の6種類
ー FIDO U2F
ー Packed
ー TPM
ー Android Key
ー Android SafetyNet
ー None
21
4. Authenticatorは認証情報を返却
? Authenticatorは作成された公開
鍵とAttestation等の認証情報を
attestationObjectとしてブラウ
ザに返却
22
5.RPへAttestationObjectを返却
RPのAttesstationResponseエンド
ポイントに認証情報を送信する。
23
(Request Sample)
? URL: /attestation/result
? Method: POST
? URL Params: None
? Body: application/json formatted ServerPublicKeyCredential with
response field set to ServerAuthenticatorAttestationResponse
24
(Sample Call)
25
6.RPは認証情報を検証し、登録完了
? 認証サーバは受信した認証情報を
検証する
? 検証成功後、適切な成功レスポン
スを返し、認証時に利?するため
に、公開鍵をDBに保存する。
? これでユーザ/Authenticatorの登
録が完了になる。
26
(Success Response)
? HTTP Status Code: 200 OK
? Body: application/json formatted ServerResponse
27
(Error Response Sample)
? HTTP Status Code: 4xx or 5xx
? Body: application/json formatted ServerResponse
28
Authentication Flow
*W3C : http://www.w3.org/TR/webauthn
29
RP側の準備
認証ステップでは、RPサーバがLogin, AssertionResponseの2つのエン
ドポイントを提供する必要がある。
1. 認証チェック時、ユーザ ID に紐付いたチャレンジレスポンスを発?
する API (POST /assertion/options)
2. ブラウザの認証器が発?した署名をサーバに保存した公開鍵で検証し
てセッションを発?する API(POST /assertion/result)
*Server Requirements and Transport Binding Profile
https://fidoalliance.org/specs/fido-v2.0-rd-20180702/fido-server-
v2.0-rd-20180702.html
* Sample
https://github.com/webauthn-open-source/fido2-lib
30
0 UsernameをRPに送信し認証を要求
登録と同様にLoginエンドポイント
へのリクエスト仕様もWebAuthnの
仕様の範囲外。通常ユーザIDなど
ユーザを特定できるユニークな識別
?を利?することが多い
31
(Request Sample)
? URL: /attestation/options
? Method: POST
? URL Params: None
? Body: application/json encoded ServerPublicKeyCredentialGetO
ptionsRequest
32
(Sample Call)
33
1.RPが登録済み確認し、結果を返す
RPはChallengeを?成しDBに保存
する
また、DBに保存されている
Authenticatorが作成した公開鍵の
情報をallowCredentialsに格納して
返す。
34
(Success Response)
? HTTP Status Code: 200 OK
? Body: applicaiton/json encoded ServerPublicKeyCredentialGetOpti
onsResponse
35
(Error Response Sample)
? HTTP Status Code: 4xx or 5xx
? Body: applicaiton/json encoded ServerResponse
36
2. navigator.credentials.get() 実?
RPのレスポンスを元に、
navigator.credentials.get()を実?
し認証処理を実?。
37
Sample
* Enabling Strong Authentication with WebAuthn
https://developers.google.com/web/updates/2018/05/webauthn
38
パラメータ(?部)
パラメータ 説明
challenge サーバーで?成した乱数
allowCredentials.type public key
allowCredentials.id create()のときに取得したCredentialID
39
3. Authenticatorがユーザ確認
AuthenticatorはChallengeや
RelyingPartyの情報を元にユーザを
確認しAssertionを作成する。
40
What is Assertion?
RPが?意するchallengeを含んだ情報をAuthenticatorの秘密鍵に署名
RPが登録されている公開鍵を使ってその署名(assertion signature)の有
効性を検証することで、Authenticatorの有効性を検証する仕組み
41
4. Authenticatorが認証情報を返却
Authenticatorが③で?成された
assertion signature,
clientDataHash,
authenticatorDataをブラウザに返
す。
42
5. 認証情報などをRPに送信
登録時と同様に、Javascriptは
Authenticatorから受信したパラ
メータに加え、rawId、id、type,
clienetDataJSON などのパラメー
タを含め、AssertionResponse エ
ンドポイントに送信する。
43
(Request Sample)
? URL: /assertion/result
? Method: POST
? URL Params: None
? Body: application/json encoded ServerPublicKeyCredential with r
esponse field set to ServerAuthenticatorAssertionResponse
44
(Sample Call)
45
6. RPは署名検証し、認証完了。
RPはAssertionを検証し、検証が成
功したら認証成功とする。セッショ
ンを発?しセッションIDをCookie
にセットする等、?般的な認証サー
バと同じように処理を継続する。
Assertion検証?順
https://www.w3.org/TR/webaut
hn/#verifying-assertion
46
(Success Response)
? HTTP Status Code: 200 OK
? Body: application/json encoded ServerResponse
47
(Error Response Sample)
? HTTP Status Code: 4xx or 5xx
? Body: application/json encoded ServerResponse
48
Demo Site
? Microsoft: https://webauthntest.azurewebsites.net
? FIDO: https://webauthn.org/
? APPSPOT: https://webauthndemo.appspot.com/
49
References
? FIDO Authentication: https://fidoalliance.org/fido-authentication/
? FIDO2 Spec: https://fidoalliance.org/fido2/
? How to FIDO https://github.com/fido-alliance/how-to-fido

More Related Content

What's hot (20)

PDF
Share point における id管理と認証?認可
Naohiro Fujie
?
PPTX
AAD B2C使ってみた
勇人 坂本
?
PDF
惭颈肠谤辞蝉辞蹿迟の顿滨顿/痴颁実装概要
Naohiro Fujie
?
PDF
Fido self issued
HiroshiUeno15
?
PDF
Azure AD B2CにIdPを色々と繋いでみる
Naohiro Fujie
?
PDF
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
junichi anno
?
PDF
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation Credentials
Naohiro Fujie
?
PDF
プロトコルから见る滨顿连携
Naohiro Fujie
?
PPTX
翱础耻迟丑认証について
Yoshifumi Sato
?
PPTX
碍别测肠濒辞补办で础笔滨认可に入门する
Hitachi, Ltd. OSS Solution Center.
?
PDF
FIDO in Windows10
Naohiro Fujie
?
PDF
[SC15] Windows Hello で実現するハイブリッド 生体認証
de:code 2017
?
PDF
[Japan Tech summit 2017] SEC 007
Microsoft Tech Summit 2017
?
PPTX
アイデンティティ管理の基礎~Fim adfsアーキテクチャ
Naohiro Fujie
?
PPTX
Microsoft Identity Technology / Kantara Initiative Seminar 2011
Naohiro Fujie
?
PDF
Idcon11 implicit demo
Ryo Ito
?
PDF
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
Yoko TAMADA
?
PPTX
CSS2020 Client Policies on keycloak
Hitachi, Ltd. OSS Solution Center.
?
PPTX
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
Hitachi, Ltd. OSS Solution Center.
?
Share point における id管理と認証?認可
Naohiro Fujie
?
AAD B2C使ってみた
勇人 坂本
?
惭颈肠谤辞蝉辞蹿迟の顿滨顿/痴颁実装概要
Naohiro Fujie
?
Fido self issued
HiroshiUeno15
?
Azure AD B2CにIdPを色々と繋いでみる
Naohiro Fujie
?
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
junichi anno
?
Microsoftの認証システムの歴史と 過渡期におけるWAPの活用 +Next Generation Credentials
Naohiro Fujie
?
プロトコルから见る滨顿连携
Naohiro Fujie
?
翱础耻迟丑认証について
Yoshifumi Sato
?
碍别测肠濒辞补办で础笔滨认可に入门する
Hitachi, Ltd. OSS Solution Center.
?
FIDO in Windows10
Naohiro Fujie
?
[SC15] Windows Hello で実現するハイブリッド 生体認証
de:code 2017
?
[Japan Tech summit 2017] SEC 007
Microsoft Tech Summit 2017
?
アイデンティティ管理の基礎~Fim adfsアーキテクチャ
Naohiro Fujie
?
Microsoft Identity Technology / Kantara Initiative Seminar 2011
Naohiro Fujie
?
Idcon11 implicit demo
Ryo Ito
?
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
Yoko TAMADA
?
CSS2020 Client Policies on keycloak
Hitachi, Ltd. OSS Solution Center.
?
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
Hitachi, Ltd. OSS Solution Center.
?

Similar to How FIDO Works (20)

PDF
Authentication and Authorization of The Latest Keycloak
Hitachi, Ltd. OSS Solution Center.
?
PDF
数々の実绩:迅速な贵滨顿翱认証の展开をサポート
FIDO Alliance
?
PDF
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ふ? --
Jun Kurihara
?
PPTX
Idcon25 FIDO2 の概要と YubiKey の実装
Haniyama Wataru
?
PDF
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
Tatsuo Kudo
?
PDF
EV_iot-deepdive-awAWS IoT for Professionals Series .pdf
devpcb1
?
PDF
AWS IoTにおけるデバイスへの認証情報のプロビジョニング
Amazon Web Services Japan
?
PDF
OAuth2.0によるWeb APIの保護
Naohiro Fujie
?
PDF
FIDO2 ~ パスワードのいらない世界へ
FIDO Alliance
?
PDF
認証の課題とID連携の実装 ?ハンズオン?
Masaru Kurahayashi
?
PDF
OCHaCafe#5 - 避けては通れない!認証?認可
オラクルエンジニア通信
?
PDF
Nii open forum_053019_dr.gomi
FIDO Alliance
?
PDF
Whats new in_a360-19-20_jp
ssuser033561
?
PPTX
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済
junichi anno
?
PDF
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
Tatsuo Kudo
?
PDF
デバイスの運用で使える AWS IoTサービスの紹介
Amazon Web Services Japan
?
PPTX
YJTC18 D-1 安心安全な次世代認証を目指して ?社会に溶け込む認証技術?
驰补丑辞辞!デベロッパーネットワーク
?
PDF
React(TypeScript) + Go + Auth0 で実現する管理画面
KentaEndoh
?
PPTX
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
?
PDF
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Tatsuo Kudo
?
Authentication and Authorization of The Latest Keycloak
Hitachi, Ltd. OSS Solution Center.
?
数々の実绩:迅速な贵滨顿翱认証の展开をサポート
FIDO Alliance
?
Modern Authentication -- FIDO2 Web Authentication (WebAuthn) を学ふ? --
Jun Kurihara
?
Idcon25 FIDO2 の概要と YubiKey の実装
Haniyama Wataru
?
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
Tatsuo Kudo
?
EV_iot-deepdive-awAWS IoT for Professionals Series .pdf
devpcb1
?
AWS IoTにおけるデバイスへの認証情報のプロビジョニング
Amazon Web Services Japan
?
OAuth2.0によるWeb APIの保護
Naohiro Fujie
?
FIDO2 ~ パスワードのいらない世界へ
FIDO Alliance
?
認証の課題とID連携の実装 ?ハンズオン?
Masaru Kurahayashi
?
OCHaCafe#5 - 避けては通れない!認証?認可
オラクルエンジニア通信
?
Nii open forum_053019_dr.gomi
FIDO Alliance
?
Whats new in_a360-19-20_jp
ssuser033561
?
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済
junichi anno
?
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
Tatsuo Kudo
?
デバイスの運用で使える AWS IoTサービスの紹介
Amazon Web Services Japan
?
YJTC18 D-1 安心安全な次世代認証を目指して ?社会に溶け込む認証技術?
驰补丑辞辞!デベロッパーネットワーク
?
React(TypeScript) + Go + Auth0 で実現する管理画面
KentaEndoh
?
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
?
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Tatsuo Kudo
?
Ad

Recently uploaded (13)

PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
PDF
渔船に搭载されている电子装备と渔法について冲痴搁颁海洋学研究会冲海の尝罢会発表资料
Yuuitirou528 default
?
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
PDF
第3回デジタル理学疗法研究会学术大会シンポジウム「デジタル理学疗法の组织活用:教育?管理?研究を繋ぐ新たな地平」の讲演资料.
Matsushita Laboratory
?
PDF
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
?
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
?
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
?
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
?
PDF
第3回テ?シ?タル理学疗法学会のシンポジウム「デジタル理学疗法の组织活用:教育?管理?研究を繋ぐ新たな地平」での话题提供
Matsushita Laboratory
?
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
?
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
渔船に搭载されている电子装备と渔法について冲痴搁颁海洋学研究会冲海の尝罢会発表资料
Yuuitirou528 default
?
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
第3回デジタル理学疗法研究会学术大会シンポジウム「デジタル理学疗法の组织活用:教育?管理?研究を繋ぐ新たな地平」の讲演资料.
Matsushita Laboratory
?
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
?
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
?
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
?
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
?
第3回テ?シ?タル理学疗法学会のシンポジウム「デジタル理学疗法の组织活用:教育?管理?研究を繋ぐ新たな地平」での话题提供
Matsushita Laboratory
?
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
?
Ad

How FIDO Works