2015-09-17 28 views
1

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

+1

这个问题似乎是题外话题,因为它不是关于编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://stackoverflow.com/help/on-topic)。也许[密码学堆栈交换](http://crypto.stackexchange.com/)或[信息安全堆栈交换](http://security.stackexchange.com/)将是一个更好的地方要问。 – jww

回答

2

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

如果Alice有一个公钥/私钥对,并且她将公钥发给每个人,那么任何人都可以使用Alice的公钥对只有Alice可以使用她的私钥解密的公钥进行加密。 Alice does 而不是使用她的私钥来加密消息供他人阅读。

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

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

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

-2

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

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

+0

TLS会话密钥通过密钥协商协议进行协商。它不是由客户选择的;未加密;没有传送;并且不被解密。 – EJP

相关问题