【问题标题】:Encryption of private key in centralized PKI with bouncycastle使用 bouncycastle 在集中式 PKI 中加密私钥
【发布时间】: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


【解决方案1】:

PKCS#12 可用于将私钥从 RA 分发到各个客户端。为此,我们使用了硬件 USB 令牌。 USB 令牌上的数据只能由客户端的软件解密(使用预共享密钥)。 如果您不想使用硬件令牌,您唯一的选择是使用预共享密钥(通过一些带外/通道外方式进行通信)并使用该对称密钥来分发私钥并传输它通过 HTTPS。还要确保您的 HTTPS 配置为至少使用 AES-256。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-13
    • 2016-08-17
    • 2015-03-21
    • 2014-05-20
    • 2018-09-30
    • 2017-03-17
    • 2016-06-15
    • 2019-06-24
    相关资源
    最近更新 更多