Yubikey 的使用体验

2019-12-19 4086点热度 10人点赞

出于某些原因,遗失了一枚以前用的 yubikey,正好重新购买还要重新配置,可以简单的介绍一下了。


1 、 Yubikey 简介

YubiKey 是一款高度耐用的、支持多协议的硬件安全密钥,可提供抵抗网络钓鱼的多因素身份认证(MFA)和大规模的无密码认证。每个设备都提供卓越的用户体验,只需轻触即可完成登录。 YubiKey 支持各种协议,包括 FIDO2/WebAuthn 、 FIDO U2F 、智能卡(PIV)、 OpenGPG 和一次性密码(OTP),还提供其他有用的功能,如挑战应答,甚至可以存储静态密码。所有 YubiKey 均经过特别设计,可在各种气候条件下使用,具有抗压能力,防水,无需电池,可以选择适用于桌面、笔记本电脑或移动设备的多种形态,最后,可选择有线和无线连接选项。

(旧 v4)YubiKey 是由 Yubico 生产的身份认证设备,支持一次性密码(OTP)、公钥加密和身份认证,以及由 FIDO 联盟(FIDO U2F)开发的通用第二因素(U2F)协议。它让用户可以透过提交一次性密码或是使用设备产生的公开/私密金钥来安全地登录自己的帐户。针对不支持一次性密码的网站,YubiKey 也可以存储静态密码。 Facebook 使用 YubiKey 作为员工凭证;Google 同时为雇员和用户提供支持。还有一些密码管理器也支持 YubiKey 。


2 、 Yubikey 外观

Yubikey 5 和以往的 Yubikey 4 相比,主要多了 FIDO2 和 NFC 的功能。

从外观来看,新的包装比以前 Yubikey 4 的包装要好看很多了(以前那是个什么迷惑包装)

当然,由于本次购买走的是亚马逊自营,没有使用官网购买,也就没有官网的 20%AFF 的优惠了。

如果你想购买的话,可以选择 美国代购+转运,亚马逊自营 两种途径购买


3 、 Yubikey 使用

Yubikey 的连接方式大体分为两种方式

  • 直接接触,如 USB
  • 间接接触,如 NFC,默认 20s 后自动断电

Yubikey 的使用方式分为三种

  • 第三方软件请求 Yubikey 并需要触碰(例如 FIDO U2F)
  • 将两个 Slot 作为模拟键盘输入(例如静态密码)
  • 通过 Yubico 指定的软件读取 Yubikey 内其他的数据(例如 OATH & Yubico Authenticator)

Yubikey 的金属片触碰方式分为两种

  • 轻触 1 下 在 Yubikey 亮灯时 允许当前对于 Yubikey 的请求
  • 轻触 1 秒 激活 Slot 1 并输入该插槽的默认输出结果
  • 长触 3 秒 激活 Slot 2 并输入该插槽的默认输出结果

Yubikey 的灯光含义

  • 短闪烁 有应用对 Yubikey 发送请求
  • 长亮 作为模拟键盘正在向当前窗口输入插槽

Yubikey 的 USB 信息 [ 链接 ]

  • 供应商 ID(VID)时 0x1050

4 、 Yubikey 体验

个人使用体验中,Yubikey 值得这份钱,把以前那些非常繁琐和糟心的方式用一个物理密钥集中起来了。

当然,Yubikey 也太小了,一旦丢了就是个社会性死亡,所以还是得准备两个(幸好最初买了两个要不丢了就死了)

联动 Keepass 可以使用 标准 OTP 和 Challenge-response 两种方式,但是 标准 OTP 经常会因为误触导致失效。

如果使用 GPG 的话,你可以选择 yubikey 生成(不可导出)或者将证书写入到 yubikey 中

对于 Windows 登陆 的 Yubico Login for Windows Application 用起来倒是很有意思。 [ 链接 ]

旧版本的 Yubikey for Windows Hello 也很有趣,但是这个软件与 Yubico Authenticator 的密码 存在不兼容冲突。


5 、 Yubikey 配置

Yubikey 官网上有三个主要的软件,一并在这里说一下好了。
前面 蓝色 的意思是 Yubikey Manager 的 所属模块(用于开启和关闭)

(OTP) 当与 Yubikey 通讯时使用 OTP 用到的基础接口,视为 USB 输入设备键盘,有两个编程槽位
(FIDO) 当与 Yubikey 通讯时使用 FIDO2 & FIDO U2F 用到的基础接口,视为 HID-compliant fido
(CCID) 当与 Yubikey 通讯时使用 PIV OATH OpenPGP 用到的基础接口,视为 智能卡读卡器 + 智能卡

5.1 、 Yubikey Manager

这是一个简易版的 Yubikey 管理工具,安装好后可以检查 Yubikey 状态 [ 链接 ]
首页中会显示设备当前链接的 Ybukey,多个 Yubikey 没有下拉选择。同时单个 Yubikey 一共有两个插槽
同时 不同固件版本的 Yubikey 所能支持的功能参考如官网所示 [ 链接 ]

点击 Application 可以查看到 Yubikey 当前支持的三个模组,OTP/FIDO2/PIV

