Yubikey 4入手

clarkzjw
clarkzjw
Jul 29, 2018 · 6 min read

最早应该是从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对金属触点没有任何保护措施,日常使用中除了有可能被钥匙刮伤外,还有可能发生如下情况。

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store