当前位置: 首页 > news >正文

HTTPS 协议原理 ——4种方案

HTTPS 协议原理 ——4种方案

HTTPS 的工作过程探究

既然要保证数据安全, 就需要进行 “加密”.

网络传输中不再直接传输明文了, 而是加密之后的 “密文”.

加密的方式有很多, 但是整体可以分成两大类: 对称加密非对称加密

方案 1 - 只使用对称加密

如果通信双方都各自持有同一个密钥 X,且没有别人知道,这两方的通信安全当然是可以被保证的(除非密钥被破解)

引入对称加密之后, 即使数据被截获, 由于黑客不知道密钥是啥, 因此就无法进行解密, 也就不知道请求的真实内容是啥了.

但事情没这么简单. 服务器同一时刻其实是给很多客户端提供服务的. 这么多客户端, 每个人用的秘钥都必须是不同的(如果是相同那密钥就太容易扩散了, 黑客就也能拿到了). 因此服务器就需要维护每个客户端和每个密钥之间的关联关系, 这也是个很⿇烦的事情

比较理想的做法, 就是能在客户端和服务器建⽴连接的时候, 双方协商确定这次的密钥是啥~

但是如果直接把密钥明文传输, 那么黑客也就能获得密钥了~~ 此时后续的加密操作就形同虚设了.

因此密钥的传输也必须加密传输!

但是要想对密钥进行对称加密, 就仍然需要先协商确定一个 “密钥的密钥”. 这就成了 “先有鸡还是先有蛋” 的问题了. 此时密钥的传输再用对称加密就行不通了

方案 2 - 只使用非对称加密

鉴于非对称加密的机制,如果服务器先把公钥以明文方式传输给浏览器,之后浏览器向服务器传数据前都先用这个公钥加密好再传,从客户端到服务器信道似乎是安全的**(有安全问题)**,因为只有服务器有相应的私钥能解开公钥加密的数据。

但是服务器到浏览器的这条路怎么保障安全?

如果服务器用它的私钥加密数据传给浏览器,那么浏览器用公钥可以解密它,而这个公钥是一开始通过明文传输给浏览器的,若这个公钥被中间人劫持到了,那他也能用该公钥解密服务器传来的信息了

方案 3 - 双方都使用非对称加密

  1. 服务端拥有公钥 S 与对应的私钥 S’,客户端拥有公钥 C 与对应的私钥 C’

  2. 客户和服务端交换公钥

  3. 客户端给服务端发信息:先用 S 对数据加密,再发送,只能由服务器解密,因为只有服务器有私钥 S’

  4. 服务端给客户端发信息:先用 C 对数据加密,在发送,只能由客户端解密,因为只有客户端有私钥 C’

这样貌似也行啊,但是

• 效率太低

依旧有安全问题

方案 4 - 非对称加密 + 对称加密

先解决效率问题

• 服务端具有非对称公钥 S 和私钥 S’

• 客户端发起 https 请求,获取服务端公钥 S

• 客户端在本地生成对称密钥 C, 通过公钥 S 加密, 发送给服务器.

• 由于中间的网络设备没有私钥, 即使截获了数据, 也无法还原出内部的原文, 也就无法获取到对称密钥(真的吗?)

• 服务器通过私钥 S’解密, 还原出客户端发送的对称密钥 C. 并且使用这个对称密钥加密给客户端返回的响应数据.

• 后续客户端和服务器的通信都只用对称加密即可. 由于该密钥只有客户端和服务器两个主机知道, 其他主机/设备不知道密钥即使截获数据也没有意义. 由于对称加密的效率比非对称加密⾼很多, 因此只是在开始阶段协商密钥的时候使用非对称加密, 后 续的传输仍然使用对称加密

虽然上面已经比较接近答案了,但是依旧有安全问题方案 2,方案 3,方案 4 都存在一个问题,如果最开始,中间人就已经开始攻击了呢?

http://www.dtcms.com/a/325935.html

相关文章:

  • 5G NTN 卫星测试产品
  • vue+django 大模型心理学智能诊断评测系统干预治疗辅助系统、智慧心理医疗、带知识图谱
  • Vue 中的 Class 与 Style 绑定详解2
  • js数组reduce高阶应用
  • Linux入门DAY21
  • 硬件学习笔记--76 开关电源隔离型拓扑结构介绍
  • 九联科技基于海思 Hi2131 芯片的4G Cat.1模组在智能水表领域的应用优势
  • 押注AI大模型交付业务,亚信科技构建战略支点
  • 【02】卧安科技——卧安科技 嵌入式软件工程师-校招笔试 ,题目记录及解析
  • Vue3 学习教程,从入门到精通,Vue 3 选项式 API 语法知识点与案例详解(33)
  • 爬虫与数据分析相结合案例总结
  • 远程服务器下载百度云里文件
  • golang包管理工具中 GOPATH 与 Go Modules 的区别总结
  • JSON Schema
  • LabVIEW模糊逻辑控制车辆停靠
  • 在docker上部署fastapi的相关操作
  • day072-代码检查工具-Sonar与maven私服-Nexus
  • 深度学习-卷积神经网络-VGG
  • Maven 报错:Blocked mirror for repositories【完美解决】
  • 文旅元宇宙:科技重塑数字消费新文明
  • Azimutt:一款免费开源的多功能数据库工具
  • USB 设备百科
  • 解决:Error updating changes: detected dubious ownership in repository at
  • 爬虫和数据分析相结合的案例
  • Nami Cloud 提供高性能云服务,加速 Walrus 的应用普及
  • K8s集群+Rancher Server:部署DolphinScheduler 3.2.2集群
  • etf期权剩余0天还能交易吗?
  • Facebook广告投放进阶:ABO精测与CBO放量的协同增长策略
  • Android13 Framework隐藏某些App
  • 【深度学习基础】贝叶斯理论