「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>FIDO]]

* 目次 [#z398faa8]
#contents

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

-FIDO 2.0は、[[FIDO 1.0>FIDO1]]の拡張ではなく、
--[[UAFとU2F>FIDO1]]を統合し、OSやブラウザといったプラットフォームのサポートに最適化する、~
プラットフォーム(ブラウザやOS)によるネイティブサポートのための仕様。
--OSやブラウザのAPIへの定義され、FIDO Clientといった中継のためのレイヤが無くなったため、~
RPアプリケーションから直接リクエストができる、見かけ上U2Fに近いシンプルな構成になった。

-また、あるサービスに登録済みの認証デバイスによるFIDO認証を通じて、~
未登録の新たな端末からサービスにログインできる機能が使えるようになる。
--(例)PC上のアプリケーション利用時の認証を、スマホで行う。
---PC-スマホ間のデバイス連携機能で、スマホを認証器として用い
---これにより、スマホに認証機能を集約させることができる。

-以下の2つ?の仕様からなる。

***Webプラットフォーム API仕様 [#aef70118]
**Webプラットフォーム API仕様 [#aef70118]
-Web API(抽象的なAPIを通じたメッセージの通信)仕様
--ブラウザでの普及を想定し、標準化団体W3Cへ、本仕様を提案
--秘密鍵を使用してクライアントや認証器などのコンテキストに関する情報に署名。

-以下の3つ?の仕様から成る。
--[[WebAPI for Accessing Credential API>#t6f74b39]]
--[[Key Attestation Format>#qea469d0]]
--[[Signature Format>#lb9cb34c]]
--[[WebAPI for Accessing Credential API>#yed618c1]]
--[[Key Attestation Format>#ad9f61cb]]
--[[Signature Format>#be72a8b1]]

***デバイス間連携仕様 [#g0465d1e]
デバイス組込みではない[[認証器>#lf855e22]]に対応するための通信プロトコルの規定。
**デバイス間連携仕様 [#g0465d1e]
-デバイス組込みではない[[認証器>FIDO#lf855e22]]に対応するための通信プロトコルの規定。

-EAP (External Authenticator Protocol)~
USB/Bluetooth/NFCトランスポートバインディングを規定
--プラットフォームと外部[[認証器>#lf855e22]]間の通信プロトコルを規定。
--プラットフォームと外部[[認証器>FIDO#lf855e22]]間の通信プロトコルを規定。
--具体的な通信路(USB/Bluetooth/NFCなど)の適用が可能。

*詳細 [#y031e0f2]

**処理シーケンス [#xa549daa]
|>|様々な外部[[認証器>#lf855e22]]||通信(FIDO2標準プロトコル・メッセージ)        |API|クライアント(FIDO2 Client)|WebAPI|通信(FIDO2標準プロトコル・メッセージ)|サーバ( FIDO2 Server)|h
|・|>|生体認証|<--->&br;EAP (External Authenticator Protocol)|JS、NativeのAPI&br;以下は同じものを指している?&br; - [[Web Authentication API]]&br; - Web API for accessing FIDO 2.0 credentials&br;(WebAPIと言っているが所謂、WebAPIではない...。)|各種ブラウザ、各種OS|各種HttpClient|<--->&br;ここの仕様は存在しない?|サービスA&br;サービスB&br;サービスC&br;...サービスX|
|&nbsp;|・|指紋|~|~|~|~|~|~|
|&nbsp;|・|静脈|~|~|~|~|~|~|
|&nbsp;|・|虹彩|~|~|~|~|~|~|
|&nbsp;|・|顔|~|~|~|~|~|~|
|・|>|その他の認証方法|~|~|~|~|~|~|
|&nbsp;|・|PINコード|~|~|~|~|~|~|
|&nbsp;|・|ジェスチャー|~|~|~|~|~|~|

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

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

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

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

**FIDOクライアント [#i438a778]
-RPアプリケーション
-ブラウザやOSなどの各種、ユーザーエージェント (User agent)を指す。
**クライアント・サーバ [#i438a778]

***認証器 [#x38ab3f9]
認証器は、Authenticatorとも言う。

-構成
--スマートフォンやPCであれば、[[セキュア環境>TPM(Trusted Platform Module)]]で動作する。

--外部接続であれば、以下のような接続インタフェースを使用する。
---USB
---NFC
---Bluetooth Low Energy

-認証方法
--生体認証
---指紋
---静脈
---虹彩
---顔

--その他
---PINコード
---ジェスチャー

***ブラウザ [#ad1c979d]
FIDO 2.0のWeb API仕様に対応したブラウザは、
***クライアント:WWW Browser [#ad1c979d]
FIDO 2.0のWeb API仕様に対応したWWW Browserは、
-指紋認証USBデバイス
-虹彩認証対応スマホ

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

**FIDOサーバー [#vbdf85b8]
-RPサーバー
-・・・
***サーバ:[[RP Server>FIDO#ra24f089]] [#nff1b46f]
[[クレームベース認証]]などを使用して連携する。

**各仕様 [#g0ff9ca3]
FIDOサーバ側のWebAPIのインターフェイス定義は発見できず(未定義?)。

***WebAPI for Accessing Credential API [#yed618c1]
どうも、[[Web Authentication API]]と同じものを指している模様。~
# WebAPI for Accessing Credential APIが、[[Web Authentication API]]に準拠?

-RPアプリケーションから利用されるAPI

-Webブラウザ用と、OSネイティブ用のAPIがある。
--Webブラウザ用 : [[Web Authentication API]]
--OSネイティブ用
---Windows : [[Windows.Security.Credentials]]
---Linux
---iOS
---Android

-登録シーケンスと、認証シーケンスに使用するAPIを定義している。
--認証器で鍵を生成する登録するAPI
--登録済みの鍵を使って認証用の署名をつくるAPI

***Key Attestation Format [#ad9f61cb]
クライアントや認証器などのコンテキストを表現するための~
アサーションや、クレデンシャルのフォーマットを定義している。
-認証器の信頼性、秘密鍵管理の信頼性を証明するための情報のデータ構造を定義
-具体的な個別の環境(TPMやAndroidなど)を利用する場合を規定(プロファイル)。

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

**FIDO準拠のデバイスやソフトウエア [#ubb4b09b]
***[[Windows Hello]] [#z896ab2b]
-Windows 10ではFIDOに準拠した「[[Windows Hello]]」を搭載

-2016年7月のWindows 10 Anniversary Updateでは、~
ブラウザーのMicrosoft EdgeからFIDO対応サービスへの~
ログイン方法に生体認証が利用できるようになった。

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

-ドコモ、iPhone/iPadの「Touch ID」を使った生体オンライン認証に対応 - ITmedia Mobile~
http://www.itmedia.co.jp/mobile/articles/1603/07/news076.html

-Touch IDによるオンライン認証の概要~
https://www.nttdocomo.co.jp/binary/pdf/info/notice/pages/160307_00.pdf

*応用 [#k9e4658f]
**FIDO認証とID連携 [#f8221dde]
ID連携により、アサーションを連携することで、他のRPでもFIDO認証をサポートできる。

**オフライン利用 [#d9044a49]
アサーションの提示でオフラインでも本人確認が可能。

*参考 [#i23e8cdd]
-News & Trend - 認証標準化団体が「FIDO 2.0」の~
Web API仕様をW3Cに提案、パスワードレス普及へ一歩:ITpro~
http://itpro.nikkeibp.co.jp/atcl/column/14/346926/112300385/
-FIDO Alliance FIDO2 Project - FIDO Alliance~
https://fidoalliance.org/fido2/

-パスワードに代わる強固なウェブ認証実現に向けた~
W3Cの「Web Authentication」 - ZDNet Japan~
https://japan.zdnet.com/article/35084511/

-パスワードレス認証技術 FIDO | NTTデータ~
http://www.nttdata.com/jp/ja/insights/trend_keyword/2015070901.html

**Yahoo! JAPAN [#k6b6893e]
***Tech Blog [#k7fbabd5]
-アイデンティティ管理とその動向 - Yahoo! JAPAN Tech Blog~
https://techblog.yahoo.co.jp/security/2014-identity/
--FIDO技術の適用による安心・安全なサービスの実現~
https://fidoalliance.org/assets/images/general/FIDOTokyoSeminar101014_gomi.pdf
-次世代認証プロトコルFIDOの動向~
https://techblog.yahoo.co.jp/security/fido-introduction/
-FIDO認証の進化とさらなる応用展開~
https://techblog.yahoo.co.jp/advent-calendar-2016/2016-fido/

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

-FIDO Alliance - FIDO Alliance~
https://fidoalliance.org/

-FIDO Alliance - Wikipedia~
https://ja.wikipedia.org/wiki/FIDO_Alliance

***セミナー [#he2983af]
-FIDO技術のさらなる広がり | FIDOアライアンス東京セミナー(2015年11月20日)~
https://fidoalliance.org/wp-content/uploads/FIDOTokyoSeminar-gomi-112015-ja.pdf

-New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -Nadalin~
https://www.slideshare.net/FIDOAlliance/new-fido-specifications-overview-fido-alliance-tokyo-seminar-nadalin

***FIDO Alliance MetaData Service [#o17588ad]
脆弱性の発覚などで信用性が低下したデバイスに関する情報。

-FIDO Alliance Metadata Service - FIDO Alliance~
https://fidoalliance.org/mds/

--The digitally signed metadata TOC document is published in Javascript Web Token (JWT) form at~
https://mds.fidoalliance.org/
>データは[[JWT]]形式で提供されている。

-以下を使用して[[JWT]]の中を確認できる。

--JSON Web Tokens - jwt.io~
https://jwt.io/

>ES256の[[JWT]]であるもよう。

**W3C [#r189df98]

***FIDO 2.0 [#qb73b166]
-Submission Request to W3C: FIDO 2.0 Platform Specifications 1.0~
https://www.w3.org/Submission/2015/02/

--FIDO 2.0: Web API for accessing FIDO 2.0 credentials
---https://www.w3.org/Submission/fido-web-api/
---https://www.w3.org/Submission/2015/SUBM-fido-web-api-20151120/

--FIDO 2.0: Key Attestation Format
---https://www.w3.org/Submission/fido-key-attestation/
---https://www.w3.org/Submission/2015/SUBM-fido-key-attestation-20151120/

--FIDO 2.0: Signature format
---https://www.w3.org/Submission/fido-signature-format/
---https://www.w3.org/Submission/2015/SUBM-fido-signature-format-20151120/

**Microsoft [#nb90fd0c]
-[[Windows Hello + Microsoft Passport]]
--[[Windows Hello]]
--[[Microsoft Passport]]
**ニュース [#d7b23633]

***2015 [#u3f2249c]
-パスワードに代わる強固なウェブ認証実現に向けた~
W3Cの「Web Authentication」 - ZDNet Japan~
https://japan.zdnet.com/article/35084511/

***2016 [#i1031e0d]
-News & Trend - 認証標準化団体が「FIDO 2.0」の~
Web API仕様をW3Cに提案、パスワードレス普及へ一歩:ITpro~
http://itpro.nikkeibp.co.jp/atcl/column/14/346926/112300385/

***2018 [#t632b76e]
-パスワードに依存しない認証「WebAuthn」をChrome/Firefox/Edgeが実装開始、~
W3Cが標準化。Webはパスワードに依存しないより安全で便利なものへ - Publickey~
http://www.publickey1.jp/blog/18/webauthnchromefirefoxedgew3cweb.html

-「パスワード不要」な未来が、もうすぐやってくる|WIRED.jp~
https://wired.jp/2018/05/18/webauthn-in-browsers/

----
Tags: [[:認証基盤]]
Tags: [[:認証基盤]], [[:FIDO]]


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