2024年2月20日火曜日

さまざまな認証器でパスキー登録APIの返却値を確認する

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

OpenID Providerをパスキー対応にするためにパスキーの実装をしているわけですが、登録時のnavigator.credentials.createのAPIのレスポンスを各種認証器で確認してみました。


写真)どんどん増えていく認証器たち


色々と解せない点(黄色で色付けしたセル)も出てきているのですが、実際にパスキーの実装をする際は色々なデバイス・ブラウザ・認証器の組み合わせで試験をしないといけないのでこういうチェックはしないといけないと思います。

利用
デバイス
ブラウザ
認証器
ユーザ認証
レスポンス
TransportUPUVBEBSATED
Mac
Safari
内蔵Touch ID指紋Internal, hybrid111110
Yubikey USB-C/NFCPINnfc, usb110010
Yubikey USB-C/LightningPINusb110010
Yubikey USB-A/NFC
(PIN未設定)
-userVerificationをrequiredにしているのにPIN設定が求められず、登録できてしまう。ただしUVは0となる
eWBM GoldenGate USB-CPINusb110010
iPhoneFaceIDInternal, hybrid111110
Android指紋Internal, hybrid111110
Chrome
内蔵Touch ID指紋Internal, hybrid111110
Yubikey USB-C/NFCPINnfc, usb110010
Yubikey USB-C/LightningPINusb110010
Yubikey USB-A/NFC
(PIN未設定)
-userVerificationをdiscouragedにしてもPIN設定が求められる
eWBM GoldenGate USB-CPINoperation not allowed
iPhoneFaceIDInternal, hybrid111110
Android指紋Internal, hybrid111110
Firefox
内蔵Touch ID指紋internal111110
Yubikey USB-C/NFCPINnull110010
Yubikey USB-C/LightningPINnull110010
Yubikey USB-A/NFC
(PIN未設定)
-userVerificationをrequiredにしているのにPIN設定が求められず、登録できてしまう。ただしUVは0となる
eWBM GoldenGate USB-CPINnull110010
iPhoneFaceIDinternal111110
Android指紋internal111110
iPhone
Safari
FaceIDFaceIDInternal, hybrid111110
Yubikey USB-C/NFCPINnfc, usb110010
Yubikey USB-A/NFC
(PIN未設定)
-userVerificationをrequiredにしているのにPIN設定が求められず、登録できてしまう。ただしUVは0となる
Authntrend AT-Key/NFC指紋nfc110010
Android指紋Internal, hybrid111110
Chrome
FaceIDFaceIDInternal, hybrid111110
Yubikey USB-C/NFCPINnfc, usb110010
Yubikey USB-A/NFC
(PIN未設定)
-userVerificationをrequiredにしているのにPIN設定が求められず、登録できてしまう。ただしUVは0となる
Authntrend AT-Key/NFC指紋nfc110010
Android指紋Internal, hybrid111110
Android
Chrome
OSアンロック指紋Internal, hybrid111110
Yubikey USB-C/NFCPINble, hybrid, internal, nfc, usb110010
Yubikey USB-C/LightningPINble, hybrid, internal, nfc, usb110010
Yubikey USB-A/NFC
(PIN未設定)
-userVerificationをrequiredにするとPINが求められ、discouragedにするとPIN設定が求められず、UVが0で登録される
eWBM GoldenGate USB-CPINble, hybrid, internal, nfc, usb110010


ポイントとしては、

  • Firefoxを使うとTransportが上手く取れない
  • AndroidのChromeではcross-platform認証器のTransportがおかしい
  • userVerificationをtrueにセットしてPIN未設定のYubikeyを使うと本来はPIN設定が求められるべきだと思うがそのまま登録ができてしまうケースがある

などあるので、結局はちゃんとflagsの値を見て期待通りの認証器の状態となっているかを確認しないといけない、、ということです。



0 件のコメント: