首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全通信基础知识

安全通信基础知识
EN

Stack Overflow用户
提问于 2010-11-30 21:17:02
回答 2查看 199关注 0票数 1

到目前为止,我还没有真正学习过安全通信,我有一些基本的问题。假设有一个浏览器(客户端)和一个服务器。据我所知,服务器既有公钥又有私钥。每个人都知道公钥,只有服务器知道私钥。因此,当客户端向服务器发送消息时,它是用服务器的公钥加密的,并且只有服务器可以解密它(因为只有服务器拥有私钥)。

现在来看我的问题:当服务器想要向客户端发送消息时会发生什么?服务器使用其私钥对消息进行加密,客户端使用公钥(众所周知)对其进行解密。到目前一切尚好。但如果有人嗅探到流量,他也可以解密消息,因为每个人都知道公钥。它的安全性如何?我确信我在这里不理解一些非常基本的东西:

提前感谢!

致以最好的问候,Petar

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-30 21:27:47

安全通信不仅涉及加密(这实际上是最容易的部分),而且更重要的是,还涉及身份验证。

可以在两方之间建立加密通信,而不需要预先交换任何密钥(例如,参见Diffie–Hellman key exchange)。

困难的部分是确保你正在与之交谈的人是值得信任的。这是公钥和私钥的用武之地。

所以工作流程有点像这样:

  1. 在客户端和服务器之间建立连接。
  2. 客户端已经知道服务器的公钥(不对称密码术),因此它可以证明另一个端点就是它们所说的那个端点:公钥用于解密令牌,该令牌在验证时表明它确实是用服务器的私钥加密的。
  3. 现在身份验证已完成,双方使用某种方法,如上面的Diffie-Hellman来建立shared secret.
  4. This共享密钥,并将其用作其余客户端/服务器session.
  5. When的所有数据交换的加密/解密密钥(对称密码术)。连接关闭,上述加密密钥被丢弃。如果建立了新连接,上述算法将为该新会话生成新的加密密钥。
票数 3
EN

Stack Overflow用户

发布于 2010-11-30 21:20:57

简化了很多:客户端为对称加密生成密钥,并将其发送到服务器,使用服务器的公钥对其进行加密。以这种方式进行安全的密钥交换。从那时起,客户端和服务器对交换的密钥使用对称加密。标准方法是Diffie-Helman key exchange,它比给定的示例稍微复杂一些。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4314166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档