问题标签 [webauthn]
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-json 进行编码
我正在尝试在 rails 应用程序中实现 webauthn,我正在尝试遵循这个 github 存储库:
https://github.com/cedarcode/webauthn-ruby
我的服务器挑战运行良好,它被发送到浏览器:
现在,在浏览器端(在 javascript 中),我正在尝试做:
(注意,我将控制器中的选项存储在窗口变量中),但是当我这样做时,我得到一个浏览器控制台错误:
在调试器中,我看到确实存在挑战,但我猜这与某种编码问题有关。关于 base64url 编码和使用这个 repo 编码/解码有一个非常模糊的参考:
https://github.com/github/webauthn-json/
但我不知道如何使用它,它似乎是一个 nodejs 包(?)我期待一个 javascript 文件(我不是节点程序员)。所以我想我的问题是:
1)如何使用 node js 包(不确定这个 repo 是否是那个,只是猜测)来制作一个我可以部署到 rails 应用程序中的服务器的 js 文件?
2)这个错误是否意味着即使存在挑战,它也没有正确编码?
感谢您的帮助,凯文
更新
感谢@mackie 的精彩回答,fido 网站有很多有用的东西,他们的 js 帮助很大,并补充说,以防未来的 webauthn 开发人员需要大量节省时间:
android - 如何从电缆二维码生成 qr_secret?
我正在开发 Android 身份验证器。我可以从 webauthn 读取电缆二维码。但我不知道如何从 caBLE QR 码生成 eid_gen_key 以在我的 Android 身份验证器中执行 StartAdvertsing。
Authenticator 项目在这里。他们正在从扫描的 QR 码生成一些 eid_gen_key 到 StartAdvertsing。但我无法理解整个过程。是否有任何文档可以从扫描的 QR 码生成 eid_gen_key?
我从二维码中得到了fido://c1/r0W65gVNdMNqt2o8Hyfsg 。请帮助我进一步进行。
php - PHP 的 WebAuthn 身份验证:如何使用 SHA256 验证 ECDSA?
我正在尝试在我们较旧的 PHP 5.6 后端实现 WebAuthn 身份验证。但是通过检查的最终验证openssl_verify()
给我带来了问题。我收到以下 asn1 错误:
0D0680A8:asn1 编码例程:ASN1_CHECK_TLEN:错误标签
有谁知道这意味着什么?公钥有什么问题?密钥具有有效资源。
还是该OPENSSL_ALGO_SHA256
算法不支持源编码“ECDSA w/ SHA-256”?
代码示例:
android - android安全网nonce是否等同于web authnn的挑战?
android SafetyNet 与 Web Authnn 有多相似?是否将质询传递给 WebAutnn 的身份验证器以生成与传递给 Android SafetyNet 的随机数等效的证明对象?我可以使用带有 WebAuthnn 的随机数作为挑战吗?
javascript - webauthn 身份验证 javascript 格式化帮助
我一直在试图弄清楚如何使用 webauthn 进行 2fa,并且我的注册部分正在工作。详细信息的文档记录确实很差,尤其是 javascript 中的所有编码有效负载。我可以向用户注册设备,但无法使用该设备进行身份验证。作为参考,我正在使用这些资源:
https://github.com/cedarcode/webauthn-ruby
https://www.passwordless.dev/js/mfa.register.js
特别是,对于身份验证,我试图模仿这个 js 功能:
https://www.passwordless.dev/js/mfa.register.js
在我的用户模型中,我有一个 webauthn_id 和几个 u2f 设备,每个设备都有一个 public_key 和一个 webauthn_id。
在我的 Rails 应用程序中,我这样做:
在我的 javascript 中,我尝试模仿上面的 js 文件,然后我做了(这是嵌入的 ruby):
问题是,我无法通过 navigator.credentials.get,我在 javascript 控制台中收到此错误:
调用 navigator.credentials.get 时的选项如下所示:
我已经尝试了各种方法将我的数据库存储的用户和设备变量转换为正确编码和解析的 javascript 变量,但似乎无法让它工作。有什么明显的关于我做错了什么吗?
感谢您的帮助,凯文
更新 -
添加服务器生成的选项json:
java - 集成测试 WebAuthN 作为 2FA 选项
我想将 WebAuthN 作为多因素身份验证的选项添加到 Angular 和 Spring 应用程序。我使用 Yubico 的 WebAuthN java-webauthn-server库。
在没有硬件客户端的情况下,集成测试我的 WebAuthN 服务器的最佳方法是什么?是否有任何软件可以在自动化测试中处理密码学?我想在 CI/CD 管道 (GitLab) 中自动运行这些测试。
在最好的情况下,我希望能够测试整个过程,创建凭据以及登录。另一种情况可能是我在后端使用已知凭据并仅使用这些凭据登录。
我的 API 是基于 REST/JSON 的,具有依赖方、用户、挑战、pubKey 等...
我的集成测试是基于 Java 的(spring boot starter test)
我主要对如何在没有客户端的情况下集成测试服务器感兴趣。是否有实用程序或库可以处理身份验证器并返回正确的数据/json 对象?
我已经查看了通过 REST 工具测试 WebAuthn,但是,我对测试规范不感兴趣,因为我使用的是库,我只想确保我将库正确应用于我的代码。
ios - 如何在 iOS 上启用指纹 WebAuthn
在阅读了有关WebAuth API 的大量 文档 后,我无法在 iOS 上成功启用平台身份验证。
我尝试将 Authenticator Attachment 设置为跨平台和平台,除了 iOS,它们产生了一致的结果:
javascript - 通过 WebAuthn API 识别手指 ID
而谷歌在2 年前推出了 WebAuthn https://developers.google.com/web/updates/2018/05/webauthn 。
是否有可能准确识别哪个手指用户注册或验证?
例如,服务器不仅会得到公钥,还会得到一个随机的唯一数字映射到用户注册的手指。因此,它有助于避免许多人使用同一设备对一个用户 ID 进行身份验证。
javascript - 通过chrome扩展使用inject_script替换chrome的WebAPI函数
我正在替换navigator.credentials.create()
和navigator.credentials.get()
使用 chrome 扩展。navigator.credentials.create()
用于为第二因素身份验证注册“安全密钥”。我的替换脚本适用于 Facebook 和 GitHub 等网站,但不适用于 Gmail、Twitter、亚马逊 AWS 等网站。可能是什么问题?为什么这里有不一致的地方?
content_script.ts
inject_webauthn.ts
清单.json
更新
正如 wOxxOm 和 kaiido 所指出的,这个问题很可能是因为新的动态 iframe。所以,我正在尝试使用 mutationObserver
我在 content_script.js 中添加了上述观察者。它仍然没有检测到相关的新 IFRAME。
当我启动 2FA 时,会加载调用 credentials.create APi 的脚本。有没有办法找到为什么我注入的代码函数没有在这里调用?
flutter - 如何为 Android 和 IOS 实现 FIDO2 (WebAuthn)
我开发了一个 Web 应用程序,它使用 WebAuthn API 使用硬件安全密钥进行身份验证。它工作正常。
我正在尝试使用兼容 IOS 和 Android 的 Flutter 本地实现它。这些平台是否有任何库或起点?我不想使用 ChromeTabs 或 SFSafariViewController。
请指教。