在 Gentoo 中使用 Yubikey PGP 卡

PGP 卡是一种智能卡,这种智能卡可以执行加密、解密、数字签名/验证、认证等任务。它允许我们安全地存储密钥。

-- Locez

致谢

转载自 | http://locez.com/linux/cryptography/yubikey-pgp-card/

作者 | Locez

本文环境

◈ OS:Gentoo

◈ 内核:4.9.76

◈ gpg (GnuPG): 2.2.4

◈ yubikey-manager: 0.6.0

◈ pcsc-tools: 1.4.27

什么是 PGP 卡?

在加密技术中,PGP 卡是一种智能卡,这种智能卡可以执行加密、解密、数字签名/验证、认证等任务。它允许我们安全地存储密钥。私钥和密码不能用任何命令或功能从卡上读取,但是可以将新密钥写入到卡上覆盖旧密钥。Yubikey 里面有 PGP 卡的功能,因此可以将密钥安全地存进去,使得我们的密钥有一个物理设备的载体,类似于银行的 U 盾。

软件安装

Yubikey 相关的包都被 Gentoo 标记为 ,所以首先是要解除掉才能安装:

将以下内容填入:

安装 yubikey-manager:

安装 pcsc-tools:

连接设备

因为本人是的桌面环境是 awesome,因此需要禁用 功能,只启用 、:

注意:在其它桌面环境中,如启用全部 3 个功能只需要 即可。

启动 pcscd 守护进程:

测试连接:

编辑 PGP 卡信息

设置密码等信息,默认的 PIN 是 ,PUK 是 :

设置个人信息:

生成与导入 key

生成 PGP 主密钥:

此时可以动动鼠标键盘让他收集足够的随机数据。

生成一个用于认证的子密钥:

然后跟着向导进行选择就可以了,通常是选择 ,然后 位密钥 其中子密钥对的类型选择应该如下:

然后重复上面的操作再次添加一个用于签名的子密钥,最终效果大概如下,使用 命令保存退出:

备份公钥与私钥

当我们把密钥导入 Yubikey 的时候,我们就无法取出密钥,因此在导入之前最好备份 备份主密钥私钥:

备份主密钥公钥:

当然也可以对单独子密钥进行备份,语法如下:

为子密钥的指纹信息。子密钥公钥当然也可以单独导出,但是在导出主密钥公钥的时候其实已经把子密钥公钥导出了,因此可以不必重复备份。

导入进 Yubikey

备份做好以后,就可以将 密钥导入进 Yubikey 了,通常不建议直接将主密钥导入,因此在本文除了主密钥外,另外有三个子密钥用于导入进 Yubikey。

采用 语法选择或者取消选择密钥,主密钥为 0, 其它依次递增,被选中会有星号。

然后接着:

取消选择子密钥 1 并选择子密钥 2:

重复操作,直至把 3 个子密钥都导入进 Yubikey,最后 命令保存,当你看到多了这样的 字样即表面导入成功:

删除主密钥私钥

通常,为了保证安全,日常操作采用子密钥足以,主密钥私钥应该离线保存在一个非常安全的地方,对的就是刚刚备份的那些东西需要离线存储,例如找个保险柜,此时先删除主密钥私钥:

还可通过输入以下命令进行确认, 后的 即表明主密钥私钥不可用:

同样输入 会看到 字样,是子密钥可用,而不是原来的主密钥了。

简单测试

为了验证卡片写入成功,做个简单的测试,先拔掉 Yubikey:

空行结束,然后会要求你插入 Yubikey 并输入 PIN 进行加密。

解密如下:

参考资料

◈https://developers.yubico.com/PGP/

◈https://en.wikipedia.org/wiki/OpenPGP_card

◈https://wiki.archlinux.org/index.php/GnuPG

◈https://zhuanlan.zhihu.com/p/24103240

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180517B0DK3R00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券