GitHubの2要素認証がWebAuthnに対応したらしいので触ってみた

どーも、ritouです。

世の中みんながこの話題に夢中かと思います(大げさ)。

github.blog

GitHubは以前から2要素認証の方式としてセキュリティキーをサポートしてきました。2015年ですって。

github.blog

今回、その実装がWebAuthnに変更になったということです。

forest.watch.impress.co.jp

将来的には“Windows Hello”や“Touch ID”などもサポートされるという。

Windows HelloやmacOSChromeなどを用いたTouch IDが利用可能になるのは、将来の話ではありません。もう対応しています。

www.publickey1.jp

この記事はパスワードレスを実現したかのような書きっぷり。

GitHubの発表では、パスワードレスとしての利用のことが書かれています。

In addition, WebAuthn can make it possible to support login using your device as a “single-factor” security key with biometric authentication instead of a password. Although we’re not ready to announce further plans, we’ll continue to pursue ways to make secure authentication as easy as possible for everyone on GitHub.

パスワードレス を匂わせていますが、最初にも書いた通り、今回のは2要素認証のセキュリティキーの扱いをWebAuthnにしたっていうお話です。

説明は以上にして、あとは適当にスクリーンショットを見ていってください。

設定

Settings -> Security からやっていきます。

f:id:ritou:20190822165903p:plain

早速セキュリティキーの設定に進むとパスワード確認画面となります。

f:id:ritou:20190822170100p:plain

あれ?GitHubのパスワード確認にセキュリティキーって使えたっけ?今回この辺りも変更になったのかもしれません。 とりあえず進むと、セキュリティキー追加のフローに入ります。

f:id:ritou:20190822171005p:plain

WebAuthnの登録フローを使ってセキュリティキーを登録する場合、ユーザーに名前をつけさせるのが一般的になっています。 今まで見てきた実装では、処理が完了した時点で名前を入れさせるやり方でしたが、GitHubの場合は先に入力させるようです。

f:id:ritou:20190822170255p:plain

名前を入れて続けるとダイアログが。

f:id:ritou:20190822171730p:plain

f:id:ritou:20190822171806p:plain

YubiKeyとかの方と両方試すと

  • Cross-Platform / PlatformAuthenticator 両方に対応
  • UserVerification : 必須じゃない
  • ResidentKey : 使わない
  • Attestation : 要求してこない

というあたりは雰囲気でわかります。

設定が完了したので、ログアウトして認証に利用します。

f:id:ritou:20190822172840p:plain

f:id:ritou:20190822172855p:plain

f:id:ritou:20190822172914p:plain

Androidでも使えそうじゃん。ということで、モバイル用の画面から設定したいところですが、よくわからん。

Chromeから無理やりPC用のURL使って設定します。

f:id:ritou:20190822173047j:plain

f:id:ritou:20190822173118j:plain

f:id:ritou:20190822173132j:plain

f:id:ritou:20190822173152j:plain

で、ログアウトしてFIrefoxでやり直してみましょう。

f:id:ritou:20190822174032j:plain

f:id:ritou:20190822174046j:plain

f:id:ritou:20190822174101j:plain

f:id:ritou:20190822174117j:plain

できました。

GitHubは今回、WebAuthn対応したおかげで、

  • 今までのFIDO2/FIDO U2F対応のセキュリティキー(Cross-Platform Authenticator)だけではなく、Windows Hello / Android / macOS(w/ Chrome)といったOSが提供する機能(Platform Authenticator)を利用できるようになった
  • ブラウザもChromeのみだった(?)ものからWebAuthn対応のブラウザ全体へとサポート範囲が広がった
  • 今後対応環境が増えても自動的に追従可能

といったメリットを享受できます。

今回、セキュリティキーのフローも試しましたが省略します。

これをみた誰かが、手元にある自慢のTitanを使ったフローでも紹介してくだされば良いのではないかと思います。

Titan使った記事がでたー!!!

medium.com

そういえば、最初の方でパスワード確認のフォームが変わったかな?みたいなことを書きました。

今まではパスワード確認しかなかった部分にセキュリティキーを使うとあるので、押してみたところWebAuthnのフローになりました。

f:id:ritou:20190823034401p:plain

f:id:ritou:20190823034414p:plain

これは結構便利だと思います。

来週のBuildersconの準備をしなくてはいけないので、これぐらいにしておきます。 今回のGitHubの例も紹介する予定です。

builderscon.io

ではまた。