以 YubiKey 用户身份签署/认证密钥

信息安全 密钥管理 pgp 智能卡 优比键
2021-08-13 14:05:46

在日常使用 yubikey 将近一年之后,我决定是时候学习如何验证我朋友的密钥了。

我惊讶地发现,一个人只能使用他们的主密钥来签署密钥,因为这意味着我每次想要签署密钥时都必须将所述私钥导入我的计算机,相比之下,这似乎是一个很大的安全风险使用 yubikey 的子密钥智能卡功能。

当您的主密钥通常在(气隙)冷库中时,安全签署密钥的最佳方法是什么?

是否可以使用子密钥来验证密钥?
我不知道怎么做,但我相信我上个月这样做了(我的桌面上有签名密钥,上个月生成但我一年多没有碰过我的主密钥),尽管上面链接的 SE 问题是让我质疑自己。

回顾一下,这是我的设置的概述,我认为这是非常标准的:

  • 冷存储中的主(私有)密钥(加密)
  • yubikey 允许简单的 gpg 操作,同时不允许直接访问私有(子)密钥

我计划大约每月签署一次,虽然我更喜欢方便,但对我来说安全更重要。

以下是我的一些想法:

  • 将树莓派(或类似的东西)专用于密钥签名
  • 修补低级 PGP 设置以尝试获得具有该certify功能的子项
  • 生成另一个专门用于验证密钥的 pgp 密钥集,并使用我现有的主密钥签署该密钥。我已经有两个主密钥(每个用于不同的 yubikey)所以第三个可能有点麻烦
  • 使用我的两个主密钥中较弱的(2048 位)来验证密钥,保持加密但在我的计算机上
1个回答

我认为首先重要的是要了解在 GnuPG 中“子密钥”只是一组完全独立的密钥,它们具有分配给它们的功能:签名密钥被人为地限制为只能进行签名操作。认证密钥与签名密钥一样,是一个子密钥——实际上并没有什么特别之处。按照惯例,我们只称它为“万能”钥匙,这常常使人们感到困惑(例如,在物理世界中,“万能”钥匙能够解锁所有锁,因此许多用户希望他们的 GnuPG“万能”钥匙能够解密加密到“E”子密钥的消息)。认证 (C) 密钥只是另一个可以指示您的身份与属于您的其他密钥之间关系的密钥。

是否可以使用子密钥来验证密钥?

那么,你能把你的“C”子键放到智能卡上吗?是的,我相信 2.1+ 版本的 GnuPG 可以很容易地将您的 C 密钥放入智能卡的“S”插槽。通过一些额外的调整,您甚至可以将您的钥匙放在多个智能卡上,尽管您可能会遇到奇怪行为的极端情况。

拥有一个专门的离线系统来验证密钥是常见的做法,尽管很少有人会经历设置它的麻烦。您提到的所有机制都适用于此目的,我会让您选择最适合您的机制。