我认为这是可能的,因为它们都利用RSA进行加密。我应该能够阅读X.509并将其存储为新的OpenPGP密钥。
我的软件的合作者需要OpenPGP。 另一位合作者提供X.509。
我正在寻找一种转换密钥的方法。 这有可能吗,怎么会这样做?
答案 0 :(得分:1)
简短版本:你可以稍微改善,但这样做很少有用。
您可以提取构成密钥的数字,并从理论上将新的X.509和/或OpenPGP密钥组合在一起,但这些密钥在相应系统中仍然是不兼容的,不同的密钥。实际上,monkeysphere项目为两个方向(openpgp2pem
和pem2openpgp
提供了工具,但请务必在前往和转换键之前阅读帖子的其余部分。)
X.509和OpenPGP都不仅仅是密钥的文件格式:它们为密钥管理和认证,元数据,标识符等添加(不兼容)选项。此外,两个系统使用稍微不同的加密操作模式,并且具有非常不同(因此不兼容)的加密和签名消息格式。他们甚至在如何处理认证方面存在巨大差异(X.509情况下的层次结构与OpenPGP情况下的任意图表相比)。
换句话说:使用共享相同RSA素数的OpenPGP密钥的X.509“表示”所做的任何操作都不能与OpenPGP变体一起使用,反之亦然。在一个系统中发布的证书在另一个系统中不起作用(并且无法转换!)。
由于两个密钥“表示”无论如何都是不兼容的,必须单独管理,我强烈建议从头开始创建不同的密钥集。毕竟,这增加了另一层安全性,以防其中一个密钥被破坏,因为另一个密钥没有完好无损。除了执行不寻常的操作外,总是容易出错并且对后续问题持怀疑态度。
可能有很好的用例,例如monkeysphere项目需要这些转换来通过OpenPGP密钥验证SSH连接。但出于上述原因,我不会认为签名和加密邮件和文件的一般用法是一个很好的用例。