问题标签 [fido-u2f]

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 投票
2 回答
274 浏览

fido-u2f - 为什么 U2F 登录是一个两步协议?

理论上,使用注册令牌登录可以在一个步骤中完成......

  1. 服务器使用登录表单发送挑战
  2. 用户使用用户名、密码和签名的质询进行响应。

然而,FIDO 协议增加了一个额外的步骤......

  1. 用户提交用户名/密码
  2. 服务器向用户发送挑战
  3. 客户提交签名挑战

附加步骤的安全原理是什么?

0 投票
1 回答
323 浏览

authentication - U2F FIDO - 应用和挑战参数

当用户想要注册他的设备时,依赖方会提供一些参数,这些参数是:

  • 一个挑战,
  • 应用程序ID,
  • 协议版本

然后,用户通过触摸发送这些信息的设备上的按钮来执行“用户存在测试”:

dictionary RegisterResponse { DOMString registrationData; DOMString clientData; };

依赖方对这些信息做他必须做的事情,这个过程就完成了!

但我不明白以下部分。基于 U2F 协议规范:

注册请求消息 - U2F_REGISTER 此消息用于启动 U2F 令牌注册。FIDO Client首先联系依赖方获取challenge,然后构造注册请求消息。注册请求消息有两部分: 挑战参数是客户端数据的 SHA-256 哈希,FIDO 客户端准备的字符串化 JSON 数据结构。除其他外,客户端数据包含来自依赖方的质询(因此是参数的名称)。应用程序参数 [32 字节]。application 参数是请求注册的应用程序的应用程序标识的 SHA-256 哈希。(有关详细信息,请参阅参考书目中的 [FIDOAppIDAndFacets]。)

https://fidoalliance.org/specs/fido-u2f-v1.0-nfc-bt-amendment-20150514/fido-u2f-raw-message-formats.html

这部分在哪一步运行?

先感谢您 !

0 投票
0 回答
734 浏览

challenge-response - FIDO U2F 密钥:Chrome 中的签名身份验证质询返回错误代码 4(适用于 FF)

我们正在尝试通过 Yubico FIDO U2F 安全密钥将身份验证添加到我们的管理网站。这在安装了 U2F 附加组件的 FireFox 中有效,但签署挑战(使用 javascript)登录时不断返回 {errorCode: 4}。

有谁知道为什么会发生这种情况或我如何调试出了什么问题?

提前致谢。

细节

我们的网站是用 Java 和 ZK 框架制作的。在服务器端,我们使用 java-u2flib-server 库。我们使用高级 api 函数 u2f.register 和 u2f.sign 使用 zul 文件中的 javascript 在客户端对请求进行签名。

登记

要注册密钥,用户首先输入名称和密码并提交。服务器创建 RegistrationData 并转到第二个页面。在那里,我们使用 javascript 函数 u2f.register。在回调中,我们将带有 DeviceRegistration 的响应发送到服务器。

这适用于 FireFox 和 Chrome。

认证/登录

登录方式类似。提交第一页时,服务器向第二页提供 DeviceRegistration json 和质询。该页面使用 u2f.sign 并在回调中将 DeviceResponse 发送到服务器。

这在 Firefox 中有效,但在 Chrome 中,u2f.sign 不断返回 {errorCode: 4}。

根据文档,这意味着设备不知道接收到的 DeviceRegistration 但这似乎不太可能,因为相同的代码在 Firefox 中工作,我检查了它们是否从服务器接收到相同的 json。

错误代码 4 - DEVICE_INELIGIBLE -
呈现的设备不符合此请求的条件。对于注册请求,这可能意味着令牌已经注册,对于签名请求,这可能意味着令牌不知道所提供的密钥句柄。

0 投票
1 回答
210 浏览

wso2 - Wso2 身份服务器 5.3.0 和 fido 令牌

我正在使用 WSO2 IS 5.3。

我将它与 U2F 集成。

