Yubikey 4 入手

最早应该是从Bigeagle的网站上了解到YubiKey的最近入手了YubiKey 4从Yubico官网购买使用GitHub用户的20%优惠顺丰的海购丰运转运历时20天总算到手到手价格一只260 RMB左右
美国国内物流采用USPS运费5刀
sp160913_174249
顺丰转运的验货照
781002803993_b4d9eb6c-ef61-4925-81ce-96cc3309c066
screenshot-from-2016-10-04-20-08-31
screenshot-from-2016-10-04-20-10-04

作为一个普通用户的我使用YubiKey能干些什么呢
经过几天的配置和使用目前使用YubiKey的主要用途有以下几项

1. FIDO U2F
FIDO U2F的功能是YubiKey出厂的时候配置好的开箱即用支持此功能的网站有FastmailGoogleDropboxGitHub等在这些网站的二次验证的选项中有一项被描述为安全密钥以GitHub为例二次验证的设置页面最低端有一项Security Key的选项
github1
github2
点击注册新设备后会提示Waiting for Device此时插入YubiKey并按下实际上轻触即可上面的按钮即可
github3
github4
以后每次登录的时候除了密码认证之外新增了插入YubiKey的二次验证
github5
这项功能开箱即用操作起来十分方便但是目前也存在一些缺点首先是支持该功能的网站数量十分有限且目前只有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的型号但实际上各项功能使用正常
screenshot-from-2016-10-04-21-11-02
在配置YubiKey的过程中再一次体会到这玩意还是在Linux以及macOS上配置简单在Windows下的配置过程中碰到过各种不必要的问题如Windows 10的Windows Subsystem for Linux无法识别YubiKey而在Cygwin中Cygwin原生的GnuPG只有1.x的版本想用2.x以上的GnuPG除非自己从源代码编译或是安装Win32的版本而Win32的版本在gpg2 –card-edit的过程中fetch指令不支持https虽然这不是一个大问题但是我莫名被浪费了很多时间又比如在Windows上配置通过GPG进行SSH登录在我的Cygwin环境下gpg-agent始终不能如预期工作

以上就是目前使用YubiKey 4的所有功能使用体验还是十分不错的喜欢折腾的强烈建议入手最后一点吐槽YubiKey对金属触点没有任何保护措施日常使用中除了有可能被钥匙刮伤外还有可能发生
cs6zy1tvuaadsl3
所以假如如果有机会为YubiKey 3D打印一个外壳也不错呢

Comments