到目前为止,我还没有真正学习过安全通信,我有一些基本的问题。假设有一个浏览器(客户端)和一个服务器。据我所知,服务器既有公钥又有私钥。每个人都知道公钥,只有服务器知道私钥。因此,当客户端向服务器发送消息时,它是用服务器的公钥加密的,并且只有服务器可以解密它(因为只有服务器拥有私钥)。
现在来看我的问题:当服务器想要向客户端发送消息时会发生什么?服务器使用其私钥对消息进行加密,客户端使用公钥(众所周知)对其进行解密。到目前一切尚好。但如果有人嗅探到流量,他也可以解密消息,因为每个人都知道公钥。它的安全性如何?我确信我在这里不理解一些非常基本的东西:
提前感谢!
致以最好的问候,Petar
发布于 2010-11-30 21:27:47
安全通信不仅涉及加密(这实际上是最容易的部分),而且更重要的是,还涉及身份验证。
可以在两方之间建立加密通信,而不需要预先交换任何密钥(例如,参见Diffie–Hellman key exchange)。
困难的部分是确保你正在与之交谈的人是值得信任的。这是公钥和私钥的用武之地。
所以工作流程有点像这样:
发布于 2010-11-30 21:20:57
简化了很多:客户端为对称加密生成密钥,并将其发送到服务器,使用服务器的公钥对其进行加密。以这种方式进行安全的密钥交换。从那时起,客户端和服务器对交换的密钥使用对称加密。标准方法是Diffie-Helman key exchange,它比给定的示例稍微复杂一些。
https://stackoverflow.com/questions/4314166
复制相似问题