Buying YubiKeys
最近我下单了(我的第 4 个)YubiKey. 下单的型号是 2020 年 9 月推出的 YubiKey 5C NFC. 目前我不确定 Firmware 版本是多少,但既然是官方网站下单,理论上是下单时刻最新的,至少是 5.2.4+. 与我之前已经持有的 YubiKey 相比,对我而言最大的改进是固件支持 ECC 算法的 GPG Key,以及可以直插 USB-C 了。
第 1 只: YubiKey 4
2017 年生日附近,我购买了第一个 YubiKey 4 作为自己的生日礼物。由于 YubiKey 官网不能选择直邮中国大陆,当时我选择了一家叫做 SFBuy 的中国转运公司(貌似是顺丰旗下的),美国的转运仓库。当时好像只要有 GitHub 账号(不需要有 Student Developer Pack)就可以在 Yubico 官网拿到 8 折优惠。美国境内运费 5 美元。
当时一共花了 YubiKey $40*0.8 + 美国境内运费 $5 + 转运费大约 ¥40.
Yubico 官网 $5 元的快递选项号称没有 tracking code, 但当时实际上是有的。
![]() | ![]() |
第 2 只:YubiKey 4 (Firmware Updated)
买了第 1 只 YubiKey 之后不久,Yubico 发现它的一部分固件有一个漏洞:Infineon RSA Key Generation Issue. 简而言之就是 YubiKey 使用的英飞凌的加密程序库里面 RSA 密钥生成的部分有个漏洞,导致在 YubiKey 里生成的密钥安全性不足。当然,其实我的 GPG Key 是在电脑上生成然后转移到 YubiKey 里面的,所以似乎不会受这个漏洞影响。
这个漏洞影响了固件版本在 4.2.6 – 4.3.4 之间的 YubiKeys,而且由于 YubiKey 的设计,其固件是不能更新的,要完全堵住这个漏洞必须重新买一个新的。Yubico 公司发起了一个免费更换服务,符合条件的 YubiKey 可以得到一个验证码,凭码可以免费领取一个新的 YubiKey. 当时正好 TUNA 的群里有小伙伴提起这事,群里有身在美国的小伙伴热心代大家领取。我查询了一下我的 YubiKey 符合换新资格,于是搭了个便车,2017 年末,换新的 Key 几经辗转,终于拿到手。感谢 TUNA 的朋友。
第 3 只: YubiKey 5 NFC
2019 年初在 V2EX 上看到有网友要去美国,顺便给大家带点 YubiKey, 这次我又搭了便车。 网友回国后,在闲鱼上挂了个单把 YubiKey 转给我。除了国内快递费没有收代购费,良心网友👍
这只比之前的 Key 有 2 大改进:
一是支持 FIDO2,目前我常用的账号中似乎只有 Microsoft 账号能感受到这个功能带来的明显改变。通过 FIDO2,在登录 Microsoft 账号的时候,不需要输入用户名,更不需要输入密码,直接插上 YubiKey 然后选择用 Windows Hello 或 Security Key 登录即可。可能需要输入 Key 的 PIN。这个功能目前 Safari 是不支持的,Chrome 和 Microsoft Edge (旧/新均可)都支持。
![]() | ![]() |
二是支持 NFC, 在支持 NFC 的手机(如 iPhone 7 之后的型号,需要支持读取 NFC tags)上可以直接用于某些网站的 2 步验证了:
![]() | ![]() |
第 4 只: YubiKey 5C NFC
2020 年 9 月,Yubico 推出了一个全新的型号 YubiKey 5C NFC.
以前的 YubiKey 有 USB-C 接口版,有 NFC + USB-A 版,但是随着 USB-C 的普及,偏偏缺少一个同时支持 USB-C 和 NFC 的 All in One Solution。 去年有 Reddit 网友问:Anyone know if they are planning to release a version that cover both NFC and USB-C?
我目前主力和唯一的个人电脑是 MacBook Pro 13′ 2018,全部都是 USB-C 口,所以 YubiKey 5C NFC 推出后,我第一时间就有关注,因为这确实是我理想中的 All in one 个人安全硬件;但是实话说这个版本和 YubiKey 5 NFC 改进说小不小,说大不大。目前的 5 NFC 我也是套着一个绿联的 USB-C to A 转接头一直这么用着。
不管怎样,先拿 edu 邮箱申请一个 8 折教育优惠,买不买再说:
自从 9 月拿到这个优惠码之后,我一直犹豫没有行动。等到 12 月的时候,Yubico 把折扣给我改到了 7 折:
犹豫再三,我还是在 2020 年的尾巴下单了。因为人在香港,这次选择的是官网直邮,邮费依然是 5 美元。这次真没找到 tracking code,估计是平邮。而且不是从美国而是从欧洲(Sweden ?)发过来的。
相对于之前的版本,这次买的新版 5C NFC 主要改进一是让我可以摆脱绿联转接头了,二是可以体验一下 Ed25519 算法的 GPG Key (固件 5.2.3 之前的版本只支持 RSA)。
2021-01-29 Update: 经过 20 多天无 tracking no. 的平邮配送,今晚在楼下检查信箱的时候,终于到了~
Notes
我目前用到的 YubiKey 功能比较基础,例如 GPG Smart Card,FIDO2/WebAuthn,Static Password,OATH,PIV 还有那个 Yubico Authenticator 等。我自己尚未造过任何轮子(这里有个网友造的轮子)。
这里不写各个功能的教程(网上已有很多),只罗列一些我想到的关于使用的零星建议:
- YubiKey 中直接生成的 GPG Key,理论上不可以被读取出来(也就是不可以备份)。硬件丢失了则这个 GPG Key 也就永久丢失了。
- 因为 GPG primary key 涉及到 Web of Trust,一旦丢失很麻烦,所以 GPG primary key 建议在外部(电脑上,尤其是不联网的电脑上)生成,然后备份到一个非常安全的地方,例如加密的 U 盘。
- 最好再生成三个 subkeys,备份后用 keytocard 命令写入 YubiKey. 平时就使用 YubiKey 里面这三个 subkeys.
2021-01-30 第4个Key(YubiKey 5C NFC)到手后 Update: 由于现在手边有较多闲置的 Key 了,最新的 Key 接口最丰富、功能最多,所以用作日常使用;旧的 Key 则成了绝佳的备份 GPG primary key 的地方(替代加密的 U 盘)。
以前,我的 primary key —— RSA4096 的 —— 是存储在一个加密卷里然后束之高阁的,如果偶尔要使用(例如给他人的 Key 签名,或者修改 Key 的有效期等 metadata),则需要先导入电脑中,不方便且不够安全。现在我可以把 primary key 同时灌入一个闲置的旧 YubiKey 中,偶尔使用的时候插上旧 YubiKey 输入 PIN 即可。