其中 OTP 里是比较容易常用的 一次性密码。注意刚出厂的时候  Yubikey  默认携带了一份 一次性密码(OTP),这份默认写入在 Slot 1 上面,出场即写入所以安全性很高。同时这个密码是和 YubiCloud 联动的,如果你能确认不会用不到该种 OTP 认证,你可以选择删除,但是删除后不能再恢复,只能重新再生成一个新的,并且需要再次和 YubiCloud 绑定。

(OTP)一次性密码这里,你可以看到 Yubikey 一共支持的四种协议,分别是

  • OTP 一次性密码
  • Challenge-response 挑战-响应 认证
  • Static password 静态密码
  • OATH+HOTP 基于 HMAC/时间的两种一次性密码算法(注意这种 OATH 并不是 CCID 下属 OATH)

(FIDO2)FIDO2 是基于 "由 FIDO 联盟(FIDO U2F)开发的通用第二因素(U2F)协议" 的新一代无密码方案。 [ 链接 ]
(FIDO U2F)而对于 FIDO_U2F 来说安全钥匙可作为一种额外的在线服务两步验证方式,例如 Google 登录。
这里的设置是用于 FIDO2 & FIDO_U2F 调用此 Yubikey 时的 PIN 码,注意初始化后可能会导致之前关联的 FIDO2 & FIDO_U2F 无效

WebAuthn 是 FIDO2 标准的一部分,向下兼容 FIDO U2F,所以即使是旧版本依然可以走认证。
由于 Yubikey 上此模块调用多因素认证,所以目前需要相关工具以管理员运行的权限去操作。
WebAuthn 需要 Yubico Authenticator 进行管理,使用 FIDO2 的 PIN,但同时也会被 FIDO2 Reset 清空。
网络上的 WebAuthn 测试站点 [ 链接 ] 各大平台支持情况 [ 链接 ]

同时注意 FIDO2 & FIDO_U2F 是两种协议,虽然 FIDO2 向后兼容了 FIDO_U2F,但在代码层面两者是不同的请求格式。

(PIV)PIV 是用于一些关联 PIV 智能卡和证书的安全设备,相对个人开发者熟悉的就是 GPG 证书了
(OpenPGP) 是 PIV 中于一些

  • 密码:123456
  • PUK:12345678
  • 管理密钥:010203040506070801020304050607080102030405060708 (random)

最后 Interface 里,你可以控制该 Yubikey 所有功能的 开 或 关

注意 NFC 功能代表可以通过 NFC 传输哪些数据请求,安全角度上小心由 NFC 产生的中间人攻击


5.2 、 Yubico Authenticator

这款软件的功能就是根据 HOTP+TOTP 并显示一次性密码。冷不丁说这两个名词可能也比较纳闷是什么,那么如果说 谷歌验证器 或者 LassPass ,想必大家就都知道了。
(OATH)Yubikey 5 最多可以储存 32 组 HOTP+TOTP 凭据,并且访问这些凭据必须使用 Yubico Authenticator [ 链接 ]

旧版本打开软件,可以直接看到对应的 TOTP 一次性密码,但是实际上,大多数使用时是将此密钥加密的。
并且为了安全性考虑,Yubikey 在软件升级后添加了 "触摸物理密钥才可以查看" 的功能防止远程窃取。
查看方式为:先双击两下对应的 一次性密码 接着下方会提示你让你触摸物理密钥,触摸后即可查看一次密码。

默认 Yubikey 被打开是不需要密码的,如果你担心安全,可以设置上密码,左上角三个小圆点就是 Settings
打开后你可以看到你的这个 Yubikey 的唯一 SN,作为你当前选择的 Yubikey 。

接着在 Change  Password 中输入你的密码即可(本图已经配置过了所以需要输入原有密码)

当你输入完毕后,你退出并重新使用 Yubico Authenticator 时,会需要你输入密码

当你使用多枚 Yubikey 设备时,你可以通过指定 接口 来控制输入源
在当前版本 v5.0.1 时,一共有三种,分别是 CCID 接口默认 CCID 接口指定设备 OTP 接口验证方式(插槽)


同时如果你经常使用的话,你可以让 Yubikey Authenticator 将图标放在开始菜单中以便随时使用。


5.3 、 Yubikey Personalization Tool

作为一个价值 50$的产品,怎么能不支持工程模式呢?Yubikey 在官网上提供了批量配置工具。 [ 链接 ]
这款工具可以让你对 yubikey 的两个插槽进行细致化的控制。

那么先举个例子,比如我们想配置 Slot 1 插槽为 Challenge-Response + HMAC-SHA1 模式。

我们可以选择插槽,然后为插槽配好一份加密,然后使用准备好的密钥,然后写入到 yubikey 中。
注意,插槽保护一旦配置额外密码,将无法使用普通配置工具修改插槽信息,也意味着进行写保护。
注意,写入到 Slot 1 时会提示一个警告给你,如果你确认不使用 Yubikey 出厂送的 OTP 验证方式,你可以覆写,否则建议你移动到 Slot 2 后再进行写入 (大多数人都没有连接 Yubico Cloud 实现 OTP 验证的意图)


6 、相关链接

Yubikey 官网 [ 链接 ]

Yubikey 5 [ 链接 ]

谈谈 WebAuthn (FIDO) [ 链接 ]

FIDO2 FIDOU2F 和 CTAP 的关系 [ 链接 ]

StarryVoid

Have a good time