Windows HelloのPIN入力によるFIDO2認証はEdgeのInPrivateブラウザ(シークレットモード)では使えないかもしれない

Windows HelloのPIN入力によるFIDO2認証はEdgeのInPrivateブラウザ(シークレットモード)では使えないかもしれない。 「かもしれない」というあやふやな書き方をしたのは、現状Microsoftなどの公式情報を探せていないから。また、顔認証や指紋認証については設定していないので不明である。

Edgeの検証結果と他のブラウザの対応状況も確認したのでメモしておく。 検証ではWebAuthn.ioというサイトを利用した。

事前にWindows Helloの設定をしておく必要があるが、ここでは説明しない。 下記にMS公式情報を載せておくので、実施するならば参考に設定してほしい。

Windows Hello の概要とセットアップ

検証

環境

  • OS: Windows10 バージョン20H2
  • Edge: 96.0.1054.43
  • GoogleChrome: 96.0.4664.45
  • FireFox: 94.0.2

Edgeの通常モード

最初にEdgeの通常モードでWindows Helloが利用できる様子をスクショで紹介しておく。

  1. WebAuthn.ioをEdgeで開く。

  1. ユーザ名をテキトーに入力し、Registerボタンを押す。

  1. Window HelloからPIN入力を求めるポップアップが表示される。PINを入力するとポップアップが閉じる。

  1. 少し待つと登録完了を伝える吹き出しが表示される。Loginボタンを押せば、ログインのために認証を求めてくる(未紹介)。

Edgeの通常モードではWindows Helloが呼び出され、PINを入力することでユーザ登録とログインができる。

EdgeのInPrivateブラウザ(シークレットモード)

  1. WebAuthn.ioをEdgeのInPrivateブラウザで開く。

  1. ユーザ名をテキトーに入力し、Registerボタンを押す。

  1. Window Helloからセキュリティキーを求めるポップアップが表示される。PIN入力を求める画面は表示されない。

上述のように、EdgeのInPrivateブラウザではWindows Helloは呼び出されるもののセキュリティキーの接続を求める画面が表示される。 ちなみにこのセキュリティキー画面は、Edge通常モードでPIN入力画面でキャンセルボタンを押すことでも表示される。

Chromeのシークレットモード

スクショを撮っていないが、GoogleChromeのシークレットモードでも試した。 結果としては、Edgeと同様だった。つまり、通常モードでは最初にPIN入力を求められ、シークレットモードではセキュリティキーの接続を求める画面が表示された。

Firefoxのプライベートモード

FirefoxはEdge、Chromeとは異なる挙動をし、プラベートモードでもPIN入力を求める画面が表示された。

  1. WebAuthn.ioFirefoxのプライベートモードで開く。

  1. ユーザ名をテキトーに入力し、Registerボタンを押す。

  1. Window HelloからPIN入力を求めるポップアップが表示される。PINを入力するとポップアップが閉じる。

  1. 少し待つと登録完了を伝える吹き出しが表示される。。

結果

今回の検証結果をまとめておく(まとめる意味がある表だろうか??)。

ブラウザ モード Windows Hello PIN入力
Microsoft Edge 通常
Microsoft Edge シークレット X
Google Chrome 通常
Google Chrome シークレット X
Mozilla Firefox 通常
Mozilla Firefox シークレット
Vivaldi 通常
Vivaldi シークレット X

検証までで紹介したブラウザ以外にVivaldiを使ってみたので、追記しておく。おそらくWindowsでは上3つのブラウザが主要なはずだ。今回の検証はデスクトップPCで実行したが、例えばサーフェスになったら挙動が異なるようなことはあるかもしれない。

考察(らしきもの)

PIN入力が利用できない理由

今回の一部ブラウザのシークレットモードでの動作だが、Windows Hello自体はブラウザから呼び出されて利用できている。セキュリティキー(=認証器)であればそのままユーザ登録・ログイン認証ができるようなので、PIN入力だけが利用できない。どういった理由だろうか。

シークレットモードでは、セキュリティを高めるためにPIN入力という記憶要素だけではなく所持という要素が加わることでセキュリティが高められそうなセキュリティキーが必要なのだろうか。その場合、指紋や顔認証の扱いが気になる。所持要素を重視しているのであれば、シークレットモードでは指紋や顔認証もPIN同様に使えないことになる。

もう一つとしては、シークレットモードの目的である。Edgeのシークレットモードの説明では、

このデバイスを使用している他のユーザーは閲覧アクティビティを見ることができません

さらにChromeでも

あなたのアクティビティは、このデバイスを利用する他のユーザーには表示されません。

と説明されている。シークレットモードのブラウザを使う理由はデバイスを共有する他のユーザから情報を秘匿するためにある。ということは、デバイスにクレデンシャル情報が残ってしまうWindows Hello PIN入力はこの場合に不適切なのかもしれない。また、Windows Hello PIN入力はユーザサインインにも利用でき、わざわざシークレットモードで他のユーザから隠しているのにサインインしているユーザが知っている情報による認証は不適切ということかもしれない。この場合、顔認証や指紋認証も利用できないはずだ。

同じ動作するブラウザ、異なる動作をするブラウザ

EdgeとChromeが同じ動作をしてFirefoxが異なる動作という点も気になる。なにかMicrosoftWindows Helloに関する仕様を提示していて、Chromeはそれに従ったがFirefoxは従っていないのだろうか。 もしくは、EdgeとChromeのベースになっているChromiumにシークレットモードではPINを使えなくする実装が入っているのかもしれない。VivaldiChromiumをベースとしていること、Chromium開発にはMicrosoftも関わっていることから可能性はある。

今回のシークレットモードブラウザでのWindows Helloについてきちんとした情報ソースは得られていない。 後日わかったことがあれば、追記したいと思っているし、有識者からの情報提供もお願いしたい。