先日(2023/06/22)、マイクロソフトがWindows11のInsider Preview(Devチャンネル)でパスキー機能の実装を公開しました。
今回は、Windows上でパスキー機能がどのように実装されたのかを見ていこうかと思います。少々技術的な内容も含まれますので、わかりづらいかもしれませんがご了承ください。
Windows11のInsider Preview版のインストール方法については割愛します。Insider Previewにはチャンネルが複数(Dev、Beta等)ありますが、今回パスキーの機能が追加されているのはDevチャンネルになります。
あくまで実験的なビルドのため、壊れても問題ない環境を使うようにして、普段使用しているPCなどには導入しない事をお勧めします。
なお、私の環境でDevチャンネルへの変更が終わった直後はパスキー関連の実装が見当たらず、ハードウェアの条件などが満たされていない、などの理由があるのではないか、と試行錯誤していました。手がかりが見つからずに数日経ってから、別の用事でマシンを再起動したところ、ひょっこり実装されていました。気長に待つ事をお勧めします。
ここからは、最初に提示したWindows Insider Blogの情報を引用しながら実験を進めていきます。実験には以前も利用した「WebAuthn.io」を利用します。
「WebAuthn.io」
では、Windows Insider Blogを読み進めていきましょう。
■パスキーの登録・使用
Enroll and use passkey to sign into apps and websites
直訳すると、「アプリやウェブサイトへのサインインにパスキーを登録・使用する」となります。さも、新しい事が出来るようになりました、という風に書いておられますが、実はこの事自体は現行のWindows11、更にはWindows10でも利用可能でした。以前のブログ(パスキー(Passkeys)ってなんだろう?(前編))でも書いた通り、広い意味での「パスキー」という言葉は既存の技術である「WebAuthn」の事を指していて、それ自体は今までのWindowsでも実装されています。改めて「うちもパスキーやっていますよ」という意味合いでこう言っているのではないかとも思われます。
ただ、この項目の中で、今までのWindowsでは実装されていなかった部分についての記述も存在します。それが以下の点です。
Sign in using passkeys saved on your phone
直訳すると、「携帯電話に保存されたパスキーを使ってサインインする」となり、これは以前のブログで紹介した「Hybrid認証」の事となります。これもまた以前のブログの余談で紹介した通り、Google Chromeでは既に実装されていたものであり、Chromeのブラウザエンジン(Chromium)を用いているEdgeでも実装されていたものとなります。ですが、今回この部分がブラウザではなくOSの方に実装された、というのがこの項目内での新しい部分となります。
OSにパスキーが実装される、というのがどういう事かわかりづらい方もおられるかと思います。Windowsには「Windows Hello」と呼ばれる仕組みがあり、Windowsのログオン部分やWEBでの認証など、様々な認証をこの仕組みで包括的に取り扱っています。今回Hybrid認証が実装されたのは、このWindows Helloの部分となります。Windows HelloにHybrid認証が実装される事で、WEBの認証の他、Windows Helloを利用したアプリケーションでもHybrid認証が使えるようになる、という点が技術的には重要なポイントではないかと思われます。
WEBでの画面の変化を説明しようと思いますが、そのためにもう一つ説明が必要となります。Windows Insider Blogのちょっと先にある「Special Instructions」の部分の説明をさせてください。
On Microsoft Edge or Google Chrome, if you see the browser’s passkey UI, choose “Windows Hello or external security key” to get the Windows native experience. Try Google Chrome Canary for the latest experience there. As Microsoft Edge is Chromium-based, experiences in Chrome Canary will roll up into Microsoft Edge as well over time.
ざっくりと言うと、「ブラウザのパスキーUI(*)が表示されたら『Windows Hello~』を選んでね、最新のUIを見たければChromeのCanaryビルドを試してね、いずれEdgeもChromeのCanaryと同じ感じになるよ」という意味になります。「ブラウザのパスキーUI」とは、今までWebAuthnを使う時に見えていたこの画面の事です。
(*)UI:User Interface。ユーザーとのやり取りをする仕組みの事ですが、アプリケーションの場合は画面の表示部品、見た目、操作方法、操作性などを指す事が多いです。
画像の中に注釈を書きましたが、WindowsのChromeの場合、「Windows Hello~」をクリックした時にWindows Helloを呼び出し、Hybrid認証の方はブラウザが実装しているHybrid認証画面を表示していました。これまでWindows HelloにはHybrid認証が実装されていませんでしたので、そこだけはブラウザ側のプログラムが担当する、という形です。そして、この選択画面はブラウザの方に実装されているため、Insider Previewを導入しても変化しません。最新のUIを試すためにChromeのCanaryビルドを試す必要がある、というのは、この選択画面をスキップして直接Windows Helloを呼び出すために必要な事だと思われます。
|
画面の動きとしては以前はこのような形で、あまりユーザーに優しくないUIでした。
Windows Hello認証かHybrid認証かを選ぶ。(Hybrid認証の場合はそのままブラウザのHybrid認証画面へ)
Windows Hello認証の場合、認証器の種類(PIN・指紋・顔・セキュリティキー)を選ぶ。
これが、最新のWindows11 Insider Preview版とChrome Canaryだと以下のようになります。
Windows Helloの内部認証器(PIN)の画面が出て、その他のデバイスの認証は「Use another device」という項目になっています。実験環境では指紋や顔認証のデバイスがないのでこのような画面になっていますが、それらがあった場合は恐らくこの画面に表示されるかと思われます。「Use another device」をクリックすると次のような画面に遷移します。
「KYV46」は私のスマートフォンの機種名で、既に一度Hybrid認証で接続した端末です。次の「iPhone~」の項目がQRコードを用いたHybrid認証、「Security key」はFIDOデバイスによる認証ですね。最後の「This Windows device」は最初の画面に戻るようです。これらの状況から、恐らく最初の画面ではWindows Helloの内部認証器、次の画面でHybrid認証やFIDOセキュリティキーを使う事が出来る、という形なのではないかと思われます。なお、最初の画面(内部認証器)と次の画面(外部認証器)については、最後に利用した方を覚えていて、次にWindows Helloの画面が開く際は、前回使用した画面の方が開くようになっているようです。
こうして見ていくと、技術者視点ではWindows HelloにHybrid認証が組み込まれた、という内容ですが、利用者目線で見るとWindows上でのパスキー認証のUIが整理された、という点が大きいのではないかと思います。
■パスキーの管理
続いて、Windows Insider Blogの以下の部分を見ていきます。
Manage passkeys saved to your Windows device
ざっくり訳すと「Windowsデバイスに保存されたパスキーの管理」となります。iOSやAndroidでも新しいバージョンでパスキーの管理が出来るようになってきていますが、Windowsでは今までそれに当たるものが存在せず、パスキーは内部的に保存されるだけで確認・削除などは出来ませんでした。それらの確認と削除を行う画面が実装されたようです。
Windowsの設定画面、「アカウント」の中に「Passkey settings」という項目が追加されています。
設定画面は比較的シンプルで、検索ボックスと登録されているパスキーの一覧表示となっています。パスキーの各項目はドメイン名とユーザー名となっており、それ以上の情報は特に存在しないようです。登録日時や最終利用日時などがあればありがたいな、と思います。
項目右側の「・・・」をクリックすると「Delete Passkey」という項目だけ表示されます。パスワードなどと違って書き換えたりするものではないですのでシンプルですが、メニューが開く形式になっているという事は今後項目が増えるのかもしれません。
削除しようとすると、「二度とサインイン出来なくなりますよ」という警告文が表示されます。
更に削除しようとすると、ログオンしているWindowsアカウントのパスワード入力を求められます。なお、「その他」からPINも選択出来ましたので、恐らくはWindows Helloの指紋・顔認証も可能なのではないかと思われます。
こちらの設定画面は、出来る事はこのくらいです。まだInsider Preview版ですので、フィードバックなどで出来る事が増える可能性もあるかと思われます。
■マルチデバイスFIDOクレデンシャル(*)について
以前のブログ(パスキー(Passkeys)ってなんだろう?(後編))で、「狭い意味での」パスキー、マルチデバイスFIDOクレデンシャル(MDC)(*)、という物についての解説も行いました。今のところ、Windows Insider Blogの内容にはMDCの実装の記述が無く、またここまでの画面でも「this device」という表現が多く見受けられたことから、現時点ではMDCの実装は行われていないように思われます。もっとも、AppleやGoogleと同様に、マイクロソフトにもマイクロソフトアカウントというものがありますので、今後そのアカウントを使ったMDCも実装されるのかもしれません。今後どのようにしていくのか、また情報がありましたらブログなどで共有したいと思います。
(*)現在、マルチデバイスFIDOクレデンシャルは「synced passkeys」という呼称に統一する方針になっております。また、デバイス上のクレデンシャルも同様に「device-bound passkeys」という呼称に統一されます。以降、ブログではこれらの統一された呼称を用いていきます。
■まとめ
今回は、Windowsのパスキー実装のプレビュー版についてお送りさせていただきました。まだInsider PreviewのDevチャンネルという事で、実際の製品ビルドへの組み込みはもう少し掛かるかと思われますが、ようやく三大OSベンダーのパスキー実装が出揃ってきた感があります。サービス提供者側のパスキー対応も進んでいくように、弊社としても普及に貢献できればと思います。
自社サービスにパスキー認証を組み込みたい、というサービス提供者様向けに、弊社ではYubiOn FIDO2 Serverというサービスを提供しております。もし関心がございましたら、是非一度お問い合わせください。
■参考リンク
[実験用サイト]
WebAuthn.io
[マイクロソフト公開情報]
Announcing Windows 11 Insider Preview Build 23486 | Windows Insider Blog
[ソフト技研リンク]
YubiOn FIDO2 Server
2023/07/07 マルチデバイスFIDOクレデンシャルの項に、「synced passkeys」「device-bound passkeys」への用語統一の情報を追加