购买安全密钥的原因

为了方便登录,我习惯让浏览器记住常用账号密码,并为重要账号启用双因子验证(2FA),如短信验证码。但短信不稳定,可能需要等待 30 秒以上,因此硬件安全密钥更优。

我选择了 YubiKey 5C NFC,支持 USB-C 和 NFC,可在电脑、手机上使用。其实 Security Key NFC 也基本够用,只是缺少 OpenPGP 支持。

YubiKey 5C NFC 简介

YubiKey 5C NFC 是 Yubico 推出的硬件安全密钥,支持多个功能。我常用的包括 FIDO U2FFIDO2OpenPGP,而 Smart Card、OTP (One Time Password / 一次性密码) 主要用于企业场景,一般用户较少涉及。

配合 YubiKey 使用的常用软件

  • YubiKey Manager CLI 支持 YubiKey 的应用配置。
  • Yubikey Authenticator 支持 FIDO2 账号管理,并具备 Microsoft/Google Authenticator 类似的 TOTP 生成功能,可生成基于时间的一次性密码。

Yubikey 的使用方式分为三种

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

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

  • 轻触 1 下: 在 Yubikey 亮灯时,授权当前请求
  • 轻触 1 秒: 激活 Slot 1 并输入预设内容
  • 长触 3 秒: 激活 Slot 2 并输入预设内容

Yubikey 的指示灯含义

  • 短闪烁:有应用请求 Yubikey
  • 长亮:作为模拟键盘输入插槽内容

常规用法

FIDO U2F

FIDO U2F (Universal 2nd Factor) 用于网站的双重身份验证。网站绑定安全密钥后,登录时需输入 PIN 并触碰 YubiKey。因必须物理触碰,能有效防止远程攻击。网站存储公钥,而私钥保存在 YubiKey 内,确保安全性。

FIDO2

FIDO2 又叫做 WebAuthn,是 U2F 的升级版。可存储账号基本信息,如网站、用户名、密码。YubiKey 5 系列最多存 25 个凭证(Firmware 5.7+ 可存 100 个),可用 Yubico Authenticator 删除不需要的凭证。

OpenPGP

YubiKey 5C NFC 可存储 3 个 OpenPGP 私钥(子密钥)。

  • (S)ign/签名: 用于签名文件,或者说是「对文件进行数字签名」。
  • (E)ncrypt/加密: 通常使用公钥加密数据,私钥解密数据。
  • (A)uthentication/认证: 用于身份验证目的,例如登录远程服务器时的身份验证。

YubiKey 可存储的账号数

  • FIDO U2F: 无限制。
  • FIDO2: 最多 25 个凭证(Firmware 5.7+ 可存储 100 个)。
  • OATH (Authenticator): 最多 32 个 OATH-TOTP 凭证 (或者说 Authenticator App Codes).
  • OpenPGP: 3 个 OpenPGP 私钥。

参考文档