HTTPS的加密流程

HTTPS加密流程

  • [1. 什么是HTTPS?](#1. 什么是HTTPS?)
  • [2. HTTPS的工作流程](#2. HTTPS的工作流程)
    • [2.1 对称加密](#2.1 对称加密)
    • [2.2 非对称加密](#2.2 非对称加密)
    • [2.3 引入证书](#2.3 引入证书)

1. 什么是HTTPS?

HTTPS也是一个应用层协议,在HTTP协议的基础上引入了一个加密操作.只不过HTTP协议是按照文本的方式明文(要传输信息)传输,就会导致传输过程中数据会被篡改和泄露的情况.

通过HTTPS在HTTP的基础上进行加密,就能进一步保证数据的信息安全.

加密其实就是把明文经过一系列的转换,生成密文.解密就是把密文在进行一系列的转换,还原成密文.

在经过加密和解密的过程中,需要有一个或者多个中间数据的辅助来完成,此时我们便称为"密钥".

2. HTTPS的工作流程

2.1 对称加密

对称加密使用同一个"密钥",把明文加密成密文,也能把密文解密成明文.

此时黑客是不知道密钥是什么,也就无法获取数据,但是服务器会给很多客户端提供给服务,此时服务器就需要维护每一个客户端和每一个密钥之间的对应的关系.

如果把密钥进行明文传输,很容易就会被黑客给截获到,就不能够保证数据的安全性.所以,我们需要采用非对称加密的方式解决.

2.2 非对称加密

非对称加密会有两个"密钥",一个"公钥",一个"私钥".公钥和私钥是配对的,但是缺点就是运算速度慢.引入私钥和公钥就可以解决数据安全性.

  • 通过私钥对明文进行加密,变成密文.
  • 通过公钥对密文进行解密,变成明文.
  • 通过私钥对明文进行加密,变成密文
  • 通过公钥对密文进行解密,变成明文

    客户端在本地生成对称密钥,通过公钥加密,发送给服务器,即使黑客截获了公钥加密的数据,也无法查看原文.此时服务器再通过私钥解密,就可以获取客户端的对称密钥,并且对这个确认密钥进行加密,返回给客户端.后续客户端再和服务器通信的时候只用对称加密即可,因为密钥只有客户端和服务器知道,其他客户不知道.

但是上述还存你在一个严重的问题!就是中间人攻击,黑客可以使用中间人攻击的方式,拿到对称密钥.

为了解决中间人攻击,我们使用第三方认证的"公正机构".

2.3 引入证书

在客户端和服务器刚建立连接的时候,服务器给客户端返回一个证书,证书包含了公钥,也包含了网站的身份信息.

第三方公证机构的公钥会分发给其他的各种设备不是通过网络传输的,而是系统内置的.也可以是通过其他额外安装的公正机构的公钥.因此黑客没办法对这个环节进行中间人攻击.

当客户端拿到证书之后,也就是拿到了证书中的公钥.

此时客户端需要验证公钥是否是服务器的公钥.就需要进行校验.

进行校验的方法就需要使用到核心机制:"数字签名"=>被加密后的校验和,公正机构在生成证书的时候,会先针对证书中的其他属性,生成校验和,会使用第三方认证的私钥,针对校验和进行加密,此时别人就无法重新生成这个校验和.

  1. 如果黑客把证书的数据给修改了,把公钥替换成自己的公钥,此时客户端在进行证书校验的时候,就会很容发现被修改.
  2. 黑客如果对数字签名进行替换也是不行的,因为数字签名是先计算校验和,再使用认证机构的私钥进行加密,黑客不知道认证机构的私钥是什么
  3. 黑客是不可以构建三方机构的,因为申请一个证书还有域名,此时域名不能和网站的域名相同,因为审核过不了
相关推荐
7ACE3 小时前
Wireshark TS | TCP 零窗口探测时间
网络协议·tcp/ip·wireshark
kyle~3 小时前
计算机网络---WebSocket通信(C++)
websocket·网络协议·计算机网络
REDcker8 小时前
HTTP 协议发展详解:从 HTTP/1 到 HTTP/3
网络·网络协议·http
乾元8 小时前
数据投毒:如何通过训练数据污染埋下“后门”
运维·人工智能·网络协议·安全·网络安全·系统架构·自动化
吨吨不打野10 小时前
error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400
网络协议·http·rpc
hoududubaba16 小时前
ORAN压缩之块浮点压缩
网络·网络协议
tryxr20 小时前
如何基于UDP实现可靠传输
网络·网络协议·udp·tcp
~央千澈~21 小时前
抖音弹幕游戏开发之第8集:pyautogui基础 - 模拟键盘操作·优雅草云桧·卓伊凡
网络·python·websocket·网络协议
桂花很香,旭很美1 天前
[7天实战入门Go语言后端] Day 2:用 Go 写一个 HTTP 服务——net/http 入门
http·golang·xcode
3秒一个大1 天前
JWT 登录:原理剖析与实战应用
前端·http·代码规范