问题标签 [yubico]
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.
delphi - 使用来自 Yubico 的 fido2.dll 进行 Webauthn 凭证验证
我开始在 Delphi 中对 yubicos fido2.dll 进行接口,并且能够根据提供的示例对其进行接口。现在我想更进一步,在例如 apache 服务器上使用 dll 来处理凭证创建和断言。
所以..为此,我基本上使用在测试站点https://webauthn.io/上找到的 javascripts
基本上我想模仿一些服务器功能来创建凭证。在网站上可以设置一些属性 - 在我的环境中,它们来自服务器。
目前,我已经与客户端进行了通信以发出凭据初始化 - 服务器响应挑战。查询密钥,浏览器创建凭据并将其发送回服务器。这虽然我对来自服务器的数据有问题,也就是我在解码 attestationObject 部分时遇到问题。
所以这是来自我的服务器的凭证初始化 json:
来自服务器的结果:
这是一个应该验证凭据的控制台程序:(请注意,您需要将上述内容粘贴到文本文件中并将其加载到控制台中)。
我实际上对返回的 CBOR 编码的 attestationObject 有问题。如果设置了常驻密钥属性,则证明对象只有 63 个字节长 - 并且还有一些字节实际上没有被编码。所以......那里的 cbor 解码要么失败,要么我得到的数据不符合 webauthn 证明对象,该对象应该在这些位置返回凭证 id 和公钥(然后也是 cbor 编码的)。如果驻留密钥属性为假,如上述语句中的情况,则 fido dll 返回错误的身份验证数据。所以......有人知道我做错了什么吗?
它基本上应该如图所示,但它要么在凭证 ID 中间的 63 个字节之后结束,要么在 dll 中失败。
authentication - Yubico / Attestation 和 Assertion 之间的凭证 ID 长度不匹配
我正在使用 AAGUID 为 ff8a011f3-8c0a-4d15-8006-17111f9edc7d(Yubico v5.1 的安全密钥)的 Yubico 安全密钥为我的 Web 应用程序执行无密码身份验证。当我创建/注册新凭据时,我在创建凭据选项的authenticatorSelection部分中使用属性“ requireResidentKey = true ” :
返回的Attestation 数据包含 16 个字节的凭证 id:
所以例如我会收到一个 16 字节的 base64url id,看起来像:AUpf0KmNJrRluGG-65D54Q
然后我使用这个 16 字节的 id 作为密钥来保存生成的凭证。当我使用 Yubico 密钥登录时,返回的断言数据包含相同的 16 字节凭据 ID:
然后我可以使用这个凭证 ID 来检索我存储的凭证数据并验证断言。所以到目前为止一切都很好......
然后我正在阅读 W3C Editor's Draft on Web Authentication: An API for access Public Key Credentials Level 2并注意到“ requireResidentKey ”已被弃用,取而代之的是采用枚举值的“ residentKey ”属性:
requireResidentKey,布尔类型,默认为 false 注意:保留此成员是为了向后兼容 WebAuthn 级别 1,但不推荐使用 residentKey。如果调用者提供了 residentKey 并且客户端理解了后者,则忽略 requireResidentKey。否则,使用 requireResidentKey 的值。请注意,requireResidentKey 的值默认为 false。
如果在没有 residentKey 的情况下使用,它描述了依赖方对居民凭证的要求。如果 requireResidentKey 设置为 true,则验证者在创建公钥凭证时必须创建客户端驻留的公钥凭证源。
residentKey,类型为 ResidentKeyRequirement 注意:此成员取代 requireResidentKey。如果两者都存在并且客户端理解 residentKey,则使用 residentKey 而忽略 requireResidentKey。
有关 residentKey 的值和语义的描述,请参见 ResidentKeyRequirement。
所以我将requireResidentKey更改为residentKey,其枚举值为“ required ”,如图所示:
现在,当我创建一个新凭证时,我会返回一个64 字节的凭证 ID。这本来很好,只是当我使用 Yubico 安全密钥登录时,我得到一个16 字节的凭据 ID,它显然与我在创建凭据阶段保存的 64 字节不匹配。
有趣的是,当我尝试同时使用requireResidentKey = true和residentKey = 'required'时,我得到了为 Attestation 和 Assertion 返回的 16 字节凭据 ID。
这可能是不支持新的residentKey属性吗?如果是这样,为什么我会得到一个 64 字节的凭证 ID?这可能是非居民凭证 ID 的长度吗?
我的代码正在使用旧的requireResidentKey属性恢复工作,但我很想知道这里发生了什么,以及新的 Yubikeys 是否支持residentKey属性?
hsm - 在 YubiHSM 2 上为 Ed25519 密钥对生成认证证书
YubiHSM 2 的证明机制是否支持 Ed25519 密钥对的证明?
以下yubihsm-shell
会话失败:
带有以下消息:
同时,RSA 和 NIST-B EC 密钥对(即,ecp256、ecp384)的证明按预期工作。YubiHSM 文档没有提到这个缺陷。
yubico - yubikey 5 NFC 触摸输入 6 位代码
我将我的 yubikey 5 NFC 与 U2F 以及 OTP 代码一起使用。我使用 Yubico Authenticator 应用程序获取 OTP 代码,这似乎有点太复杂了,我想知道是否有办法将它分配给我的钥匙上的短/长触摸,所以我不需要每次都打开那个应用程序来获取代码我经常用吗?
似乎身份验证器使用插槽以外的其他东西来存储凭据,是否可以使用ykman
或其他一些官方命令行实用程序/sdk 来读取它们?
blockchain - 如何在 iOS 设备上使用 yubikey 5ci 生成和访问非对称密钥?
我们的团队正在探索 Yubico Mobile iOS SDK:https ://github.com/Yubico/yubikit-ios
但是我们发现这里不可能实现我们的目标之一:
我们需要使用 Yubikey 5ci 生成一个不对称并存储在上面。而且我们还需要它可以在生成后被引用。我们不需要私钥,我们只需要引用这个密钥来生成签名供以后使用。
有没有办法做到这一点?
谢谢。
yubico - 两个 PIV 证书 - 一个 YubiKey 5
我正在尝试导入两个 PIV 证书以在一个 Yubico Key 5(插槽 9a)上使用。一个证书用于常规使用,另一个证书用于提升权限。对于我的生活,我无法弄清楚!
我尝试使用 GUI YubiKey Manager > PIV > 配置证书 > 导入
所有这一切都是用正在导入密钥的证书覆盖现有证书
我已经尝试找出与以下 pdf 一起使用的命令行:https ://www.yubico.com/wp-content/uploads/2016/05/Yubico_PIV_Tool_Command_Line_Guide_en.pdf
在这一点上,我只是把我的头骨撞在墙上,不知道如何解决这个问题。有没有人对此有任何想法或见解?
c# - 需要 UWP 应用程序 PIV 示例
我们正在使用 Visual Studio 2019 开发 C# UWP 应用程序。我已成功设置监控正在从 USB 端口插入/移除的 YubiKey FIPS(4.4.5 固件)。我们将 YubiKey 设置为使用 PIV,并将证书加载到插槽 9c(使用 YubiKey PIV 管理器,我没有安装迷你驱动程序)。我确实注意到,当 YubiKey 插入 USB 时,它会使用插槽 9c 中的证书自动加载我的个人证书存储。我们收到来自服务器的质询,我需要使用它来验证 YubiKey。从插槽 9c 获取证书的下一步是什么(如果该密钥上有多个证书怎么办)?Yubico 没有显示如何将密钥与应用程序集成的示例(我不相信 Windows Hello 在这里适用,不是吗?)。我们正在尝试使用 Windows.Devices。智能卡命名空间。这个命名空间似乎没有槽的概念。这是正确的方向还是我们需要使用 Yubico 库(迷你驱动程序)我不知道。文档是有限的。
yubico - Yubikey Openssh 签名证书集成
实际上,我使用我的 YUBIKEY 通过 PKCS11 PIV 工具进行 ssh 身份验证。
我按照以下步骤操作: https ://developers.yubico.com/PIV/Guides/SSH_user_certificates.html
在本开发人员指南的末尾有这一行:
id_rsa-cert.pub
如果我尝试对我的一个 openssh 服务器进行身份验证,则会生成并且一切正常。
但我想将这个 id_rsa-cert.pub (我的 CA 的公共 id 签名)存储在我的 yubikey 中......
我不知道该怎么做...
任何想法 ?
(我的 CA 在我的服务器上,我的客户端上有一个副本仅用于 POC)
更新:16/11/2021
这是因为 yubikey 使用 x509 证书和 ssh RSA 证书......只是不兼容......
android - FIDO 是否必须托管assetlinks.json 文件?
我有一个关于 FIDO2 的问题。
小背景: 我的公司决定使用 FIDO2 进行用户帐户管理。所以我们创建了一个主要使用 yubico webauthn 库的 FIDO 服务器包装器。在 Android 端,我们使用 Fido2ApiClient 谷歌播放服务原生库来支持 FIDO
根据 Fido 文档, https://developers.google.com/identity/fido/android/native-apps#interoperability_with_your_website 允许用户在您的网站和 Android 应用程序之间无缝共享凭据很简单。但是,我们没有使用任何网站,仅在 API 端点(AWS-ALB)中使用 FIDO 服务器
在没有托管assetlinks.json 文件的情况下,Android FIDO Authenticator 始终返回以下错误消息。
FIDO 是否必须托管assetlinks.json 文件?有没有人在不托管此文件的情况下取得成功?
firefox-addon - 为什么 navigator.credentials.get 函数在 firefox 插件中不起作用
在 Firefox 插件中从后台调用函数navigator.credentials.get({ publicKey })The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
会引发以下错误。
我找不到有关该问题的任何信息。有没有办法在 Firefox 插件脚本中使用 WebAuthn 函数?在 Chrome 扩展程序中,它可以正常工作。