Microsoft Edge の
FIDO サポート状況
日本マイクロソフト株式会社
パートナー事業本部 パートナー技術統括本部
ISV ビジネス技術本部
テクニカルエバンジェリスト
物江 修
@osamum_MS
Microsoft と Fast IDentity Online (FIDO)
~ Fido Alliance のボードメンバー ~
•2013 年 12 月より参加
•パスワードより強力な ID 認証技術へと
移行するため
•FIDO 2.0 技術仕様の策定に参加
•Windows 10 にリファレンス実装
•Windows Hello
•Microsoft Passport
Windows Hello とは? (1/2)
•完全統合型生体認証を提供
指紋 顔
•コンパニオンデバイスによる動的ロック
Bluetooth デバイス
PIN
■ ■ ■
■ ■ ■
■ ■ ■
■
Windows Hello とは? (2/2)
•Windows 10 に標準搭載
•[スタート] > [設定] > [アカウント] > [サイン
イン オプション] で設定
Windows Passport とは?
•既存の資格情報を確認して、
パスワードを 2 要素認証 (2FA) に置き換える
+
登録済デバイス
Windows Hello
(生体認証 or PIN)
•Microsoft アカウント、Active Directory アカウント、
Microsoft Azure Active Directory (AD) アカウント、
FIDO 認証をサポートするアカウント
Microsoft Edge の FIDO サポート
•Build 2016 でアナウンス/Insider Preview に搭載
•Web Authentication (旧 FIDO 2.0 Web API) 仕様の
早期実装
•標準化前の実装
•2018 年 7 月: Edge 開発チームブログで対応表明
•Windows 10 ビルド 17723 (EdgeHTML 18)より
Web Authentication CR 版をサポート
•Windows Hello と外部 FIDO セキュリティデバイス、
U2F (Universal Second Factor)
Windows Hello による
ユーザー情報の取得
Webプラットフォームのサポート状況
•Microsoft Edge : EdgeHTML 18 からサポート
•UWP (Universal Windows Platform)アプリ:未
サポート
•PWA (Progressive Web Apps):未サポート
•Internet Explorer は未サポート
Web Authentication の実装
1. ユーザーの登録
−navigator.credentials.create メソッド
−publicKey オプション
−新しいクレデンシャルを作成するか、
既存のアカウントに関連付け
2. ユーザーの認証
−navigator.credentials.get メソッド
−クレデンシャルを使用してログイン
セキュアコンテキスト(HTTPS か localhost)で使用
Web Authentication の認証処理(1/3)
~クレデンシャル作成の準備~
1. 目的のサービスに
ログインするなどして
ユーザー ID を確認
2. クレデンシャルを作成するための
資格情報を設定
サービスへのログイン
従来の認証処理、その他
ユーザーの確認
ユーザー ID の確認
1. navigator.credentials.create メソッド実行
2. Windows Hello による情報取得
3. 公開/秘密のキーペアを作成
4. 秘密キーを TPM に格納
5. 公開キー含むattestationオブジェクトを
サーバーに送信
クレデンシャルの作成と
ユーザーの登録
公開キー
クライアントの
公開キーの保存
Web Authentication の認証処理(2/3)
~クレデンシャル作成と登録~
6. attestationオブジェクトを
検証
7. 公開キーを抽出して
将来の認証のために保管
秘密キーによる
チャレンジの署名 チャレンジ
公開キーによる
署名の検証
1. navigator.credentials. get メソッド実行
2. Windows Hello による情報取得
3. TPM/FIDO2デバイス内でチャレンジが
秘密キーで署名され assertion オブジェクトが
返る
4. assertion オブジェクトをサーバーに送信
Web Authentication の認証処理
~ユーザーの認証~
5. assertion オブジェクトの
署名を保存した
クライアントの公開キーで
検証
assertion オブジェクト
デモ :
Windows Hello を使用した認証
Windows Hello のトピック
•Windows HelloがPC上で利用可能かどうかを検出
• isUserVerifyingPlatformAuthenticatorAvailable API
•資格情報(authenticator selection パラメーター)を作成する際に
authenticatorAttachment を設定すること
•公開鍵アルゴリズムとしてRS256(alg -257)のみを
サポート
•コア Web Authentication 仕様の CR バージョンが
完全に実装
•AppID 拡張がサポート
まとめ
ready for FIDO 2.0
Windows 10 October 2018 Update
in
参考
•Dev guide - Web Authentication - Microsoft Edge
Development
•Introducing Web Authentication in Microsoft Edge
•A world without passwords: Windows Hello in
Microsoft Edge

