https秘钥交换

发布于 2022-09-11 16:44:40 字数 423 浏览 21 评论 0

看了https流程,有个疑问,为什么https需要选择使用ecdh这类秘钥交换?

简单一点:

  1. 客户端随机生成AES秘钥AESKey,请求数据的hash值sign
  2. 使用公钥将 AESKey+sign 进行加密,同时使用 AESkey对请求数据进行加密
  3. 最终发送给服务端的数据包含,pub.pem.encrypt(AESKey + sign), AES(data)
  4. 服务端使用私钥将 AESKey + sign 解密,再解密data
  5. 服务端将返回的数据加密 AES(response + responseSign),客户端根据秘钥解密。

不考虑中间人问题,这个过程应该是安全的,那么为什么还需要ecdh这类秘钥交换?
假设自己实现一个加密过程,公钥是内置于客户端,那么也可以防止中间人?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清欢 2022-09-18 16:44:40

问题一:非对称加密是安全的,但是效率太低,所以才要生成只有客户端和服务端都知道的密钥,然后进行对称加密。

问题二:服务端的公钥假如能内置于客户端,能防止中间人攻击。因为中间人攻击就是发生在这个获取的过程,既然都不用获取,也就没有攻击一说。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文