当我在身份验证中使用它时,它给了我一个空白页面(https://localhost:9443/authenticationendpoint/fido-auth.jsp)但是当我将它与以前的版本一起使用时它工作得很好!

上一个版本和 Fido 代币有什么问题?

为什么 fido 令牌只适用于 (google-chrome) 而不是 (Firefox) ?

0 投票
1 回答
90 浏览

cryptography - Erlang :crypto, oid 到 NamedCurve

当我解码证书时,我得到以下数据:

通过快速搜索,我知道 namedCurve 对应于:secp256r1. 但是,我正在寻找可以为我进行翻译的现有功能。例如,我们可以使用函数找到有关 PublicKeyAlgorithm 的信息pkix_sign_types。命名曲线是否有相应的功能?

0 投票
1 回答
169 浏览

digital-signature - U2F注册签名验证失败

使用我的 U2F 令牌之一,NIST P-256 ECDSA 签名验证在 U2F_REGISTER 响应上失败。

我正在根据此协议描述工作:https ://fidoalliance.org/specs/fido-u2f-v1.0-nfc-bt-amendment-20150514/fido-u2f-raw-message-formats.html

我计算00 (1 byte) + application (32 bytes) + challenge (32 bytes) + keyhandle (64 bytes this time) + user_public_key (1 + 32 + 32 bytes).

然后我打电话ecdsa.Verify(user_public_key, hash, r, s)

对于我拥有的其中一个 U2F 令牌,ecdsa.Verify 返回 true(好),但对于另一个令牌(参见上面的字节),它返回 false。在上面的例子中我做错了什么?

0 投票
0 回答
457 浏览

electron - Electron 中的 U2F 错误

file:///path/to/index.html通过 Electron加载时,出现以下两个错误:

chrome-extension://kmendfapggjehodndflmmgagdbamhnfd/u2f-comms.html Failed to load resource: net::ERR_NOT_IMPLEMENTED

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('chrome-extension://kmendfapggjehodndflmmgagdbamhnfd') does not match the recipient window's origin ('null').

我没有使用 U2F(可能是一些 npm 依赖项?),并且想知道如何禁用/删除它。无论如何,它不会影响我的应用程序。

0 投票
2 回答
713 浏览

android - 获取与 com.google.android.gms.fido.u2f.api 一起使用的 Android 应用程序的有效 facetID

我有两个关于 Android FIDO U2F API 中的 appID 的问题。

是否可以使用 facetID 直接识别我的应用程序,或者它是否需要是指向包含有效 facetID 的 JSON 的 HTTPS URL?我怀疑可能无法直接使用 facetID 作为 appID(尽管官方 FIDO 规范应该允许这样做)。

我的另一个问题是关于识别我的应用程序的 facetID。官方 FIDO 规范为 Android 应用定义了 facetID ,如下所示:

在 Android [ANDROID] 案例中,FacetID 必须是从 APK 签名证书 [APK-Signing] 的 Base64 编码 SHA-1 哈希派生的 URI:

当我查看 Google Samples 中的一个工作示例时,使用的 facetID 似乎包含其他内容。

有问题的 facetID(绝对不是 base64):

这是包含相关 facetID的JSON 。

如果 API 不期望 base64 编码的哈希,它期望什么格式(以及如何生成它)?

0 投票
1 回答
340 浏览

fido-u2f - 如何与现有的注册/登录功能保持 FIDO 兼容

我有具有注册和登录功能的现有网站。我想让这个过程 FIDO 符合 UAF / U2F 和后来的 FIDO2 的实现。不幸的是找不到一步一步的系列教程。我想用 PHP 来实现这个。

0 投票
1 回答
453 浏览

offline - 离线环境下的FIDO U2F

我想将 U2F 协议用于离线应用程序。这个应用程序没有连接到互联网,我想知道它是否可以在离线环境中使用 U2F,因为它需要一些来源。请注意 localhost 是允许的,并且可能可以用作来源,但我不确定这是否安全或不安全,以及它是否可能导致人们能够复制密钥。