遇到未知的 COSE 算法。alg: -257

你好,

我的一位用户无法使用硬件密钥进行双因素认证(2FA)登录。

在登录过程中按下密钥按钮后,Windows 10 会提示输入 PIN 码。输入 PIN 码后,他收到错误提示:“安全密钥使用的算法未被识别。”我确认这是 i18n 键 webauthn.validation.unknown_cose_algorithm_error

服务器将此记录为错误:

遇到未知的 COSE 算法。alg: -257。user_id: <已编辑>。params: <ActionController::Parameters {"signature"=>"<已编辑>", "clientData"=>"<已编辑>", "authenticatorData"=>"<已编辑>", "credentialId"=>"<已编辑>"} permitted: false>

快速谷歌搜索仅找到以下内容:
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。

如果我们拥有开发者的设备型号和操作系统信息。

也许就是这个东西?https://blockchain2fa.io/

我想你可以用区块链做任何事情。

正如 @sam 指出的,这是我们所使用的 cose-ruby 库的一个限制。它仅支持以下算法:

根据错误信息,该安全密钥使用的算法是“-257”,即 RS256,该算法并不推荐使用。这很可能就是该库未实现它的原因。

您正在尝试使用什么设备进行身份验证?