问题标签 [yubico]

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 回答
2994 浏览

javascript - Fido U2F客户端javascript源代码

我正在寻找一个 JavaScript 源代码(客户端)来在 Fido U2F 令牌和 Google Chrome(版本 41.0.2272.89 m)之间进行通信。

请帮我

0 投票
2 回答
577 浏览

fido-u2f - U2F 与多个 FacetID 集成,无需 Chrome 扩展,但 u2f-api.js

我尝试在我的 Web 应用程序中实现 U2F。由于该应用程序可用于多个 URL,因此我必须添加一个具有有效 FacetID 的 JSON 文件,如规范中所述。Yubico 在他们的网站上对该规范有一个简短的总结。

不幸的是,当我调用u2f.register(...)Method 时,我得到错误代码 2,这意味着 AppID 有问题。

我的 AppID 是 JSON 文件的 URL。如规范中所述,我添加application/fido.trusted-apps+json为内容类型。无论如何,这个 URL 永远不会被调用。

我正在使用最新的 Chrome (v46.0.2490.80m)。如此处所述,不再需要 Chrome 扩展程序。

此外,我在 Chromium 项目上发现了一个已关闭的错误报告,它告诉我 U2F 是根据规范实现的。

我使用的是u2f-api.js而不是 Chrome 扩展程序。

这是 u2f-api.js 的问题吗?有更新的吗?

到目前为止,这是我的代码:

0 投票
1 回答
1213 浏览

java - 用于 Yubico OpenPGP 智能卡的 PGP 数据加密

我正在尝试在 Java 应用程序中实现基于 Yubikey NEO OpenPGP 智能卡小程序的 PGP 加密。这似乎是一门黑暗的艺术,用谷歌搜索这些东西并不容易,但这是我到目前为止的地方:

  1. 初始化卡,使用 gpg 工具生成密钥。它通常有效。我有.asc格式的公钥并设法将其加载到org.bouncycastle.openpgp

  2. javax.smartcardio使用API连接到 USB 加密狗中的智能卡。

  3. 选择 OpenPGP 小程序

    /li>
  4. 成功向卡出示正确的 PIN 码

    /li>
  5. 发送准成功(见下文)decipher命令

    当 时data = "xxxx".toByteArray(),结果为SW=9000(= success) 但不返回任何数据。这是一个幼稚的测试,因为第 52 页的OpenPGP 小程序文档提到

    命令输入(填充指示字节除外)应在加密前根据 PKCS#1 进行格式化。

我不知道如何加密数据并将其转换为 PKCS#1 格式。

我还尝试阅读Yubico OpenPGP 卡实现测试,但它只提供了另一个“失败”示例(第 196 行)。我尝试运行它,但结果不同:测试预期SW=0050(指示异常?)而我得到的是SW=6f00(根据本文档,没有精确的诊断)。

我用整个代码创建了一个GitHub 存储库。它是用 Kotlin 编写的,但应该易于阅读。

0 投票
1 回答
107 浏览

authentication - FIDO U2F:签名方法的独立性?

FIDO U2F 标准可以用任意的签名方式来实现吗?如果需要使用特定方法,我找不到任何信息。

进一步的问题:是否可以在注册步骤向依赖方发送多个公钥(例如,如果使用一次性签名方案)。

0 投票
1 回答
627 浏览

javascript - Javascript / 浏览器加密:使用 Yubikey

假设我想加密浏览器内的数据(通过 JavaScript,使用 PGP)。由于将密钥存储在浏览器(LocalStorage)中并不保存,因此我希望将它们放在外部设备上,例如提供 PGP 加密/解密的YubiKey 。

