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 天前
华为eNSP模拟器综合实验之- ACL控制列表核心命令全解析及场景应用
运维·网络·网络协议·华为·信息与通信
yosh'joy!!1 天前
IT/OT接口规范
网络协议·接口·modbus tcp·modbus rtu
mftang1 天前
WebSocket 通信协议详细解析
网络·websocket·网络协议
Predestination王瀞潞1 天前
5.2.1 通信->DNS域名系统协议标准(IETF RFC 1035):DNS(Domain Name System)
网络·网络协议·tcp/ip
riyue6661 天前
封装 WebSocket 工具类
网络·vue.js·websocket·网络协议·v
成空的梦想2 天前
ZLibrary反爬机制实战分析的技术文章大纲
网络协议·https·ssl
2501_915909062 天前
不用越狱就看不到 iOS App 内部文件?使用 Keymob 查看和导出应用数据目录
android·ios·小程序·https·uni-app·iphone·webview
不做菜鸟的网工2 天前
H3C IPv6 over IPv4隧道实验
网络协议
23.2 天前
【网络】TCP与HTTP:网络通信的核心机制解析
网络·tcp/ip·http
独自破碎E2 天前
【面试真题拆解】5秒内限10次HTTP接口访问,结合数据结构和算法说说你的思路
数据结构·http·面试