在PKI中,如果每个人都知道公钥,那就意味着任何人都可以解密....?

时间:2015-09-17 17:06:12

标签: ssl encryption openssl ssl-certificate pki

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

2 个答案:

答案 0 :(得分:3)

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

如果Alice拥有公钥/私钥对,并且她将公钥提供给每个人,那么任何人都可以使用Alice的公钥加密消息,只有Alice可以使用她的私钥解密。 Alice 使用她的私钥加密消息以供其他人阅读。

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

让我们说鲍勃想和爱丽丝谈谈。使用Alice的公钥,Bob使用它来加密密钥并将其发送给Alice。 Alice然后使用她的私钥来解密密钥。现在秘密密钥只有Alice和Bob知道。因此,他们都可以使用密钥和AES等对称加密算法在两者之间来回发送消息。

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

答案 1 :(得分:-2)

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

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