Open5

仮想u2f/FIDO2デバイスってどうなのか

okuokuokuoku

鍵ペアを持ち運ぶ方法として仮想u2f/FIDO2デバイスが考えられる。つまり、USBデバイスとしてのYubikeyなり何なりをハードウェア的にエミュレートするといった手法で全てがソフトウェア実装になる1Password等よりもある程度セキュアに鍵のローミングができると期待される。

okuokuokuoku

HYPR Enterprise Passkeys

真剣なソリューションとしてはHYPRがある。HYPERはユーザーのAndroid/iOSデバイスの暗号鍵機能を使う。いわゆる携帯電話上のPasskeyと同じだが、鍵がローミングしないのが特徴。

https://www.hypr.com/platform/enterprise-passkeys

ドキュメンテーション https://docs.hypr.com/docs/cc/ccInstallCfg/ccInstallCfgIntegrations/cc-install-cfg-integrations-hypr-enterprise-passkey によると、Bluetooth またはUSB デバイスとしてFIDO2を実装しているらしい。 ...USBデバイスになるとかどうやってんの。。?

古いドキュメント https://classicdocs.hypr.com/assets/files/installinghypr-7.10.0-401095ee8e29b9de78dfb2d8623e9036.pdf には "HYPR Token Driver" の言及がある。

(Workforce Access Client - macOS) Improve the installation process for the HYPR Token Driver

なので、普通にデバイスドライバとしてインストールさせてるんではないかという気はする。ただ、WHQLには該当しそうなデバイスは無かった。

HYPRはYubikey同様の認証エージェントを配付すると共に、この5月にopen betaになったEntra IDの外部認証(外部のOpenID Connectを2要素認証の2要素目にする)を初期adopterとしてサポートしている。

https://techcommunity.microsoft.com/t5/microsoft-entra-blog/public-preview-external-authentication-methods-in-microsoft/ba-p/4078808

最初のベンダにOktaが入ってないのが示唆的だな。。

okuokuokuoku

IDmelon

仮想HIDまたは物理Bluetoothリーダー。配付されているPairing toolに仮想HIDドライバが含まれている。

https://idmelon.com/docs/downloads

FIDO Credential Providerとして、on-premiseなWindows向けのプロバイダも配付している。たぶんHYPRも同様の方式なんだろう。

ちなみにアカウントも普通のPasskeyなので、1Passwordのような別のPasskeyプロバイダを登録するとそれでアカウントにログインできる。

okuokuokuoku

結局のところベストなソリューションは何なのか問題

仮想USBはUSB/IPとかに頼る必要がありちょっと不安なものがある。Bluetoothは libfido2 がサポートしていないので pam_u2f https://developers.yubico.com/pam-u2f/ で使えない。

というか仕様 https://fidoalliance.org/specs/fido-v2.2-rd-20230321/fido-client-to-authenticator-protocol-v2.2-rd-20230321.html#transport-specific-bindings 読んで気付いたけどBluetoothはHID over GATTは使わずに独自なんだな。。hidraw(や、WindowsのHID API)はBluetoothでも使えるので、実はBluetooth HID用のブリッジを書くのが一番安定性があるのかもしれない。。

ただHIDにブリッジすると結局VID/PIDが要るんだよな。。いやまぁ https://pid.codes/ から拾えば良いんだけど。。

あと前書いたけどHID over UARTみたいのは無い https://zenn.dev/okuoku/scraps/4282b76ff98a6f のでqemuとかに入れるのが結局面倒という問題もある。