HTTPS的工作过程

目录

(1)引入对称加密

(2)引入非对称加密

(3)中间人攻击

(4)引入证书

证书如何校验:


在使用HTTP协议 通信时,属于明文传输,通过网络传输的请求信息极其容易被网络运营商或者黑客劫持,让HTTP里的header和body直接明文显示出来。

因此为了对请求的信息进行加密,就有了HTTPS协议 。HTTPS是在HTTP的基础上,引入了一个加密层(SSL)来对数据进行加密,只要针对HTTPS数据进行解密了,就能够得到HTTP格式的数据。

首先理解:明文=>密文 为加密。 密文=>明文 为解密。

加密过程中涉及到的工具就是密钥。

(1)引入对称加密

加密和解密使用的是同一个密钥。

1.对称加密的时候,客户端和服务器使用的是同一个密钥

2.不同的客户端,需要使用不同的密钥。(因为如果任何一个客户端使用的密钥都相同,那黑客也能拿到,密钥如同虚设)

对称密钥执行流程是,客户端或者服务器一方自动生成一个密钥,然后请求连接另一方,并把确定双方密钥信息。

引入对称密钥后,虽然可以对明文数据加密成密文传输,但是黑客任有可能在中间获取到密钥,当黑客拿到密钥后,此处任相当于是在进行明文传输。还是不安全。

如果我们考虑到能否对密钥(key1)进行加密成(key2), 就意味着也需要把key2也传输给服务器,但是还是可能key2还是可能被黑客拿到。因此我们就要引入非对称加密,主要目的就是为了对对称密钥进行加密,确保密钥安全性。

为什么不直接用非对称加密对headr和body数据加密是因为:非对称加密成本远远高于对称加密,资源消耗大,所以只对对称密钥进行加密性价比高。

(2)引入非对称加密

加密和解密使用的是两个密钥。这两个密钥(A,B)是成对出现的,如果使用A加密那就只能用B解密,反之亦反。

服务器公开出去的称为"公钥 ",自己保存的称为"私钥"。(手里有一把密钥的话,是无法知道另外一把的)

一般来说我们可以让服务器自动生成一对公钥和私钥, 私钥只存在服务器端,公钥提供给任何需要的一方,非对称加密过程如下:

(3)中间人攻击

非对称加密看似比较安全,但是但是也存在严重安全问题,问题就出在了第一步。

客户端请求公钥大概流程

客户端和服务器双发都感知不到中间黑客的存在,安全问题也暴露出来了。

针对上面问题,解决办法的最关键一点就是,客户端拿到公钥时,能有办法验证公钥是不是真的,而不是黑客伪造的。因此就有了引入证书的这样一个方法。

(4)引入证书

那么上面的这一套操作,可能还会害怕证书的公钥或者其他内容被黑客修改了返回给客户端,那么最重要的就是证书的校验了。

证书如何校验:

证书是一段很长的字符串,也是一个结构化数据,里面包含了好几个字符段属性,例如:服务器域名,证书的有效时间,服务器的公钥,公正机构信息.......最关键的是证书的签名。

公证机构自己有一对公钥和私钥,会把证书中除证书签名的其他字段通过一系列算法(该算法客户端能够知道),生成一个校验和,然后用自己的私钥进行加密后发放证书。

首先,把证书中除证书签名的其他字段通过一系列算法,生成一个较短的字符串,得到检验和1。

然后,使用系统中内置的公证机构公钥,对证书的签名进行解密,得到校验和2。

如果校验和1 和 校验和2 一直那么证书是没有问题的, 如果不一致那么证书就是被篡改过。

相关推荐
不可能的是1 小时前
前端 SSE 流式请求三种实现方案全解析
前端·http
Jony_2 天前
高可用移动网络连接
网络协议
chilix2 天前
Linux 跨网段路由转发配置
网络协议
gihigo19984 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频
古译汉书4 天前
【IoT死磕系列】Day 7:只传8字节怎么控机械臂?学习工业控制 CANopen 的“对象字典”(附企业级源码)
数据结构·stm32·物联网·http
白太岁4 天前
通信:(5) 电路交换、报文交换与分组交换
运维·服务器·网络·网络协议
EasyGBS4 天前
国标安全升级:GB28181平台EasyGBS支持GB35114协议的应用场景与核心优势
网络协议·安全·gb28181·gb35114
凯酱4 天前
Windows防火墙入站规则IP白名单
windows·网络协议·tcp/ip
稻草猫.4 天前
TCP与UDP:传输层协议深度解析
笔记·后端·网络协议
赤月奇4 天前
https改为http
数据挖掘·https·ssl