因此,用户写了一些秘密文本,插入他的 YubiKey,按下一些按钮,秘密文本进入 YubiKey,后者对其进行加密(而用于加密的密钥保留在 YubiKey 上,然后返回加密文本。解密相同.

这样的事情在技术上可行吗?如果没有,我还能将加密密钥保存在哪里?

0 投票
1 回答
335 浏览

github - 如何在没有手机的情况下在 GitHub 上设置 YubiKey 2FA?

我没有智能手机,只有当我知道我可能真的需要它来联系某人时(即几乎从不),我才会携带我便宜的哑机。一般来说,我没有可用作可信设备的手机。

确实有 YubiKey Neo 和笔记本电脑。

GitHub 的 2FA 似乎需要一部受信任的支持 SMS 的手机才能开始配置它。

  • 有没有办法绕过这个要求?
  • 这个要求有充分的理由吗?正如已经指出的那样,“每个人都有一个”不是一个好的理由。
0 投票
1 回答
563 浏览

google-chrome - 具有更改主机名/IP 地址的站点上的 FIDO U2F

我有一种情况,我想在负载均衡器的管理界面上实现 FIDO U2F(使用 YubiKey),以便在登录后,为了管理系统 - U2F 必须用作额外的身份验证层。

在系统的整个生命周期内 - IP 地址和用于访问它的主机名通常会发生变化(例如,一旦它是https://192.168.0.20/,那么它就是https://lb-admin.company.com/,然后是别的东西,等等)。

问题是针对 appId(站点的 URL)注册了一个密钥,然后 appId 被编码在 keyHandle 中。有没有办法在注册密钥时允许多个 appId 甚至删除 appId 限制?

换句话说 - 注册一个 YubiKey,然后从网站的任何入口点使用它,或者即使使用与最初注册密钥不同的 IP 地址或域访问网站?

0 投票
1 回答
260 浏览

yubico - 如何从 Yubico 设备获取密钥

我没有在https://developers.yubico.com/上找到获取密钥的库。有谁知道按下按钮后如何从 Yubico 获得一个时间键?

0 投票
1 回答
1887 浏览

java - 如何在 Java 中获取 U2F Token(例如 Yubikey Neo)的公钥和私钥

我正在尝试创建一个应用程序,该应用程序可以从 Java 语言中的 Yubikey Neo 等 U2F 令牌中检索公钥和私钥。我尝试在控制台中使用一个简单的扫描仪从 Yubikey Neo 获取任何内容,但它不起作用,因为它不会被打印(可能是因为格式),不像 OTP 会在记事本中打印出来,所以它可以是被读者捕获。

我知道像 Yubico 一样,它只提供 Javascript 中的实现,当用户触摸 U2F 令牌的按钮时能够检索公钥,但直到现在我还没有在 Java 中找到任何能够做到这一点的库。有没有办法从 U2F 令牌中获取公钥和私钥?

0 投票
1 回答
545 浏览

fido-u2f - 具有多方面 App ID 的 U2F

我们一直在我们的身份验证网络应用程序上直接使用 U2F,主机名作为我们的应用程序 ID ( https://auth.company.com ),并且运行良好。但是,我们希望能够从通过 HTTP API 与身份验证服务器通信的其他应用程序(和主机名,例如https://customer.app.com )向身份验证服务器进行身份验证。

我可以通过 API 调用生成签名请求和其他内容并将它们返回给客户端应用程序,但它在服务器端(身份验证服务器)失败,因为应用程序 ID 未验证(客户端使用他们自己的主机名作为应用程序 ID) . 这是可以理解的,但我应该如何处理呢?我已经阅读了有关方面的内容,但我根本无法让它发挥作用。

客户端应用程序 JS 是这样的:

一段时间后,这给了我一个错误代码 5(超时错误)。我没有看到对 /facets 的任何请求。有没有办法解决这个问题,或者我在叫错树(或不同的森林)?

————</p>

好的,经过几个小时的研究;我很确定 Firefox U2F 插件的这个可怕的部分是我的一些问题的根源:

https://github.com/prefiks/u2f4moz/blob/master/ext/appIdValidator.js#L106-L110

它本质上是说,如果 appID 的方案是 http,则仅在它与页面的主机完全相同的情况下才允许它(它继续执行获取可信构面 JSON 的行为,但仅适用于 https)。

仍然不确定我是否走在正确的轨道上,尽管我正在尝试设计这个。