-
Notifications
You must be signed in to change notification settings - Fork 0
MS_FIDOAuthenticator
FIDO 準拠のデバイスやソフトウエアは、= Authenticator とも言う。
-
スマートフォンや PC であれば、セキュア環境(TPM(
MS_TPM.md))で動作する
(プラットフォーム認証器)。 -
外部接続であれば、以下のような接続インタフェースを使用する(ローミング認証器)。
- USB
- NFC
- Bluetooth Low Energy
FIDO 認証器では、自己の正統性を認証サーバに表明できる
各種のアテステーション(Attestation、端末/認証器の証明)機能が仕様化されている。
-
脆弱性の発覚などで信用性が低下したデバイスに関する情報を公開する。
- 脆弱性の発覚などで信用性が低下した認証器やデバイスの情報を提供。
- この情報を元に、どの認証器・デバイスからの認証を受け入れるかは、
サービス事業者の自己判断となる。
-
データは JWT 形式で提供されている(ES256 の JWT であるもよう)。
- 工場出荷時に埋め込まれる Secure Storage にて安全に保管される。
- 登録フェーズにおいて以下の様に利用する。
- KRD(Key Registration Data)に対して Authenticator の Attestation 秘密鍵で
デジタル署名する。 - FIDO Alliance における認定取得製品であることをサーバ側で確認できる
(認定取得製品でなければ Attestation 秘密鍵を所有していないため)。
- KRD(Key Registration Data)に対して Authenticator の Attestation 秘密鍵で
Metadata サービスと呼ばれる方法で FIDO Alliance から各 FIDO Server に配信される。
補足: Attestation は「この認証器はどの製品か」を示すもので、 「誰であるか」を示す認証(Assertion)とは目的が異なる (FIDO2 の補足参照)。
注意点として、Attestation 証明書が個体ごとに違うと追跡可能になるため、 仕様上は同一機種で最低 10 万台が同じ証明書を共有する (batch attestation)ことが求められている。
現状では、Attestation を要求しない設計が主流である。
- プラットフォーム認証器(Windows Hello、Apple)は プライバシー上の理由で
noneを返すことが多い- パスキーの普及により、機種の検証にこだわる意味が薄れた
金融・行政など「認定済みの認証器だけを受け入れたい」要件がある場合にのみ、 Metadata Service(MDS3)と組み合わせて検証する。
- 認証器をタッチするなどして存在を確認する。
- その際、認証情報は読み取られない。
認証器と共にユーザによって実行される物理的な対話。
| 手段 | 内容 |
|---|---|
| PIN コード | TPM(MS_TPM.md)+ PIN |
| タッチ・ジェスチャー | 認証器にタッチするだけ(存在確認) |
| 生体認証 | 指紋/静脈/虹彩/顔(生体認証) |
補足(重要): UP と UV は別物であり、混同すると 「2 要素のつもりが 1 要素だった」ということが起きる。
フラグ 意味 要素として UP 人がそこに居て操作した(タッチ) 本人確認にはならない UV PIN や生体で本人を確認した 所持+知識 or 生体=多要素 |
パスワードレスにするなら、RP 側で
userVerification: "required"を指定し、 検証時に UV フラグが立っていることを必ず確認する。 LoA(Level of Assurance) の AAL2 以上を狙う場合の要件でもある。なお、PIN は認証器のローカルでのみ検証され、ネットワークに流れない。 ここが「4 桁 PIN なのに安全なのか」という疑問への答えで、 総当たりは認証器側の試行回数制限(既定 8 回でロック)で防がれる。
Windows Hello(MS_WindowsHello.md)
- Windows 10 では FIDO に準拠した「Windows Hello」を搭載。
- 2016 年 7 月の Windows 10 Anniversary Update では、
ブラウザーの Microsoft Edge から FIDO 対応サービスへの
ログイン方法に生体認証が利用できるようになった。
補足(最新化): 現在は主要ブラウザ・OS が WebAuthn に対応しており、Edge に限らない。 パスキーにより、スマートフォンを 別 PC のローミング認証器として使う (QR コード + BLE によるハイブリッド トランスポート)ことも可能になった。
Tags: IT国際標準, 認証基盤, FIDO
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。