不明なCOSEアルゴリズムが検出されました。alg: -257

こんにちは、

あるユーザーがハードウェアキーを使用した 2 段階認証(2FA)でログインできません。

ログイン中にキーのボタンを押すと、Windows 10 が PIN の入力を求めます。PIN を入力すると、「セキュリティキーに使用されているアルゴリズムが認識されません」というエラーが表示されます。確認したところ、これは i18n キー webauthn.validation.unknown_cose_algorithm_error です。

サーバー側では以下のようにエラーがログに記録されています:

Unknown COSE algorithm encountered. alg: -257. user_id: <redacted>. params: <ActionController::Parameters {"signature"=>"<redacted>", "clientData"=>"<redacted>", "authenticatorData"=>"<redacted>", "credentialId"=>"<redacted>"} permitted: false>

Google で簡易検索したところ、以下の記事しか見つかりませんでした:
https://review.discourse.org/t/fix-catch-error-when-unknown-cose-algorithm-is-supplied-for-security-key-8649/8074

おそらく実装が必要なのだと思いますが、不思議なことにユーザーはすでにアカウントに設定できています。
コードの変更なしに、フォーラムの管理者側から修正できるかどうかはわかりません。

私は推奨されているスタンドアロンの Docker インストールを使用しており、バージョンは 2.7.0.beta3 です。このスレッドを作成する 1 時間未満前に、フォーラムを再構築して更新しました。

奇妙ですね。他のウェブアプリでも、2FAとこのハードウェアキーでログインできますか?何か心当たりはありますか、@dan

セキュリティキーのモデルとブラウザのバージョンをお知らせいただけますか?

どのアルゴリズムが不足しているか見てみると面白いでしょうね:

おそらくこれでしょう:Support EdDSA · Issue #48 · cedarcode/cose-ruby · GitHub EdDSA。

開発者のモデルと OS がわかれば、もしかしたらこの仕組みかもしれませんか?https://blockchain2fa.io/

ブロックチェーンはあらゆることに使えるのでしょうね。

これは、@sam が指摘したように、私たちが使用している cose-ruby ライブラリの制限です。サポートされているアルゴリズムは以下の通りです。

エラーメッセージによると、そのセキュリティキーはアルゴリズム「-257」を使用しており、これは RS256 を表します。推奨されていないため、ライブラリが実装していない可能性があります。

認証に使用しようとしているデバイスはどのようなものですか?