【问题标题】:GnuPG/PGP and SSL: Sharing the same private key?GnuPG/PGP 和 SSL:共享同一个私钥?
【发布时间】:2012-03-24 20:12:20
【问题描述】:

我正在尝试整理我对数字签名和加密的使用。我知道有两种主要方法可以做到这一点:PGP 方式和 SSL 方式。

我想知道是否可以为 SSL 证书和 GnuPG 使用相同的私钥,前提是这是一个 RSA 2048 位密钥。

我已经有一个由 CA 签署的 SSL 证书,所以我希望将该证书的私钥用作 GnuPG 主私钥。

我知道我们不能以这种方式在 SSL 和 GnuPG 之间进行断言,但我希望只有一个私钥(因此只需要保护一份数据)

谢谢

【问题讨论】:

  • 证书不是“SSL 证书”,与 SSL 无关(尽管它们可以在 SSL 中使用,OpenPGP 密钥也可以)。
  • 就像 想法 有“只有一个私钥来保护”听起来不错,可以这么说,你真的把“你的一个鸡蛋放在很多篮子里”(反-冗余):如果您的网络服务器被黑客入侵,那么您神圣的 PGP 密钥就被破坏了!如果您的笔记本电脑被盗/破解,您现在拥有一个可以轻松用于 MITM 您的网站的密钥!最好有职责分离。

标签: encryption ssl public-key-encryption gnupg openpgp


【解决方案1】:

您可以这样做,但这不一定是好的做法。

首先,当您说“SSL 证书”时,您可能指的是“X.509 证书”。 SSL/TLS 大部分时间都使用 X.509 证书,但它也可以使用 OpenPGP certificates(据我所知,只有 GnuTLS 支持它们)。

请注意,我也在使用“OpenPGP 证书”这一表述。大多数人称它们为“(Open)PGP 公钥”,但它们实际上是证书:它们是公钥、标识符和一些属性的组合,由其他实体签名,并附上他们的签名,以便形成整体证书。严格来说,它不仅仅是一个公钥。

X.509 证书和 PGP 证书的主要区别在于 X.509 只能有一个签名(颁发者的签名),而 PGP 证书可以添加多个签名。 (PGP 模型可以用于分层 PKI 模型,而 PKI 模型不能用于处理 Web-of-Trust 模型。)

This Java code 演示了如何将一组 PGP 密钥“转换”为自签名 X.509 证书。原则上,您也可以将其转换为 CSR 以从 CA 获取 X.509 证书。这样做是否是一个好主意是另一回事。

首先,偶尔重新生成新的密钥对通常是个好主意。通常,这就是用于 SSL 的 X.509 证书具有有效期结束日期的原因之一(PGP 签名也可以在时间上受到限制)。

您还可以有效地将所有鸡蛋放在同一个篮子中。如果其中一个密钥被泄露,您的 X.509 和 PGP 证书都会被泄露。

更重要的是,it's considered bad practice to re-use the same keys for signing and encryption:将它们用于两个不同的应用程序(SSL/TLS 和 GnuPG)只会让问题变得更糟。

【讨论】:

  • 谢谢,现在说得通了。是的,我并不是真正的安全专家,所以我还不熟悉所有术语(SSL、PGP、Key、X.509)。
  • 请注意:我们的 SecureBlackbox 还支持 SSL/TLS 中的 OpenPGP 密钥。
  • 我也在尝试这种方法,似乎无法验证自签名 X.509 证书是否链接(签名)到特定的 OpenPGP 密钥。我怎么做?这是问题:stackoverflow.com/q/19678786/1045199
  • 作为参考,我的最后一条评论在这里得到了回答:crypto.stackexchange.com/q/11582/9284
猜你喜欢
  • 2017-05-08
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-02
相关资源
最近更新 更多