问题标签 [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.
webauthn - WebAuthn 身份验证器证明响应 id 和 rawId
我想问一个关于id
和的问题rawId
。
在实施 webauthn 时,在身份验证器证明响应中,我看到我们同时拥有id
和rawId
. 阅读规范(https://www.w3.org/TR/webauthn-1/#dom-publickeycredential-rawid),id
是base64url(rawId)
所以这是我的问题:
- 为什么我们需要
id
- 为什么在上面的例子中,我
id
的完全一样rawId
?- 它总是一样吗?
id
如果是这样,我们可以在响应中摆脱吗?
- 它总是一样吗?
- 如果我将公钥保存
id
到数据库(稍后使用该公钥id
创建allowCredentials
列表),我应该遵循以下哪一个?- 保存
id
在数据库中,用于id
创建allowCredentials列表 - 保存
base64url(rawId)
在数据库中,然后使用该 base64 url 编码值创建allowCredentials
列表
- 保存
android - Android FIDO2 抛出模糊错误
我正在尝试在 Android 上实现 FIDO2。我在我的域上托管了assetlinks.json(对不起,我不想要并且不确定是否允许我透露整个网址)。我定义了 assets_statements 字符串并将其添加到我的清单中,并且我还实现了整个获取注册质询逻辑,其中我正在从 PublicKeyCredentialCreateOptions 创建一个挂起的意图。在我启动意图后,我看到一个白屏,它显示出来并很快关闭,没有任何描述性错误或任何东西,我不知道如何调试这个问题。日志显示:
在https://developers.google.com/digital-asset-links/tools/generator上,它说我的域授予应用程序深度链接到我的包名称。
我在用com.google.android.gms:play-services-fido:18.1.0
日志中的错误在任何方面都没有帮助,我不确定我是否仍然在这里遗漏了什么,任何帮助将不胜感激。
multi-factor-authentication - Yubico 开发中
各位顾客好,我一直在网上搜索,试图了解更多关于在我的 yubikey 上开发更多应用程序的信息,我遇到了一篇关于将 MFA 添加到不附带 oath 或 hotp、Fido 协议的路由器的文章,但将服务编程到管理员登录屏幕该功能超出了我的范围,但许多专家可以帮助我或为我指明正确的方向。
真挚地,
Yubico 开发
react-native - 在用户名/密码登录后设置 Fido
使用 WSO2 服务器是否会有所作为,但想知道这对于支持 Fido 或 webauthn 的其他服务器是否有意义。
我想要的是改进当前使用 WSO2 和用户名/密码身份验证的本机应用程序。我想将其更改为用户首先输入用户名或密码,但之后可以使用生物识别技术使用手机登录,而不是再次输入该用户名和密码。
我看到的所有示例都是按照说明首先注册设备。我可以使用第一个登录过程来注册该设备以进行 Fido 登录吗?我在研究正确的网络标准吗?
javascript - 关于 WebAuthn(FIDO)
我在前端测试 WebAuthn (这意味着没有后端的东西,比如挑战、id 等)
- 为什么图标很重要?
当我第一次尝试时,我只能使用安全密钥进行身份验证。但是当我向 publickey.user.icon 添加一个图标:未定义时,我可以使用 Windows Hello 进行身份验证。而且,即使我插入了一个真正的图标链接,它也没有显示出来。Windows 10 教育版,最新版本
- 我该如何实施?
我发现我可以使用res(navigator.credentials....).response.attestationObject。这是使用 WebAuthn 的正确方法吗?
- 关于物理安全密钥
假设我有一个支持指纹的安全密钥 USB。然后我输入我的指纹,然后用 WebAuthn 注册。然后我的朋友进来了,他用指纹进行了注册。那么 key(.response.attestationObject)会因为相同的物理指纹而相同,还是因为指纹不同而不同?
android - 本地实现FIDO2服务器逻辑错了?(华为设备)
我是 FIDO2 的新手,我正在学习如何在华为设备中使用它。我阅读了华为的文档并测试了他们的 FIDO2 Demo App。
我注意到在演示项目中,项目代码中有一个“服务器模拟器”,所以我很好奇:我可以在应用程序中本地实现 FIDO 服务器逻辑吗?是错误的做法吗?是否会影响 FIDO 的 2 个主要流程(注册和身份验证)中所需的生物特征数据或其他数据的安全性?
另外我还有一个问题:有一个免费的 FIDO 服务器可以与最终用户的应用程序一起使用吗?
我希望有人能解决我的疑惑。
谢谢 :)
webauthn - 密钥句柄和凭据 ID 之间的区别
WebAuthN的 akey handle
和 a有什么区别?credential id
我在规范中看到这里提到了这两者,allowCredentials MAY contain a mixture of both WebAuthn credential IDs and U2F key handles
但我并不完全理解它们的区别。
webauthn - 为什么浏览器中的 WebAuthn API 将数据从身份验证器重组为 WebAuth 中的依赖方?
在注册期间,身份验证器响应包括一个公钥和证明数据,如https://developers.yubico.com/WebAuthn/WebAuthn_Developer_Guide/WebAuthn_Client_Registration.html所示。第attestationObject
4步中的改为AuthenticatorAttestationResponse
第5步中。为什么authenticator不直接生成AuthenticatorAttestationResponse
或者我们只是attestationObject
在第5步中发送。
touch-id - 使用内置身份验证器时 FIDO2/WebAuthn 的注册策略
这更像是一个哲学问题而不是技术问题,但我认为它仍然具有相关性,即使它更多地归结为 UX 设计而不是其他任何东西。
现在是 2021 年,几乎没有人拥有 Yubikey 或类似设备,但几乎每个人都拥有带有 TPM 和支持 FIDO2 和 WebAuthn 的操作系统或浏览器的手机、平板电脑或台式机/笔记本电脑。因此,我想探索使内置身份验证器注册过程尽可能流畅的方法,并且不要求他们(至少暂时)进行常规密码身份验证以使其完成。
有没有人知道类似于 OpenID Connect 设备流程的野外方法,有人可以去公共注册端点,为他们的设备进行注册仪式,然后使用生成的唯一代码将其链接到另一个已经存在的帐户注册设备?
我会看到它像这样工作:
- 用户通过链接或一些说明访问https://idp.mycompany.com/enroll
- 他们点击“注册此设备”按钮并触发创建凭证交互(可能需要在此处提示输入用户 ID,因为我们需要它来设置常驻密钥)
- 我们将生成的凭证存储在后端并交换一个唯一的代码(例如 ABC123)
- 用户在已经注册的设备上访问https://idp.mycompany.com/enroll/ABC123(或者可能访问可以输入代码的 UI)
- 提示用户使用其已注册设备上的常驻密钥进行身份验证
- 用户登录后,存储的凭据将添加到相关用户帐户中,并且他们会收到视觉确认
- 用户可以在新注册的设备上使用凭据登录
这对我来说是非常安全的,因为即使可以猜到一个代码,你可以做的最糟糕的事情就是将其他人的凭据添加到你的帐户中,并且由于这是在经过身份验证的上下文中发生的,因此我们可以轻松地实现速率限制。用户可以在事后自由管理他们的凭据,但他们认为可以通过管理 UI 进行管理。
第 2 步可能是我最不清楚的一点,但我的想法是,用户是否为常驻密钥提供垃圾用户详细信息并不重要,因为无论如何我们都将根据后端的凭证 ID 进行链接。如果他们胡说八道,那么他们只会影响他们自己的用户体验,不会影响其他任何事情,如果他们愿意,他们可以自由地纠正错误。
想法?
附录:经过深思熟虑,我认为这种方法(以及与此相关的 OIDC/OAuth2 设备流程)打开了一个重要的网络钓鱼向量,因此可能应该避免。
wso2 - WSO2 IS 5.11 - 无法在 Apple 设备上使用 FIDO 身份验证
摘要:WSO2 IS 5.11 已安装并配置为使用 FIDO 作为服务提供商的本地身份验证器。当 Apple 设备上的用户尝试使用 FIDO 本地身份验证器登录服务提供商时,用户会立即被重定向到失败的登录尝试页面。
根据附加到用户设备的 Safari Web Inspector,fido2-auth.jsp [1] 生成以下错误消息:
Apple 要求 WebAuthn API 调用源自用户手势 [2]。fido2-auth.jsp 尝试通过导致上述错误消息的 onload [3] 事件调用 WebAuthn API。
问题:适当的解决方法是在此页面上有一个“重试”按钮,通过用户手势显式调用 WebAuthn API,并且在 onload 失败时,禁用 talkToDevice() [4] 中的自动表单提交,以便用户可以使用“重试”按钮?WSO2 是否为使用 Apple 设备执行 FIDO 身份验证的用户确定了另一条路径?
参考
[2] - https://webkit.org/blog/11312/meet-face-id-and-touch-id-for-the-web/