【问题标题】:In PKI if everyone knows the public key does it mean anyone can decrypt ....?在 PKI 中,如果每个人都知道公钥,这是否意味着任何人都可以解密......?
【发布时间】:2015-12-14 15:55:59
【问题描述】:

在 PKI 中,如果每个人都知道服务器的公钥,这是否意味着任何人都可以解密服务器对客户端的响应,该响应由私钥加密,而私钥又可以通过服务器公钥解密,只要有人可以嗅探其他人在中间交通?

【问题讨论】:

标签: ssl encryption openssl ssl-certificate pki


【解决方案1】:

在最简单的形式中,公钥加密用于单向通信。

如果 Alice 有一对公钥/私钥,并且她将公钥分发给所有人,那么任何人都可以使用 Alice 的公钥加密消息,只有 Alice 可以使用她的私钥解密。爱丽丝确实使用她的私钥来加密消息以供其他人阅读。

对于双向安全通信,公钥加密通常用于传输双方可用于安全通信的会话密钥。

假设 Bob 想和 Alice 说话。有了 Alice 的公钥,Bob 用它来加密一个密钥并将其发送给 Alice。 Alice 然后使用她的私钥来解密密钥。现在密钥只有 Alice 和 Bob 知道。所以他们都可以使用带有对称加密算法(如 AES)的密钥在他们两人之间来回发送消息。

Alice 可以用她的私钥做的一件事是创建一个数字签名。 Alice 可以编写消息,对消息进行哈希处理,然后用她的私钥对哈希进行编码。然后 Alice 将消息连同加密的哈希一起公开发送出去。任何拥有 Alice 的公钥的人都可以解码散列并确保消息的散列与编码的散列匹配。因为只有 Alice 可以创建编码散列,所以读者知道 Alice 实际上确实发送了该消息。

【讨论】:

    【解决方案2】:

    不,只有私钥才能解密数据。

    在客户端服务器通信中,数据通常使用在通信开始(握手过程)期间启动的随机对称密钥进行加密。所有进一步的通信都是用它完成的。 PKI 的作用是客户端生成随机对称密钥,用服务器公钥加密,服务器解密以继续会话。

    【讨论】:

    • TLS 会话密钥是通过密钥协商协议协商的。它不是由客户选择的;未加密;未传输;并且没有被解密。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    相关资源
    最近更新 更多