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 一直那么证书是没有问题的, 如果不一致那么证书就是被篡改过。

相关推荐
Gh0st_Lx17 分钟前
【6】为什么有了 HTTP/1.1 ,还要 HTTP/2 和 HTTP/3
网络协议·http·php
学编程就要猛1 小时前
JavaEE初阶:网络原理-HTTP(下)
网络·网络协议·http
汤愈韬2 小时前
Full Cone NAT、行为模式
网络·网络协议·网络安全·security
灰子学技术3 小时前
Envoy TCP 层面的 Metric 指标分析
开发语言·网络·网络协议·tcp/ip·php
网络系统管理3 小时前
解决edge浏览器访问https网站报错问题
网络协议·http·https
Johnstons3 小时前
TCP Reset(RST)异常是什么?一文讲透连接被动中断的识别方法、适用场景、与超时断开的边界及排查清单
网络协议·tcp/ip·php·es·抓包分析
汤愈韬17 小时前
三种常用 NAT 的经典案例
网络协议·网络安全·security
汤愈韬18 小时前
NAT Server 与目的Nat
网络·网络协议·网络安全·security
7ACE19 小时前
Wireshark TS | TLP 超时时间
网络·网络协议·tcp/ip·wireshark·tcpdump
凯瑟琳.奥古斯特1 天前
NAT原理及作用详解
网络·网络协议