什么是 YubiKey,它是如何工作的?

信息安全 验证 密钥管理 多因素 优比键 硬件令牌
2021-08-19 09:10:47

YubiKeys 是如何工作的?有没有其他选择?

这是一张照片: 优比键

4个回答

据我了解,Yubikey 就像一个 USB 键盘。您将其插入计算机,将光标放在表单域中,按下 Yubikey 上的按钮,它会向计算机发送一个 44 个字符的文本字符串,就像您正在输入这 44 个字符一样。计算机不知道您键入它或生成它的 Yubikey 之间的区别。

像带有 Yubikey 插件的 Wordpress 网站,或 Firefox 中的 Lastpass 插件,或任何其他有 Yubikey 选项的网站,都有一个带有用户名、密码和 Yubikey 密码的登录表单。您输入您的用户名和密码,将光标放在 Yubikey 字段中,然后按 Yubikey 按钮,然后在字段中输入 Yubikey 密码。

然后提交表单,在 Yubicloud 中验证 Yubikey。网站检查输入的 Yubikey 密码是否有效。Yubikey 本身不连接到 Yubicloud。它只是一个生成字符串的设备,它像键盘一样发送出去,它不连接到互联网或除了那个键盘之外的任何东西。

在所有这些工作之前,您需要在网站上更新您的帐户以使用 Yubikey。这意味着您需要将密钥链接到帐户。这样,Yubicloud 可以检查生成的代码并根据您的帐户对其进行验证。

该网站当然需要实现 Yubikey 功能,该功能可作为网站所有者的免费服务使用。

如果 Yubikey 丢失,您可以使用网站提供的正常恢复方法来恢复您的帐户并禁用 Yubikey。通常这意味着您会通过电子邮件获得密码恢复链接,并且该链接会禁用您帐户中的 Yubikey 功能。

我邮寄了 Yubikey 支持,看看这个答案是否正确。他们说这个解释是正确的,只是它只解释了密钥工作方式的一部分。

这里的其他答案没有给出任何真正的解释。甚至 Linuxjournal 文章也没有这样解释。接受的答案给出了一个黑盒答案——不是我打开此页面时要寻找的答案。我希望这个答案能给出更好的解释,写它能让我更好地理解 Yubikey。

我有一个,我会推荐他们!实际上,当我参加 BSidesLondon 时,我从 Yubico 的家伙那里免费获得了它。

可以将其视为 RSA 安全密钥,除了更小、更便宜且不带电池。尽管 YubiKeys 的密钥空间比 RSA 密钥空间大得多,但您(基本上)获得了相同的安全性。它们也非常坚固,可以完全浸入水中而不会损坏。

这是我的:

YubiKey

我知道这听起来像是广告,但它们真的很棒。与随身携带一堆安全密钥相比,它们在钥匙圈上几乎不引人注意。

至于它们的工作方式,它们针对 Yubico 运行的云服务进行验证,并提供两因素身份验证。所有服务器软件都是开源的,他们很高兴您运行自己的身份验证服务器。它是完全透明的。

在他们的网站上搜索一下,那里有很多技术信息和描述。

YubiKey有不同的变体,例如 YubiKey 4 和 YubiKey U2F。所有 YubiKey 都是硬件令牌并连接到 USB 端口。大多数具有感应按钮,一种型号还具有NFCYubiKey Neo)。这些变体在外形尺寸和支持的功能数量方面有所不同。

YubiKey 4提供了几个功能:

  • OTP生成
  • OATH 兼容 OTP 生成(即HOTPTOTP
  • 使用插入的OpenPGP 芯片卡模拟芯片卡读卡器(最高 4K 位 RSA 或 256 位ECC私钥大小)
  • 充当PIV 设备(高达 2K 位 RSA 或 256 位ECC私钥大小)
  • 充当U2F设备
  • 重放静态密码

对于它的某些功能,它表现为USB HID设备。

有一些替代解决方案可以提供类似的或多功能 YubiKey 4 的子集。例如,经典的硬件芯片卡读卡器(甚至可能带有键盘)与 OpenPGP 兼容的芯片卡相结合。

YubiKey U2F只是一个U2F 设备,即能够生成特定来源的公钥/私钥对并将密钥句柄和公钥返回给调用者的设备与其他廉价的 U2F 设备一样,私钥不被存储,而是被对称加密(使用内部密钥)并作为密钥句柄返回。使用钥匙柄,U2f 设备随后能够签署质询,从而创建响应作为多因素身份验证的一部分。

由于 U2F 是一个开放标准(也由 Google 等公司推动),因此有几种替代的廉价 U2F 硬件令牌可用(搜索“ FIDO U2F 密钥”)。

看看这里http://www.linuxjournal.com/magazine/yubikey-one-time-password-authentication

以下摘录由先前链接文章的作者德克默克尔撰写:

每次按下设备上的按钮时,它都会生成一个一次性密码并将其发送到主机,就像您在键盘上输入一样。然后,服务可以使用此密码来验证您作为用户的身份。

我建议您通读 5 页的文章,因为这里的内容太多了。