7

我有一个朋友信任的 pgp 公钥/私钥 (RSA) 密钥对。我有一个正在运行的网络服务器,我想生成一个 ssl 证书,其公钥与我的 pgp 公钥匹配。

这有任何意义吗 ?那可能吗 ?那安全吗?

4

2 回答 2

7

如果您的 PGP 密钥中的密钥格式也支持 X.509 格式,那么这是可能的。RSA 就是其中之一。

这是一个使用BouncyCastle将 PGP 证书转换为自签名 X.509 证书的Java 实现(您需要在加载之前加载 BouncyCastle 安全提供程序)。

请注意,大多数人所说的PGP 公钥实际上是PGP 证书。公钥本身就是包含在这些证书中的 RSA 密钥(或其他格式)。因此,可以获取密钥材料并在另一个材料中使用它。但是,这样做会丢失使 PGP 证书成为证书的信息:密钥与身份的绑定以及其他人添加的签名(遵循 PGP 模型)。

您可能会将 PGP 证书的额外信息放入您自己的 X.509 证书扩展中。

这样做是否有意义可能取决于您想要实现的目标。重复使用相同的密钥材料或多或少意味着“您”(PGP 证书后面的 ID)和您的网络服务器成为一回事,因为如果一个私钥被泄露,另一个(例如 Apache Httpd,要求私钥在存储在服务器上时不受密码保护,尽管它通常只能由 root 用户访问)。此外,这可能对访问该网站的访问者没有多大帮助,除非他们想在“未知证书”警告框中挖掘以检查公钥是否与您的公钥匹配(他们可能知道)。

于 2010-10-31T21:29:57.453 回答
4

查看 MonkeySphere 项目: http ://web.monkeysphere.info/

有关如何生成 SSL 证书的说明: http ://web.monkeysphere.info/doc/host-keys/

它有一个firefox扩展,所以你的朋友可以通过你的PGP密钥来验证它。

于 2011-10-02T22:16:02.237 回答