HTTPS传输过程

HTTPS:超文本传输安全协议

相较于HTTP明文传输,HTTPS增加了SSL/TLS进行了加密增加了通信的安全性。

SSL和TLS是两个不同的加密方法,SSL是TLS的前身,现在绝大多数浏览器使用的是TLS,所以着重了解以下TLS的概念即可。

首先了解以下加密的概念,信息传输的过程中为了防止别人监听我们就需要对传输的信息进行加密,加密模式有两种对称加密和非对称加密。

  • 对称加密:双方使用相同的公钥和私钥,容易被暴力破解
  • 非对称加密:两个人使用不同的私钥和公钥

非对称加密的过程:

  • 客户端发送自己的公钥
  • 服务器发送自己的公钥,以及使用客户端公钥加密的自己的私钥
  • 客户端发送使用服务器公钥加密的私钥
  • 现在双方都有对方的私钥和公钥就可以进行信息传输了

对称加密也存在它的问题,比如沟通的对象并不能保证是真实的客户端,一旦服务器的私钥泄漏会造成很大的问题,TLS考虑到这种情况采用了两种策略。

  • 数字证书验证
  • 由非对称加密转向对称加密

数字证书这个东西相信都见过,浏览一些问题网站时经常会遇到浏览器提示对方的数字证书有风险

HTTPS四次握手

  • 客户端发送一个client hello,告诉服务端采用的TLS版本及支持的加密套件,同时还有一个随机数这里记作r1

  • 服务器发送一个server hello,告诉客户端,服务器确认支持的TLS版本号及选择的加密套件,生成随机数r2,同时发送服务器的CA证书,如果服务器需要客户端的数字证书的话在这个阶段发出请求

  • 客户端的浏览器根据自己的证书信任列表判断这个服务器是否可信,没问题的话,客户端发送一个client key exchange,使用CA证书中的公钥加密一个随机数r3(预主密钥),同时告诉服务器接下来使用会话密钥通信并提取所有握手数据的摘要供服务器校验

  • 服务器使用私钥对预主密钥进行解密得到第三组随机数,然后使用约定的加密算法使用三组随机数生成会话密钥,服务器进行最后的响应,通知客户端接下来可以使用会话密钥了,同时把之前握手的数据进行提取摘要发送过去供客户端校验

HTTPS优点

  • 整个过程中私钥并未进行传输所以安全性更高,如果服务器的私有不泄露一般不会出现信息泄漏的情况
  • 引入了CA证书,有了证书的加持连接行为变得可控了许多

下面简单看一下数组证书的内容

使用数字证书的好处可以举一个例子,比如半夜你正在一个使用HTTP的网站看小说,这个时候你的室友想要整蛊你一下,他就可以通过一些工具模拟成一个中间人,你和他之间进行交换密钥,他和网站交换密钥,它可以修改你发送的信息然后修改之后再转发给服务器,这个过程神不知鬼不觉。

CA证书验证过程

  • 使用颁发证书机构提供的公钥提取数字签名得到一个证书内容的哈希值,然后自己对证书内容进行哈希,比较两段内容是否一样

所以说引入了CA证书后就可以确保和你通信的就是他本人了,他对证书内容进行修改的话也会因为没有颁发机构的私钥而无法得到正确的数字签名。

相关推荐
阿星_8 小时前
pydio登陆不了分析问题
网络协议·http·https
Joy T9 小时前
Gzip 压缩原理与实践:HTTP 响应压缩、性能收益与工程配置
网络·网络协议·http
陈希1231 天前
Nginx 从入门到能扛事:反向代理、负载均衡与 HTTPS 实战
nginx·https·负载均衡
博客zhu虎康2 天前
实现局域网P2P通信:内网发送消息
网络·网络协议·p2p
FungLeo2 天前
成为全栈·基础补充·域名、DNS 与 HTTPS 证书
https·网络基础·网站部署·tls证书·成为全栈·域名 dns
xixingzhe23 天前
AI 对话打字机效果:SSE 和 HTTP 的区别与适用场景
网络·网络协议·http
叼烟扛炮3 天前
Linux 学习笔记(五十一):数据链路层与 ARP 协议——局域网寻址与黑客骗局
linux·网络·网络协议·php·tcpdump
沫璃染墨3 天前
从零入门计算机网络系列(十四):TCP报文与字节流本质——从数据封装到报文边界
linux·服务器·网络·网络协议·tcp/ip·tcp
byte轻骑兵3 天前
【LMP】规范精讲[13]: 参数的户口本、公钥的集装箱与出厂的兜底值
人工智能·网络协议·人机交互·lmp·蓝牙链路管理
流浪0013 天前
计算机网络篇17:传输层——TCP 超时重传、三次握手与四次挥手,TIME_WAIT 为什么要等 2MSL
网络协议·tcp/ip·计算机网络·三次握手·四次挥手·超时重传