【问题标题】:How does private/public keys, CSRs, CAs, CERTs and signing relate to each other?私钥/公钥、CSR、CA、CERT 和签名如何相互关联?
【发布时间】:2018-07-26 14:47:51
【问题描述】:

私钥/公钥、CSR、CA、CERT 和签名如何相互关联?

我的理解是,如果 Alice 希望 Bob 有理由相信某些消息来自她,她可以使用她的私钥创建该数据的签名,并让 Bob 使用相关的公钥验证签名+消息。但是,Bob 必须确信公钥实际上属于 Alice,而这正是我认为证书颁发机构派上用场的地方。

这到底是如何工作的?我真的不明白如何/是否/何时在 Alice、Bob 和 CA 之间创建和共享密钥和证书。

  1. Alice(程序或安装程序的人)可以创建公钥/私钥吗?
  2. 如果为 1,Alice(或安装者)能否从该公钥创建 CSR(证书签名请求)?
  3. 如果是 2,Alice(或安装者)能否将此 CSR 发送给 CA(证书颁发机构)?
  4. 现在有证书了吗?它是在 1、2 还是 3 中创建的?
  5. Alice 现在如何让 Bob 信任 Alice 的签名? Alice 应该向他发送 a) 她的公钥还是 b) 她的证书,以便 Bob 可以以某种方式“安装”它,从而信任她,因为他也信任 CA?
  6. 5b 不会以某种方式将 Alice 的私钥暴露给 Bob 吗?
  7. 现在是否可以让 Alice 签署消息,让 Bob 验证她的签名+消息,因为 Bob 确信公钥确实是 Alice 的公钥?

【问题讨论】:

    标签: certificate digital-signature pki ca csr


    【解决方案1】:
    1. Alice(程序或安装程序的人)可以创建公钥/私钥吗?

    是的。在现代计算机上创建非对称密钥对(相对)容易且(相对)便宜。

    1. 如果为 1,Alice(或安装者)能否从该公钥创建 CSR(证书签名请求)?

    是的,是的。 CSR 的主体使用公钥,但它应该使用私钥签名以进行所有权证明。 (不过,也许有些 CA 不检查签名)。

    1. 如果是 2,Alice(或安装者)能否将此 CSR 发送给 CA(证书颁发机构)?

    是的。任何人都可以向 CA 发送 CSR。 CA 然后做他们的事情(经常涉及信用卡)并颁发证书。或者没有。

    1. 现在有证书了吗?它是在 1、2 还是 3 中创建的?

    假设它是在步骤 3(b) 中创建的(CA 作用于 CSR)。

    1. Alice 现在如何让 Bob 信任 Alice 的签名?

    这是一个深刻的形而上学问题。

    1. (再次)Alice 现在如何让 Bob 信任 Alice 的签名? Alice 应该向他发送 a) 她的公钥还是 b) 她的证书,以便 Bob 可以以某种方式“安装”它,从而信任她,因为他也信任 CA?

    Alice 应发送证书,该证书提供 { her as a subject entity, the public key } 的关联以及 CA 愿意提供的任何限制或认可。然后,如果 Bob 信任 CA(或 CA 的 CA 等),他现在有理由相信这个公钥确实表明 Alice 是做事的人。

    1. 5b 不会以某种方式将 Alice 的私钥暴露给 Bob 吗?

    不,证书仅包含公钥(公开)、元数据(公开)和签名(公开)。创建 CSR 需要 Alice 的私钥,生成证书需要 CA 的私钥。

    有了足够大的预算,有人可以从公钥中派生出私钥,但在 2018 年,对于 RSA-2048 密钥或 ECC-256 密钥来说,这是“不可行的”。所以......是的。

    1. 现在是否可以让 Alice 签署消息,让 Bob 验证她的签名+消息,因为 Bob 确信公钥确实是 Alice 的公钥?

    如果 Alice 发送 a) 消息、b) 签名和 c) 证书;好的。如果证书和一些 Aliceness(Alicities?)已经以某种方式相关联,那么消息和签名以及“我可能是 Alice”的上下文将使密钥被查找。

    1. (未询问)如果没有证书,是否还有其他可行的方案?

    当然。如果 Bob 可以证明 Alice 是 Alice 并且 Alice 给了他一个公钥,那么就不需要中间人了。然后鲍勃可以使用“我可能是爱丽丝”和他已经知道属于爱丽丝的公钥,然后你回到只需要一条消息和一个签名。但随之而来的问题是她如何报告妥协等等。

    【讨论】:

    • 感谢您的出色回答!我总是以某种方式认为 Alice 的私钥存在于她的证书中,但这显然不是真的,这可能就是我意识到我的理解(仍然)有缺陷的方式。我现在想知道(在这种情况下是 Windows)操作系统如何跟踪私钥和证书之间的关系(但也许它没有),以及现在一些软件如何使用 Alice 的私钥签署一个消息(但也许它不能?它会在哪里找到私钥?)
    • Windows 证书存储维护保存的密钥(包括在外部硬件上)和证书之间的关系。在 Linux 上,您通常只需要手动加载一个 .key 文件。
    猜你喜欢
    • 1970-01-01
    • 2022-08-06
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 2014-10-11
    • 2013-01-06
    相关资源
    最近更新 更多