问题标签 [fido]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
44 浏览

android - 在 Android 上使用面部解锁和 FIDO 创建凭据/生成断言

在Android中使用Fido2ApiClient的getRegisterPendingIntent和getSignPendingIntent接口时,为什么在创建凭证或生成带有凭证的断言时不能使用人脸解锁?或者这可以在PublicKeyCredentialCreationOptionsPublicKeyCredentialRequestOptions中设置吗?

在支持面部和指纹解锁的手机上进行测试时,我发现我只能创建 FIDO 凭据并使用我的指纹或屏幕 PIN 生成断言。

0 投票
1 回答
47 浏览

authentication - fido 上的扩展、用户验证、ctap 是什么?

这些天我在学习FIDO2。有三个问题。

  1. 在注册过程中,扩展字段是什么?
  • 用途、用途
  1. 什么是用户验证?我认为用户验证是本地验证。例如,移动设备上的指纹。为什么我需要设置这个(必需,首选,劝阻)??还有什么是认证便利偏好?
  2. 我了解 CTAP 是外部身份验证器和浏览器之间的协议。如何将数据从身份验证器发送到浏览器?
0 投票
3 回答
105 浏览

encryption - WebauthN 和 Yubikey 在浏览器中生成对称加密密钥。这个黑客安全吗?

我了解 WebauthN 旨在执行身份验证,但我想使用我的 Yubikey 创建对称加密密钥来加密我的网络浏览器上的内容,而不依赖于后端服务器。

这是我的方法:

  • 在断言挑战(navigator.credentials.get({ publicKey }))期间,Yubikey 签署了一个挑战字符串,客户端发送给验证者。
  • 我提取签名的质询,使用 SHA256 对其进行哈希处理,并将其用作我的新对称加密密钥以进行 AES256 加密。
  • 只要向 Yubikey 发送相同的挑战字符串,加密密钥将始终相同。

为了能够解密网络浏览器上的内容。我必须拥有 Yubikey 和挑战字符串才能进行 2 因素身份验证。

这种方法有什么问题吗?

0 投票
1 回答
81 浏览

encryption - 如何在 Web 浏览器中使用 Webauthn/CTAP HMAC-Secret 扩展检索对称密钥?

我正在尝试利用 CTAP hmac-secret 扩展在 Web 浏览器中检索对称加密的密钥。我有实现这个扩展的 Yubikey5。我通读了 CTAP 规范,但是一旦获得断言数据,我就找不到如何做的参考。

这是我的简化代码:

我无法在 JavaScript 中找到一个可以在 Web 浏览器中利用此功能的工作示例。

0 投票
1 回答
47 浏览

fido - 从 FIDO 一致性工具 (UAF) 排除错误,我该如何解决这个错误?

错误图片

我目前正在处理这个错误好几天。我不知道如何弄清楚 KeyID 是什么以及它的解决方案。对我来说,由于工具本身会创建 KeyID,因此我无法选择将其添加到我的 disallowedKeyID 中。任何想法将不胜感激。谢谢!

0 投票
2 回答
42 浏览

windows - 如何为 Wondows Hello 登录配置 Yubikey 5

刚刚将我的 Yubikey 添加到我的 Microsoft 帐户URL “无密码帐户”中。但是我没有收到“触摸 USB”的提示 :-( 我只有在锁定 PC 后才提供 PIN 或密码。我还有其他事情要做吗?另一个设置?

0 投票
2 回答
31 浏览

python - 如何生成 fido2.cose 导入 ES256 fido2 密钥对

我正在使用fido2python 包,我想知道如何生成 EC 对(ES256)公钥和私钥。

以及如何使用私钥签署挑战,以便可以使用公钥对其进行验证

谢谢

0 投票
0 回答
27 浏览

android - Android Fido2ApiClient 自定义 UI 来解锁设备

使用 com.google.android.gms.fido.fido2.Fido2ApiClient#getSignPendingIntent,并使用 androidx.fragment.app.Fragment#startIntentSenderForResult 启动 Intent,适用于 Android 的 FIDO2 API 使用标准 UI 处理生物特征认证,如下所示: 在此处输入图像描述

有没有办法允许自定义身份验证 UI,而不是使用上面的默认 UI,它允许开发人员使用自定义 UI 覆盖。

0 投票
2 回答
73 浏览

iframe - 在跨域 iframe 中使用 `navigator.credentials.get()` 会出现错误“本文档中未启用‘publickey-credentials-get’功能”

通过 webauthn 登录 iframe 时出现错误。

本文档中未启用“publickey-credentials-get”功能。权限策略可用于将 Web 身份验证功能委托给跨域子框架。

这是示例https://jsfiddle.net/14kj25nr/的链接。我已经直接通过 webauthn.io 注册了一个用户“test_account”,然后尝试通过 jsfiddle 登录。它说使用publickey-credentials-get,但我找不到一种方法来使用它来让它工作。任何帮助,将不胜感激。

更新1:

我为 iframe 添加了 allow 属性allow="publickey-credentials-get"。它仍然给我同样的错误。小提琴中的示例已更新。

更新 2:

来自 IAmKale 的建议。我进行了以下更改,但仍然遇到相同的错误。更新了 iframe 的 allow 属性allow="publickey-credentials-get *"

我使用Requestlychrome 扩展Permissions-Policy在 RP 的响应中添加标题。在下面的屏幕截图中可以看出,我能够成功地在响应中添加标头。但仍然得到同样的错误。会不会是一些jsfiddle具体的问题?还是我做错了什么?我正在使用 Chrome 版本 96.0.4664.110。 在此处输入图像描述

更新 3:

当我在 localhost 而不是 jsfiddle 中使用 iframe 时,我会弹出 webauthn chrom 弹出窗口。但是登录仍然不成功,服务器返回POST https://webauthn.io/assertion 400

0 投票
1 回答
38 浏览

fido - 用 libfido2 封装的私钥?

我目前正在努力进入 libfido2 并试图弄清楚如何使用包装的私钥。

Yubico 在常见问题解答中表示,使用 YubiKey 5 无限密钥对可用于 FIDO U2F;但是,对于 FIDO2,只承诺 25 个常驻密钥的空间。

  1. “FIDO2”是否意味着使用了常驻密钥并且 FIDO2 不能与(外部)封装的私钥一起使用?

  2. 如果是这种情况,libfido2 是否提供了使用 FIDO U2F 和包装密钥的任何可能性?

  3. 如果是这样,libfido2 需要如何配置才能做到这一点?如何为库提供适当的受保护私钥。至少在“fido2-assert”中,当我想在客户端上创建断言时,我看不到这样做的方法。

(这里函数接受四个具体参数描述,我理解的唯一能带私钥的是“凭证id”。但是这个名字让我怀疑我的请求是否可以用这个参数)。

我很感激任何答案!

编辑:与此同时,我找到了一些 Solo Keys 开发人员页面的链接,描述了它在 Solo Keys 上的工作原理。似乎私钥是动态计算的——在这种情况下,凭证 ID 将作为计算的种子)