我和我的商业伙伴各自都有自己的公司电子邮件地址,我们使用 PGP。这使我们能够安全地与客户沟通。但是,为了安全地沟通,发件人必须知道我们的个人电子邮件地址。我们还有一个 mail@ 电子邮件地址,该地址转发到我们的两个帐户,大多数新客户都会通过该地址与我们联系。
我现在想知道是否有可能以某种方式为该电子邮件地址创建一个主密钥,并为我们每个人提供可用于解密的子密钥。我知道,我可以简单地为该电子邮件地址创建一个密钥,并将其复制到我们的两台机器上。虽然只要我们两个人,这种情况就没问题,但我正在考虑我们什么时候可能有一名员工也应该能够解密该电子邮件地址的邮件。如果该员工再次离开我们公司,我希望能够简单地撤销他的子密钥并完成此事,而不是信任该员工删除其系统上的密钥或每次都创建一个新密钥。
我可以想象这种设置会引起很多问题,例如:
- 发送者是否需要对每个子密钥加密消息?
- 如果是这样,发送者在加密之前总是需要重新检查密钥服务器
- 此外,我们依赖发送者仅对未撤销的密钥进行加密,因此安全性并不站在我们这边。
- 如果不是,子密钥将能够解密主密钥的数据。如何禁止撤销密钥的这种行为?
- 如果是这样,发送者在加密之前总是需要重新检查密钥服务器
总而言之,看来我的情况不太可能通过 GPG 轻松解决,但也许有人有一些聪明的想法来解决这个问题?
解决该问题的另一种方法是使用邮件服务器端脚本,该脚本检查传入邮件中的 mail@ 地址,并在转发邮件之前使用一组给定的个人密钥重新加密 GPG 加密邮件。您对此有何看法?
感谢您的帮助。
答案1
从根本上来说,您想要做的事情并不是 GPG 的工作方式。
假设存在这样的情况:您可以分发一个公钥,该公钥可以通过多个私钥解密。当发送者使用公钥加密消息时,任何拥有这些私钥的人都可以解密该消息。现在您想撤销其中一个私钥。但解密不通过第三方;任何拥有匹配私钥的人都可以解密该消息。撤销密钥的唯一方法是让发送者知道使用不同的公钥。如果只有一个私钥,你会做同样的事情。
因此,最终,一个公钥拥有多个私钥并没有什么特别的优势。
答案2
不幸的是,GPG 不提供这样的机制。PGP 为此提供了 ADK(附加解密密钥),但不幸的是,这是 OpenPGP 标准之外的功能(也是专利功能),因此 GPG 不提供它。