2018年10月4日木曜日

Windows 10 October 2018 UpdateのEdgeでWebAuthnを試す

こんにちは、富士榮です。

昨日は #idcon vol. 25 「fidcon 勝手に Meetup」が品川のマイクロソフトで開催されていたので、参加してきました。なんともタイミングの良い?ことに、ちょうど Edge が正式に WebAuthn に対応した、Windows 10 October 2018 Update がリリースされたタイミングと重なりました。

ローンチのアナウンス
https://blogs.windows.com/windowsexperience/2018/10/02/how-to-get-the-windows-10-october-2018-update/


ちょうど日本マイクロソフトの物江さんが Edge の WebAuthn のセッションでデモをされたりもしており、なんというタイミング?!ということで、何か持っているんだと思います。

私はセッション中に Windows Update が降ってきてついつい再起動してしまったので、イベント終了後も開きっぱなしの Macbook Air を持ったまま品川の街を歩くハメになりましたが・・・


ということで、Edge のWebAuthn を試してみましょう。
手元にあったのは、FIDO2 に対応した Yubikey Security Key(青い奴)とマウスコンピュータの指紋認証用の USB ドングルなので、この辺りを使ってみます。

右:Yubico セキュリティキー
左:マウスコンピュータ FP01

テスト用のサイトとして、https://webauthn.org/ を使います。
内容としては、

  1. ユーザとデバイスを登録する
  2. ログインする

というシンプルなモノですが、Debug Windows でプロトコルの詳細なメッセージが確認できるので非常に便利です。
ちょうど最後のセッションで @shiroica さんがお話ししてくださった各パラメータの紹介が非常に役に立ちます。


ちなみにこのテストサイトではあまり細かいパラメータが触れるわけではなく、authenticatorSelection の指定は出来ず、attestation も direct 固定となっています。
この辺りを試すには https://webauthn.io/ を使った方が良いかも知れません。
ちなみに Google の @agektmr さんの話では、Google としてはエンタープライズのシナリオを除き attestation は none がお奨めとのことです。(会社が指定した Authenticator だけを使わせたい、というようなケースですね)

1.ユーザとデバイスを登録する

Register タブで Usernameを指定して Register ボタンを押すだけです。

画面の下の部分の Advanced を開くと実際のメッセージを確認することが出来ます。

PubKeyCredParams で -7 と -257 があることから U2F と Windows Hello に対応していることがわかったり、 attestation は direct となっているあたりがわかります。

登録が正常に完了すると OK とステータスが返ってきていることもわかります。

2.ログインする

同じく Login タブを開いてユーザ名を指定、Login ボタンをクリックすると今度はログインのプロセスが実行されます。

尚、Resident-key が使える FIDO2 対応の Authenticator で同じユーザ名で複数回 Registration を行うとログイン時に一覧が出てきます。
(本来は先にユーザ名を指定しているのでキーの特定をした上でログインプロセスが走るのでアカウント選択は出ませんが、同じ名前で登録すると毎回鍵ペアが生成されてしまうみたいです。RPの作りの問題?)

Authenticator で認証します。

ちゃんと webauth.get が成功しています。


もう少し詳しく勉強しないと細かいところはよくわからないので、続きは今晩開催される WebAuthn もくもく会で!
 https://fido2-workshop.connpass.com/event/100944/