问题标签 [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.

0 投票
1 回答
205 浏览

fido-u2f - WebAuthn / FIDO2 证明对象和客户端数据 JSON 示例

我目前正在为 WebAuthn / FIDO2 注册和身份验证构建服务器库。我发现可以发送什么样的证明对象有很多排列。我想确保我为库编写的测试将至少涵盖最常见的证明格式及其签名密钥和散列算法的组合。

为了让我这样做,是否有任何预先存在的示例可以用作参考?

0 投票
1 回答
78 浏览

android - 部分收到 MAKE CREDENTIAL 请求

我可以将 GET_INFO 发送到 webauthn.io 。之后,我可以部分读取 MAKE_CREDENTIAL 请求。总 MAKE_CREDENTIAL 数据长度为 400+。但我只得到 90 多个字节。我没有收到 MAKE_CREDENTIAL 的全部请求。

我收到的请求是

[-125, 1, 95 , 1, -91, 1, 88, 32, 75, 1, 9, -33, -61, -39, 69, -54, -3, 113, -4, -77, 29、83、121、14、-83、-123、70、-121、-15、-106、-17、121、107、-118、-7、32、-44、-74、71、20、 2, -94, 98, 105, 100, 107, 119, 101, 98, 97, 117, 116, 104, 110, 46, 105, 111, 100, 110, 97, 109, 101, 107, 119, 101 , 98, 97, 117, 116, 104, 110, 46, 105, 111, 3, -93, 98, 105, 100, 74, -44, -98, 1, 0, 0, 0, 0, 0, 0、0、100、110、97、109、101、100、117、115、101]

根据长度数据,总字节数应为 405。但我只收到 94 个字节。我调试并分析了代码,我无法找出问题所在。

请帮我继续。提前致谢。

0 投票
0 回答
178 浏览

ios - FIDO2 一致性工具 TypeError:无法读取未定义的属性“1”

我正在尝试开发一个 fido2 iOS BLE 身份验证器。截至目前,Can 能够宣传我的身份验证器并将其与 webauthn 客户端配对。在客户端验证我的广告数据后,它正在向“controlPoint”特征写入“authenticatorGetInfo(83000104)”请求。

根据 fido 规范,将以下响应发送到authenticatorGetInfo,

没有 cbor

{
3 = "EF6CF220-7066-4808-AA22-345C7888BC3F";
1 = ("FIDO_2_0");
}

使用 cbor 编码

[162、1、129、104、70、73、68、79、95、50、95、48、3、120、36、69、70、54、67、70、50、50、48、45、55 , 48, 54, 54, 45, 52, 56, 48, 56, 45, 65, 65, 50, 50, 45, 51, 52, 53, 67, 55, 56, 56, 56, 66, 67, 51 , 70]

发送响应后,收到 Fido2 一致性工具抛出的以下错误。我的问题是,CBOR 编码有什么问题吗?或者我在这里做错了什么?

0 投票
1 回答
1006 浏览

android - 如何测试 iOS fido2 BLE 身份验证器的实现?

我正在尝试为 iOS 平台开发一个 fido2 BLE 身份验证器。据我所知,android可以用OSX桌面chrome(支持fido2)和fido2一致性工具进行测试。对于 iOS,我知道的唯一方法是使用“fido2 一致性工具”,它有很多错误并且无法正确测试应用程序。

还有其他方法可以测试 fido2 iOS 身份验证器的实现吗?

提前致谢。

0 投票
0 回答
96 浏览

android - FIDO2 MAKE_CREDENTIAL 响应问题

我正在开发 FIDO2 Android 身份验证器。我刚刚收到来自 webauthn 客户端的 MAKE_CREDENTIAL 请求。接着

  1. 创建的凭据数据包括 AAGUID、凭据长度、凭据 ID、公钥。
  2. 公钥将包含曲线名称、算法名称、密钥类型、x 和 y 坐标。
  3. 然后我形成了 Auth Data,其中包括 rpIdHash、flags、signCount 和 attested Credential 数据。
  4. 然后我将所有这些数据以 MSG、LLEN、HLEN、DATA 格式逐块发送到 webauthn 客户端卡盘。

    {“fmt”:“android-safetynet”,“authData”:“9569088f1ecee……”,“attStmt”:{“ver”:“14366019”,“响应”:“65794a68624763……”}}

我正在使用上述格式的 Android SafetyNet 证明。但是我没有得到 webauthn 服务器的任何响应。我使用 ANDROID_ID(制造商 ID)作为 AAGUID。这是对的吗?

我分析并调试了我的代码。我找不到任何问题。请帮助我继续流程。

0 投票
0 回答
336 浏览

android - 发送 MAKE_CREDENTIAL(0x01) 响应时出现超时问题

我正在开发 Android Authenticator。发送 MAKE_CREDENTIAL 响应时出现以下异常。我在使用 webauthn.io 站点进行调试时遇到了这个问题。还尝试使用https://webauthn.me/debugger#

操作超时或不允许。请参阅:https ://w3c.github.io/webauthn/#sec-assertion-privacy 。

但是我正在使用Timer并在收到MAKE_CREDENTIAL请求后每 500 毫秒TimerTask发送一次 kKeepAliveMillis。我不知道为什么我会遇到这个问题。请帮我解决这个问题。

0 投票
1 回答
270 浏览

javascript - JS - WebAuthn - 如何禁用或检测屏幕锁定(PIN 码)选项

我正在寻找一种没有“屏幕锁定”选项的通过指纹进行身份验证的解决方案

我尝试将身份验证器附件更改为“平台”,并使用 uvi 添加一些扩展,uvm 选项一无所获:\ https://developer.mozilla.org/en-US/docs/Web/API/PublicKeyCredentialCreationOptions/extensions

禁用 PIN 码选项或检测手指屏幕身份验证

0 投票
2 回答
1482 浏览

authentication - 使用 CTAP2 规范的移动验证器

我正在寻找使用 CTAP2 规范将智能手机设置为身份验证器的用例/场景。

我正在寻找用户设置浏览器以与他们的智能手机交互的用例,就像使用 Yubikey 或其他类似的安全密钥时一样。我已经阅读了与它相关的所有文档,但不幸的是,我总是得到一篇使用 Yubikeys / 其他 USB 设备作为身份验证器的文章。我期待一些手机作为漫游身份验证器的交互。

通过从概念上查看文档和 CTAP 规范,我知道这可以通过在电话和主机之间建立一些连接来完成:

  • 蓝牙
  • NFC
  • USB

建立连接后,移动验证器可以执行 CTAP2 协议,以便浏览器将其视为漫游验证器。我也期待看到使用一些支持 BLE 的设备的身份验证过程。我已经尝试在网站上使用 yubikey 安全密钥登录。但我想使用蓝牙启用 Thetis BLE 密钥或手机本身来实现相同的流程登录机制。

任何见解都会非常有帮助。我也期待着研究这个特定用例的人们进行相互讨论。

0 投票
1 回答
1012 浏览

android - Android 上的 Chrome 是否支持使用 Webauthn / FIDO2 对安全密钥进行用户验证?

我正在构建一个使用Webauthn进行无密码登录的网站。目前,这在适用于 Windows 和 macOS 的 Chrome 上运行良好。

我正在使用 YubiKey 5 来测试我的实现,它支持使用 PIN 来提供用户验证,而不仅仅是普通的用户存在(即用户触摸键的按钮)。

Windows PIN 提示符

但是,当我尝试在 Android 9 上的 Chrome 76 上使用同一站点时,系统不会提示我输入密码,因此未设置用户验证标志,并且我的登录(按设计)失败。

谷歌在 Android 7+ 兼容 FIDO2 方面做了很多工作,但除了一篇过时的文章提到:

我们还在研究 CTAP 2 和 WebAuthn 支持的更高级流程,例如 PIN 保护的身份验证器、本地帐户选择(而不是输入用户名或密码)和指纹注册。

现在支持指纹注册;即使 Windows 和 macOS 版本的 Chrome 76 支持PIN 保护的身份验证器,是否仍然不受支持?

这是我呼吁的相关部分navigator.credentials.create(),应该要求用户验证:

0 投票
2 回答
3666 浏览

android - 如何在 Android 应用中实现 WebAuthn?

我打算使用 WebAuthn 进行身份验证,如演示站点https://webauthn.io所示

事实证明,Android 的 WebView(和它的 iOS 对应物)没有实现这一点,并且明确指出这不会发生。一个是被提及使用 Chrome 选项卡。

但我想做的是在移动设备上,即在应用程序内部,不要为此使用任何 HTML/JavaScript。在应用程序中,我想使用类似于 Firebase 的 Java 库,但它确实提供了使用通过 WebAuthn 设置的相同帐户的方法,或者通过应用程序上的库设置帐户,以后可以访问在浏览器中使用 WebAuthn。

我遇到了 AppAuth https://github.com/openid/AppAuth-Android并且不确定这是否与 WebAuthn 有关。

我的目标是使用无密码和无电子邮件的身份验证系统,以便用户通过 WebAuthn 在 Web 上使用它,并让他们的应用程序代表他们通过库访问后端。不需要某人在 Facebook、Google 或任何其他提供商拥有用户帐户的系统。

我想避免在 Android 应用程序中使用 Chrome 选项卡之类的解决方法,它应该全部用 Java 处理,并通过 Fragments 进行用户交互。

我有哪些选择?FIDO2 是否能够提供所需的一切?它与 OAuth 2.0 有何关系?