Yubikeyをパスワードレスログイン用のパスキーとして登録できません

奇妙な問題に直面しています。どのDiscourseフォーラムでもYubiKey(シリーズ5を使用しており、4つ持っています)をパスキーとして登録できません。Androidフォンのパスキーとパスワードマネージャーのパスキーは正常に登録できます。

YubiKeyを登録しようとすると、常に以下のエラーが発生します。

しかし、YubiKey上にレジデントキーが作成されます。ykman fido credentials listで確認できます。
image

このキーは、当然ながら、再度ログインしようとしても機能しません。

その後、自分のDiscourseインストールでキーを登録してログを確認したところ、以下のエラーが表示されました。

COSE::MalformedKeyError (Malformed CBOR key input) lib/discourse_webauthn/registration_service.rb:161:in `extract_public_key_and_credential_from_attestation' lib/discourse_webauthn/registration_servic

YubiKeyが機能しないことに関してフォーラムで何も見つけられなかったので、これは既知の問題なのか理解したいです。もしそうでない場合は、必要に応じてさらに詳細を提供させていただきます。

「いいね!」 2

YubiKey がパスキーの候補として適しているかどうかわかりません。生体認証のみですか?

エラーは発生しないはずですが、テスト用に YubiKey をいくつか用意する必要があります。@pmusaraj がこの問題を解決するのを手伝ってくれます。

編集 生体認証 はパスキーとして機能します。生体認証以外のものがパスキーとして適しているかどうかはわかりません。その場合、要因は 1 つだけになります。

「いいね!」 2

これらのYubiKeyを、Github、GoogleなどのDiscourse以外のパスキーアプリケーションや、https://www.passkeys.io/のようなテスト実装に登録できますか?

「いいね!」 2

@pmusaraj はい、Google、GitHub、Vercel、その他いくつかのサービスに正常に登録でき、正常に動作しています。

@sam Yubikey Series 5 は、パスキーとして使用するために、私が知っているもの(PIN)と私が持っているもの(トークン自体)を組み合わせるため、パスキーの良い候補です。PIN がないと、レジデントキーを一覧表示することさえできません。バイオシリーズは、PIN を生体認証に置き換えます。

「いいね!」 4

@rishabhlakhotia さん、確認ありがとうございます。meta のログでエラーを確認しました。この障害は、4年前から変更されていない一般的なセキュリティキー証明機能で発生しています。これは 2FA セキュリティキープロセスでも使用されています。

meta で Yubikey を 2 要素認証セキュリティキーとして登録できますか?

「いいね!」 2

ykman list の出力は何ですか?

私の YubiKey 5 NFC (5.1.2) は、ここで Meta のパスキーとして正常に機能します。

Chromium で登録し、Chromium、Firefox、Edge でログインするために使用できます。

「いいね!」 3

レジデントキーを備えた Yubikey であれば、ブラウザが多要素認証を強制できるため、適しているはずです。存在チェック(キーに触れる)と Yubikey PIN の設定の両方が可能です。

「いいね!」 6

はい、4つのYubikeyすべてをセキュリティキーとして登録しています。エッジケースを回避するために、2つをセキュリティキーとして削除し、パスキーとして再登録しようとしましたが、それでも機能しませんでした。

YubiKey 5C NFC (5.4.3) を使用しており、Chromeブラウザを使用しています。

キーにサイトのセキュリティ キー クレデンシャルがある場合、それをパスキーとして使用しようとすると失敗することは知っています。私も同様の問題に遭遇しました。

しかし、セキュリティ キーを削除してパスキーとして再登録すれば機能するはずです。

「いいね!」 2

UPDATE: @supermathieさんの返信のおかげで、FirefoxをダウンロードしてYubikeyの登録を試したところ、うまくいきました。Chromeでエラーが出ていたのと同じキーを登録できました。

興味深いことに、Firefoxで登録した後、同じYubikeyを使ってChromeでログインすることができました。その後、Chromeで同じプロセスをもう一度繰り返しましたが、また同じエラーが発生しました。

これで問題がある程度絞り込めると思います。

「いいね!」 3

Chrome と FF のバージョンを教えていただけますか?

「いいね!」 3

Chrome バージョン 120.0.6099.234 (Official Build) (arm64) および Firefox バージョン 122.0.1 (64-bit)

「いいね!」 1

macOS上のArc Browser、つまりChromium(122.0.6261.57)で、YubiKey 5C NFC(5.4.3)とYubiKey Security Key(青いもの)で同様の問題が発生しました。

Safariでも同様に試したところ、問題なく動作しました。そして、あなたのケースと同様に、これらのPasskeysをChromiumブラウザで使用しても問題は発生しませんでした。

「いいね!」 3

こんにちは、このスレッドを見つけられてとても嬉しいです! DiscourseインスタンスにYubiKeyを追加しようと必死に試していましたが、うまくいきませんでした。それで、彼らはセルフホスティングしていて、何らかの設定エラーがあるのではないかと思いました。それからGoogleで検索してみようと思いました。meta.discourse.orgが以前にこれに言及していたように見えました。

残念ながら、Brave(Chromium)でセットアップを試みましたが、OPが報告したように、以前と同様に完全に失敗しました。

私の設定は以下の通りです。

  • macOS Big Sur 11.7.9 (20G1426) を古いApple MacBook Proで実行しています。
  • YubiKey 5 NFC ファームウェア: 5.4.3

ブラウザ:

  • Brave [Chromium] バージョン 1.73.91 Chromium: 131.0.6778.85 (公式ビルド) (x86_64)
  • Safari: [WebKit] 16.6.1 (16615.3.12.11.5, 16615)
  • Firefox: [Gecko] 133.0
  • Microsoft Edge: [Chromium] バージョン 131.0.2903.70 (公式ビルド) (x86_64)

それで、Safariを起動し、パスキーの追加に進み、ソフトウェアベースのパスキーから始めました。これはSafariが気に入り、Discourseも受け入れました。その後、さらにYubiKey 5 NFCをパスキーとしておよび追加の2FA確認として追加しようとしました。Discourseはすべてを受け入れるのに問題はありませんでした!

それが設定されたら、Firefoxでテストしたところ、すぐに機能しました。Microsoft Edgeでも同様でした。そして、Braveに戻ると、YubiKeyでは何も問題なく機能しました。

Discourseが抱えている唯一の問題は、キーとの初期通信(または、キーをブラウザから「見える」ようにする機能)がChromiumベースのブラウザにあるようです。そのキーがDiscourseに割り当てられると、他のどのブラウザでも簡単に受け入れられるようになります。iOSのSafari(YubiKey 5 NFCは間違いなくそれとも連携します)では試しませんでしたが、そこでも問題はないだろうと強く疑っています。

今、成功しなかった多くのDiscourseセットアップに戻って、今機能するかどうかを確認する必要があります! :smile_cat:

「いいね!」 2