问题标签 [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 投票
1 回答
129 浏览

webauthn - 确保使用 FIDO2 认证的安全密钥

我们计划为包含敏感数据的 IT 系统引入 FIDO2 安全密钥和无密码登录,并希望确保仅使用FIDO2 认证的安全密钥。我们如何在注册过程中识别这些密钥并拒绝未经认证的密钥?WebAuthn 是否提供有关密钥的任何此类信息?有可能吗?

我们的目标是防止使用未正确实施的安全密钥,例如未将私钥存储在安全硬件中或跳过用户验证的密钥。我们希望防止人们无意或有意地损害安全性。

IT 系统具有 Web 用户界面。因此与 FIDO2 密钥的通信将通过 HTML / Javascript / WebAuthn。

我们知道我们可以购买经过认证的安全密钥,集中配置它们,然后将它们分发给用户。然而,这个过程成本高且缓慢。因此,我们希望用户可以自带或购买自己的 FIDO2 密钥并自行注册。

0 投票
1 回答
100 浏览

android - 棒棒糖上的 Fido2

我想在我的应用程序中实现 Fido2。我在这里找到了 webauthn 实现https://github.com/duo-labs/android-webauthn-authenticator,它正在使用 BiometricPrompt。它应该如何在没有指纹功能的旧设备上工作?我知道有兼容的 BiometricPrompt 应该在 Android 9 以下工作,但是 Android 5 呢?

0 投票
1 回答
176 浏览

ios - iOS Fido2 BLE 身份验证器注册响应问题

我正在构建一个 iOS ble fido2 身份验证器。收到注册请求后,将以下注册响应(NONE 证明)作为 3 个块(块大小 101)发送。还确保成功接收到块但是 webauthn 客户端没有发送任何错误/确认/没有 ui 更改发生。

被这个问题困扰了很久。无法找出以下响应出了什么问题。

[131、0、237、0、163、1、100、110、111、110、101、2、88、224、116、166、234、146、19、201、156、47、116、178、36 , 146, 179, 32, 207, 64, 38, 42, 148, 193, 169, 80, 160, 57, 127, 41, 37, 11, 96, 132, 30, 240, 69, 217, 93, 96 , 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 51, 85, 191, 68, 43, 240, 76 , 144, 137, 91, 65, 40, 160, 206, 219, 169, 96, 183, 153, 21, 21, 63, 46, 204, 106, 131, 137, 30, 106, 102, 13, 92 , 99, 165, 1, 2, 3, 38, 32, 1, 33, 152, 32, 24, 138, 24, 231, 24, 213, 24, 124, 24, 203, 24, 71, 24, 212 , 24, 46, 16, 24, 184, 24, 207, 24, 210, 24, 170, 24, 59, 24, 99, 24, 39, 24, 250, 24, 81, 24, 98, 24, 27 , 24, 25, 24, 39, 24, 75, 24, 202, 24, 62, 24, 163, 24, 64, 24, 126, 24, 214, 24, 63, 24, 247, 24, 197, 34 , 152, 32, 12, 24, 214, 24, 121, 24, 78, 24, 132, 24, 152, 24, 104, 12, 18, 24, 120, 24, 156, 24, 177, 24, 101 , 24, 45, 24,227、24、177、24、213、24、151、24、76、24、136、24、121、24、39、24、47、24、153、24、196、24、24、24、100、 24、82、24、163、24、83、24、193、24、38、3、160]

[131, 0, 237, 0, ......] 131 => msg 0 => LLen 237 => HLen 0 => 成功后跟 authData ....

AUTHDATA (224 字节) [116, 166, 234, 146, 19, 201, 156, 47, 116, 178, 36, 146, 179, 32, 207, 64, 38, 42, 148, 193, 169, 80, 160, 57, 127, 41, 37, 11, 96, 132, 30, 240, 69, 217, 93, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 51, 85, 191, 68, 43, 240, 76, 144, 137, 91, 65, 40, 160, 206, 219, 169, 96, 183, 153, 21, 21, 63, 46, 204, 106, 131, 137, 30, 106, 102, 13, 92, 99, 165, 1, 2, 3, 38, 32, 1, 33, 152, 32, 24, 138, 24, 231, 24, 213, 24, 124, 24, 203, 24, 71, 24, 212, 24, 46, 16, 24, 184, 24, 207, 24, 210, 24, 170, 24, 59, 24, 99, 24, 39, 24, 250, 24, 81, 24, 98, 24, 27, 24, 25, 24, 39, 24, 75, 24, 202, 24, 62, 24, 163、24、64、24、126、24、214、24、63、24、247、24、197、34、152、32、12、24、214、24、121、24、78、24、132、 24, 152, 24, 104, 12, 18, 24, 120, 24, 156, 24, 177, 24, 101, 24, 45, 24, 227, 24, 177, 24, 213, 24, 151, 24,76, 24, 136, 24, 121, 24, 39, 24, 47, 24, 153, 24, 196, 24, 24, 24, 100, 24, 82, 24, 163, 24, 83, 24, 193, 24, 38]

证明凭证数据(187 字节) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 51, 85, 191, 68, 43、240、76、144、137、91、65、40、160、206、219、169、96、183、153、21、21、63、46、204、106、131、137、30、106、 102, 13, 92, 99, 165, 1, 2, 3, 38, 32, 1, 33, 152, 32, 24, 138, 24, 231, 24, 213, 24, 124, 24, 203, 24, 71, 24, 212, 24, 46, 16, 24, 184, 24, 207, 24, 210, 24, 170, 24, 59, 24, 99, 24, 39, 24, 250, 24, 81, 24, 98, 24, 27, 24, 25, 24, 39, 24, 75, 24, 202, 24, 62, 24, 163, 24, 64, 24, 126, 24, 214, 24, 63, 24, 247, 24, 197, 34, 152, 32, 12, 24, 214, 24, 121, 24, 78, 24, 132, 24, 152, 24, 104, 12, 18, 24, 120, 24, 156, 24, 177、24、101、24、45、24、227、24、177、24、213、24、151、24、76、24、136、24、121、24、39、24、47、24、153、 24、196、24、24、24、100、24、82、24、163、24、83、24、193、24、38]

