问题标签 [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.
javascript - Fido U2F客户端javascript源代码
我正在寻找一个 JavaScript 源代码(客户端)来在 Fido U2F 令牌和 Google Chrome(版本 41.0.2272.89 m)之间进行通信。
请帮我
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 的问题吗?有更新的吗?
到目前为止,这是我的代码:
java - 用于 Yubico OpenPGP 智能卡的 PGP 数据加密
我正在尝试在 Java 应用程序中实现基于 Yubikey NEO OpenPGP 智能卡小程序的 PGP 加密。这似乎是一门黑暗的艺术,用谷歌搜索这些东西并不容易,但这是我到目前为止的地方:
初始化卡,使用 gpg 工具生成密钥。它通常有效。我有
.asc
格式的公钥并设法将其加载到org.bouncycastle.openpgp
javax.smartcardio
使用API连接到 USB 加密狗中的智能卡。选择 OpenPGP 小程序
/li>成功向卡出示正确的 PIN 码
/li>发送准成功(见下文)
decipher
命令当 时
data = "xxxx".toByteArray()
,结果为SW=9000
(= success) 但不返回任何数据。这是一个幼稚的测试,因为第 52 页的OpenPGP 小程序文档提到命令输入(填充指示字节除外)应在加密前根据 PKCS#1 进行格式化。
我不知道如何加密数据并将其转换为 PKCS#1 格式。
我还尝试阅读Yubico OpenPGP 卡实现测试,但它只提供了另一个“失败”示例(第 196 行)。我尝试运行它,但结果不同:测试预期SW=0050
(指示异常?)而我得到的是SW=6f00
(根据本文档,没有精确的诊断)。
我用整个代码创建了一个GitHub 存储库。它是用 Kotlin 编写的,但应该易于阅读。
authentication - FIDO U2F:签名方法的独立性?
FIDO U2F 标准可以用任意的签名方式来实现吗?如果需要使用特定方法,我找不到任何信息。
进一步的问题:是否可以在注册步骤向依赖方发送多个公钥(例如,如果使用一次性签名方案)。
javascript - Javascript / 浏览器加密:使用 Yubikey
假设我想加密浏览器内的数据(通过 JavaScript,使用 PGP)。由于将密钥存储在浏览器(LocalStorage)中并不保存,因此我希望将它们放在外部设备上,例如提供 PGP 加密/解密的YubiKey 。
因此,用户写了一些秘密文本,插入他的 YubiKey,按下一些按钮,秘密文本进入 YubiKey,后者对其进行加密(而用于加密的密钥保留在 YubiKey 上,然后返回加密文本。解密相同.
这样的事情在技术上可行吗?如果没有,我还能将加密密钥保存在哪里?
github - 如何在没有手机的情况下在 GitHub 上设置 YubiKey 2FA?
我没有智能手机,只有当我知道我可能真的需要它来联系某人时(即几乎从不),我才会携带我便宜的哑机。一般来说,我没有可用作可信设备的手机。
我确实有 YubiKey Neo 和笔记本电脑。
GitHub 的 2FA 似乎需要一部受信任的支持 SMS 的手机才能开始配置它。
- 有没有办法绕过这个要求?
- 这个要求有充分的理由吗?正如已经指出的那样,“每个人都有一个”不是一个好的理由。
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 地址或域访问网站?
yubico - 如何从 Yubico 设备获取密钥
我没有在https://developers.yubico.com/上找到获取密钥的库。有谁知道按下按钮后如何从 Yubico 获得一个时间键?
java - 如何在 Java 中获取 U2F Token(例如 Yubikey Neo)的公钥和私钥
我正在尝试创建一个应用程序,该应用程序可以从 Java 语言中的 Yubikey Neo 等 U2F 令牌中检索公钥和私钥。我尝试在控制台中使用一个简单的扫描仪从 Yubikey Neo 获取任何内容,但它不起作用,因为它不会被打印(可能是因为格式),不像 OTP 会在记事本中打印出来,所以它可以是被读者捕获。
我知道像 Yubico 一样,它只提供 Javascript 中的实现,当用户触摸 U2F 令牌的按钮时能够检索公钥,但直到现在我还没有在 Java 中找到任何能够做到这一点的库。有没有办法从 U2F 令牌中获取公钥和私钥?
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)。
仍然不确定我是否走在正确的轨道上,尽管我正在尝试设计这个。