Microsoft Edge のFIDO サポート状況

  • 1.
    Microsoft Edge の FIDOサポート状況 日本マイクロソフト株式会社 パートナー事業本部 パートナー技術統括本部 ISV ビジネス技術本部 テクニカルエバンジェリスト 物江 修 @osamum_MS
  • 2.
    Microsoft と FastIDentity Online (FIDO) ~ Fido Alliance のボードメンバー ~ •2013 年 12 月より参加 •パスワードより強力な ID 認証技術へと 移行するため •FIDO 2.0 技術仕様の策定に参加 •Windows 10 にリファレンス実装 •Windows Hello •Microsoft Passport
  • 3.
    Windows Hello とは?(1/2) •完全統合型生体認証を提供 指紋 顔 •コンパニオンデバイスによる動的ロック Bluetooth デバイス PIN ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
  • 4.
    Windows Hello とは?(2/2) •Windows 10 に標準搭載 •[スタート] > [設定] > [アカウント] > [サイン イン オプション] で設定
  • 5.
    Windows Passport とは? •既存の資格情報を確認して、 パスワードを2 要素認証 (2FA) に置き換える + 登録済デバイス Windows Hello (生体認証 or PIN) •Microsoft アカウント、Active Directory アカウント、 Microsoft Azure Active Directory (AD) アカウント、 FIDO 認証をサポートするアカウント
  • 6.
    Microsoft Edge のFIDO サポート •Build 2016 でアナウンス/Insider Preview に搭載 •Web Authentication (旧 FIDO 2.0 Web API) 仕様の 早期実装 •標準化前の実装 •2018 年 7 月: Edge 開発チームブログで対応表明 •Windows 10 ビルド 17723 (EdgeHTML 18)より Web Authentication CR 版をサポート •Windows Hello と外部 FIDO セキュリティデバイス、 U2F (Universal Second Factor)
  • 7.
  • 8.
    Webプラットフォームのサポート状況 •Microsoft Edge :EdgeHTML 18 からサポート •UWP (Universal Windows Platform)アプリ:未 サポート •PWA (Progressive Web Apps):未サポート •Internet Explorer は未サポート
  • 9.
    Web Authentication の実装 1.ユーザーの登録 −navigator.credentials.create メソッド −publicKey オプション −新しいクレデンシャルを作成するか、 既存のアカウントに関連付け 2. ユーザーの認証 −navigator.credentials.get メソッド −クレデンシャルを使用してログイン セキュアコンテキスト(HTTPS か localhost)で使用
  • 10.
    Web Authentication の認証処理(1/3) ~クレデンシャル作成の準備~ 1.目的のサービスに ログインするなどして ユーザー ID を確認 2. クレデンシャルを作成するための 資格情報を設定 サービスへのログイン 従来の認証処理、その他 ユーザーの確認 ユーザー ID の確認
  • 11.
    1. navigator.credentials.create メソッド実行 2.Windows Hello による情報取得 3. 公開/秘密のキーペアを作成 4. 秘密キーを TPM に格納 5. 公開キー含むattestationオブジェクトを サーバーに送信 クレデンシャルの作成と ユーザーの登録 公開キー クライアントの 公開キーの保存 Web Authentication の認証処理(2/3) ~クレデンシャル作成と登録~ 6. attestationオブジェクトを 検証 7. 公開キーを抽出して 将来の認証のために保管
  • 12.
    秘密キーによる チャレンジの署名 チャレンジ 公開キーによる 署名の検証 1. navigator.credentials.get メソッド実行 2. Windows Hello による情報取得 3. TPM/FIDO2デバイス内でチャレンジが 秘密キーで署名され assertion オブジェクトが 返る 4. assertion オブジェクトをサーバーに送信 Web Authentication の認証処理 ~ユーザーの認証~ 5. assertion オブジェクトの 署名を保存した クライアントの公開キーで 検証 assertion オブジェクト
  • 13.
    デモ : Windows Helloを使用した認証
  • 14.
    Windows Hello のトピック •WindowsHelloがPC上で利用可能かどうかを検出 • isUserVerifyingPlatformAuthenticatorAvailable API •資格情報(authenticator selection パラメーター)を作成する際に authenticatorAttachment を設定すること •公開鍵アルゴリズムとしてRS256(alg -257)のみを サポート •コア Web Authentication 仕様の CR バージョンが 完全に実装 •AppID 拡張がサポート
  • 15.
    まとめ ready for FIDO2.0 Windows 10 October 2018 Update in
  • 16.
    参考 •Dev guide -Web Authentication - Microsoft Edge Development •Introducing Web Authentication in Microsoft Edge •A world without passwords: Windows Hello in Microsoft Edge