0 投票
1 回答
420 浏览

java - 用于服务器端指纹验证的 WebAuthn

对于我现有的 Java Web 应用程序,我想启用指纹身份验证。以下是认证要求:

  • 服务器应存储指纹的生物特征,指纹应与服务器上存储的生物特征匹配
  • 这允许用户使用支持的指纹扫描仪从任何系统登录
  • 我也希望 WebAuthn 的使用不会限制支持的指纹扫描仪,因为它是标准协议

我知道我可以将 WebAuthn 框架与 Mac OS TouchID 或 Windows Hello 一起使用。这允许使用存储在本地系统而不是服务器上的生物特征来完成指纹注册和验证。

我想知道是否可以使用 WebAuthn 框架来验证存储在服务器端的指纹。任何指向相关示例或教程的链接都将对我的 POC 有所帮助。

0 投票
4 回答
4325 浏览

ios - iOS/Safari 上的 Webauthn 状态如何?

几天后我正在做一个关于 FIDO2/Webauthn 标准的演示,我很高兴在 Yubico 的网站上看到这篇文章,指出苹果已经像 Android 多年来一样通过 NFC 增加了对 FIDO 身份验证的支持。我让我的一些同事在运行 iOS 13.1 的较新设备上访问了各种 Webauthn 测试站点(webauthn.me、webauthn.io 等),但它们都显示错误,指出不支持浏览器(safari 和 chrome )。您是否需要做一些事情来启用此功能,或者我们是否正在等待 Apple 的更新以启用该功能?

0 投票
1 回答
563 浏览

identityserver4 - 带有 WebAuthN 的 Identity Server 4 - 使用 GrantType (FIDO 2.0)

