Yubikey 4入手

clarkzjw
6 min readJul 29, 2018

--

最早应该是从Bigeagle的网站上了解到YubiKey的。最近入手了YubiKey 4,从Yubico官网购买,使用GitHub用户的20%优惠,顺丰的海购丰运转运,历时20天,总算到手。到手价格一只260 RMB左右。

美国国内物流采用USPS,运费5刀。

顺丰转运的验货照。

作为一个普通用户的我使用YubiKey能干些什么呢?

经过几天的配置和使用,目前使用YubiKey的主要用途有以下几项。

1. FIDO U2F

FIDO U2F的功能是YubiKey出厂的时候配置好的,开箱即用。支持此功能的网站有Fastmail,Google,Dropbox,GitHub等。在这些网站的二次验证的选项中,有一项被描述为“安全密钥”。以GitHub为例,在二次验证的设置页面最底端有一项“Security Key”的选项。

点击注册新设备后,会提示”Waiting for Device“,此时插入YubiKey,并按下(实际上轻触即可)上面的按钮即可。

以后每次登录的时候,除了密码认证之外新增了插入YubiKey的二次验证。

这项功能开箱即用,操作起来十分方便。但是目前也存在一些缺点。首先是支持该功能的网站数量十分有限。且目前只有Chrome浏览器对该功能的支持是完备的。Firefox可以通过插件实现该功能,但是部分网站的支持不完善。比如Firefox在GitHub上该功能可用,但是Google便无法识别。Opera Stable版本中已有FIDO U2F的开关,但是开启后依然无法正常使用。Opera Dev版本开启该功能后可以正常使用。

2. 将YubiKey 4作为PGP SmartCard

这是购买YubiKey后最主要的使用场景之一。YubiKey 4支持保存4096位的PGP私钥。很遗憾,原本打算购买的Yubico另一款产品YubiKey NEO目前只支持2048位的PGP私钥,而我的PGP私钥都是4096位的,我也不想再添加2048位的私钥,因此最后还是购买了YubiKey 4。相比之下,YubiKey 4缺少了YubiKey NEO中的NFC功能,因此在Android手机上使用OpenKeychain以及Lastpass就稍微缺少了一定的便捷性。

关于YubiKey 4作为PGP SmartCard的配置方法网络上详尽的教程很多。如Using GPG with Smart Cards。老生常谈的一点提醒,在将PGP私钥导入到YubiKey 4中前,一定要将自己原有的PGP私钥做好备份。因为私钥导入YubiKey中之后是无法取出的。如果你在Android手机上使用OpenKeychain等软件,且你使用的是YubiKey 4,即没有NFC功能,那么一定要在私钥导入到YubiKey之前,将私钥导入到OpenKeychain中。当然,你也可以开启每次执行PGP操作时,必须按下YubiKey上的实体按钮的功能。可采用该脚本开启该设置。

设置如下

curl https://gist.githubusercontent.com/a-dma/797e4fa2ac4b5c9024cc/raw/dd9612337e91a4a3e212bbf72c8521c3efb1ea6b/yubitouch.sh -o yubitouch.sh
chmod +x ./yubitouch.sh
./yubitouch.sh sig on
./yubitouch.sh aut on
./yubitouch.sh dec on

如果重新导入了PGP私钥,需要重新执行该脚本。

3. U2F

U2F本身是一个开源的认证协议,在这里我指采用U2F协议实现在Linux本地的sudo认证/登录认证。

在最新的macOS Sierra中,可以采用PIV协议登录系统。在Windows系统中,个人用户可以通过challenge-response模式配置使用YubiKey登录系统。Windows 10的周年更新中带来了Windows Hello模块,YubiKey配合Windows Hello进行系统认证的软件支持也正在开发中

在Linux下其实也可以通过配置Challenge-response来进行系统登录和sudo认证。不过我最终还是使用了pam-u2f模块。详细的说明如Local Two-Factor Authentication With U2F on Ubuntu 14.04。配置完成之后,每次用户登录(包括开机时登录以及从锁屏恢复),除了需要输入密码之外,还需插入YubiKey。不然会提示为密码错误。这里也有需要注意的。如果你的Linux安装过程中开启了硬盘加密,那么可能会碰到配置失败或无法登录的问题,请事先多查找相关文档。

4. SSH认证

既然YubiKey中存了PGP私钥,而PGP公钥又能通过一定的办法转换为SSH公钥。因此通过PGP也能进行SSH的登录。详细的方法如yubikey and ssh authentication。不过如果你是GNOME用户,gpg-agent与GNOME-keyring之间可能会产生一定的冲突。解决方法可以参考dainnilsson/scripts

5. 其他

意外地发现,在Ubuntu 16.04下,YubiKey Personalization Tool Gui竟然无法识别YubiKey 4的型号,但实际上各项功能使用正常。

以上就是目前使用YubiKey 4的所有功能。使用体验还是十分不错的。喜欢折腾的强烈建议入手。最后一点吐槽。YubiKey对金属触点没有任何保护措施,日常使用中除了有可能被钥匙刮伤外,还有可能发生如下情况。

--

--