我是否应该在工作(不太安全)环境中使用 gpg 子键?

我是否应该在工作(不太安全)环境中使用 gpg 子键?

我正在尝试使用 gpg 来加密和签署消息,但我使用不同的计算机(台式机、笔记本电脑、办公室),所以我不确定如何在这些环境中管理私钥。

我是否应该在每台计算机上使用私钥的副本,或者我是否必须针对每个环境使用不同的子密钥。这可能吗/推荐吗?

更新

我是否应该--export-secret-subkeys将私钥导出到工作环境而不泄露主密钥?我可以对不同的密钥/环境使用不同的密码吗?

答案1

您的 PGP 密钥实际上不仅包含主密钥(用于签署其他密钥和您自己的子密钥,以及实际由其他用户签名的密钥):一个用于签署消息的子密钥(可选,通常是主密钥本身,但不一定)和一个用于加密内容的子密钥。有关Debian 维基以及GNU 隐私手册

因此……您可以将主密钥仅保存在安全设备上,这样您就可以交换签名和加密密钥,而无需您的同伴验证和签署新密钥。通过安全地存储主密钥,您可以制定更严格的密钥轮换策略,而不会给其他人带来太多工作。此外,即使怀疑或确认子密钥机密材料泄露,您也可以毫不费力地撤销它们。

亲自使用两个子密钥设置(也检查问题),这不仅是为了保证主密钥的合理安全,还因为我使用了不同的密钥大小:主密钥有 4096 位,而签名和加密子密钥只有 3072 位。


另一方面,如果环境重叠不大,最好使用完全不同的 PGP 密钥,以最大限度地减少任何可能的漏洞造成的损害。

此外,您可以(应该)在最不安全的设备上为密钥使用非常长的随机密码。

答案2

没有办法将子密钥附加到特定用户 ID。甚至没有办法定义其他人应该使用哪些子密钥进行加密的偏好;大多数实现只会使用最新的子密钥。

如果您只想签名,则可以使用多个子密钥(如果只有一个签名子密钥,则将选择该子密钥)。如果您想接收加密邮件,

  • 要么使用单个加密(子)密钥,如果需要可以交换该密钥(交换子密钥既便宜又容易),要么
  • 对不同的地方/“角色”使用多个主键,例如私人和工作。

相关内容