我正在使用 Identity Server 4 通过 WebAuthN ( https://w3c.github.io/webauthn/ ) 对用户进行身份验证。

我有多个客户端访问 api 客户端。我的 api 客户端负责决定使用哪个身份验证提供程序、传递数据(服务器到服务器、服务器到外部 api)并协调身份验证过程。

我们使用的一个身份验证提供程序是我们拥有的身份服务器 4,这是我们实现 WebAuthN 的地方。

我不确定哪种是在 Identity Server 4 中实现此功能的推荐方法。我只有 2 个选项

  1. 在身份服务器上创建 API 端点以对用户凭据进行身份验证
  2. 创建扩展授权类型并使用新授权类型调用 TokenEndpoint API(我的扩展授权类型将是内置混合授权类型后跟 WebAuthN 代码的混合)。

从安全的角度来看,这两种方式都有效(不打开一个洞)并且适合 ID4 还是有其他方式?

0 投票
1 回答
102 浏览

webauthn - 登录尝试暴露的用户名?

我正在尝试扩展我的应用程序以支持 WebAuthn 登录。到目前为止,我已经在本地服务器上成功设置了一个测试应用程序(使用这个https://github.com/lbuchs/WebAuthn PHP 实现)。

我想我现在基本上理解了这个过程,但我有一个安全问题:当你使用 WebAuthn 作为唯一的身份验证因素(这应该是可能的)时,用户只输入他想要的用户名并通过指纹或他的指纹提供他的凭据YubiKey什么的。在此图中(https://developers.yubico.com/WebAuthn/Libraries/Using_a_library.html),据说服务器返回了与用户名关联的 credentialIds 列表。然后,身份验证者回答它拥有私钥的质询。

我的问题是:如果攻击者想找出存在哪些用户名,他可以尝试提供不同的用户名并测试服务器是否返回任何 credentialIds。这不是安全问题吗?通常攻击者不应该从失败的登录尝试中获得任何信息。

0 投票
1 回答
330 浏览

javascript - 在 Cypress 中模拟 U2F 令牌以自动测试 Web 登录

我想在 Cypress + TS 上自动登录使用 U2F 和 USB 安全密钥的网站。我的脚本应该模拟密钥并将其传递给浏览器。

现在我一直在使用https://github.com/github/SoftU2F这是一个很好的解决方案,但在测试运行时仍然需要有人在场。

试图申请:https ://www.npmjs.com/package/virtual-u2f但是,虽然它正确生成密钥,但似乎没有任何东西传递给浏览器。

有没有人在 Js/Ts 上自动化那个登录之王?将不胜感激任何想法

0 投票
1 回答
227 浏览

security - 使用 WebAuthN 可以拒绝某些类型的身份验证方法 FIDO2)

使用 WebAuthN ( https://w3c.github.io/webauthn/ ) 进行身份验证时,是否可以隐藏某些身份验证选项?

例如,在 webauthn.io 上进行测试时,我的 android 设备显示了可用的身份验证类型,如硬件密钥、蓝牙和指纹。我是否可以以某种方式将其配置为不接受硬件密钥和蓝牙。

此外,在选择并使用我的指纹登录时,如果我使用错误的手指强制它失败,它默认会询问我的解锁图案,如果我输入我的解锁图案,我仍然会成功。在我看来,解锁图案并不安全,因为脏屏幕会在屏幕上留下带有污迹的图案。父母也把别针给孩子。我可以停止这种行为吗?如果指纹失败,则改为错误?

0 投票
0 回答
169 浏览

iis - 如何拒绝嵌入式用户代理访问授权服务器

我在 PKCE 中使用授权代码流,如果客户端使用嵌入式用户代理,我想拒绝访问授权服务器。我使用 IdentityServer 4 作为授权服务器,使用 Asp.net core 2.2 作为 API,两者都在 IIS 8 上运行。

我已经搜索了有关如何拒绝本机应用程序上的嵌入式用户代理访问授权服务器的解决方案,但我找不到有关如何实现/配置它的任何步骤。有没有人可以提供有关如何拒绝此类应用程序访问的步骤?

提前致谢