【发布时间】:2015-07-29 18:29:21
【问题描述】:
我正在编写 CMP 服务器,但遇到了问题。 它用于集中式 PKI,其中 RA 将带有相关证书的私钥发送到服务器,我们必须将其中继到 CMP 客户端。
问题是我找不到我们应该如何加密私钥以将其发送给客户端并让他能够解密它。 我们是否只依赖 https 的安全性,因为这听起来不对? 我是否遗漏了 CRMF RFC 中的某些内容?
我想,一种解决方案是从客户端生成一个临时密钥对并将其用于加密/解密,但这听起来更像是一种黑客行为,而不是正确执行此操作的方法。
当客户是生成他的密钥对的人时,这很容易做到,但在这种特定情况下,一切都是由我们的 OpenTrust RA 生成的。
【问题讨论】:
-
您真的确定 RA 会生成私钥吗?例如,CRMF 消息尤其没有存储私钥的字段。
-
您不必将私钥发送给客户端。这里有一些严重的错误。要么是你的私钥,你应该保密,要么是客户的私钥,he 应该保密。如果两方拥有相同的私钥,则整个 PKI 点都会被破坏。
-
它的工作方式是服务器将向 CMP 提供 CN 和密码,CMP 将检查 LDAP 是否有权请求注册。完成后,OpenTrust 将为客户端生成私钥和证书。这是由 OT 完成的,因为在法律上我们必须隔离私钥的副本。
标签: java encryption bouncycastle pki