HTTPS对HTTP的加密过程

1、HTTPS是在HTTP的基础上,引入了一个加密层(SSL),对数据进行保护,HTTP 是明文传输的(不安全,很可能会被运营商通过referer劫持,或者黑客通过修改链接来窃数据)

2、加密和解密需要一个重要的道具叫做,密钥

3、对称加密:加密和解密,使用的是同一个密钥(主要针对header和body来加密)

(1)对称加密的时候,客户端和服务器需要使用同一个密钥

(2)不同的客户端需要使用不同的密钥,随机生成

我们在用k2对我们的数据key进行加密的时候,就需要把我们的K2密钥也传输给服务器,服务器才能揭秘拿到key,但是我们的k2密钥可能被黑客拿到,此时数据就不安全(需要引用非对称加密)。

4、非对称加密:加密和解密使用的是两个密钥,这两个密钥,K1,K2 是成对的,可以使用K1来加密,此时就是K2解密,也可以使用K2加密,此时就是K1解密,一个密钥公开出去称作公钥,另一个自己保存好叫做私钥。主要目的是为了对对称密钥进行加密,确保密钥的安全性,不能直接使用非对称密钥对各种数据直接进行加密,因为这样CPU的开销太大,消耗太多的CPU资源。

黑客虽然可以拿到公钥,但是密文需要通过私钥才能解密,私钥黑客拿不到(但是此方法仍然有漏洞)

5、非对称密钥的漏洞

我们黑客在中间过程对公钥进行了置换,我们的客户端不知道是谁传来的公钥所以就也会对黑客传来的公钥之后就对数据基于黑客的公钥传输,黑客在中见过程就通过自己的私钥公钥获取到了数据,之后把数据再通过公钥pub1进行传送给服务器,这样的过程客户端和服务器发现不了

6、为解决上述黑客置换公钥的问题,我们引入了证书认证(证书是一个结构化的数据,帧数会包含一系列信息,比如服务器的主域名,公钥,证书有效日期...,证书是搭建服务器的人,要从第三方机构进行公正的申请)

返回证书的时候黑客是不能把证书中的公钥替换成自己的公钥的(因为客户端拿到证书之后会先对证书验证真伪)证书中有证书签名,签名本质上是一个加密的校验和,这个校验过程需要通过一系列的算法来完成

(1)如果两份数据一样校验和经过算法算出来的就一样,反之不同,颁布证书的机构会在发布证书时候给这个证书计算出一个校验和,然后公证机构用自己的私钥对这个校验和进行加密,就得到了证书的签名

(2)如果证书被修改了那么我们的客户端和服务器对证书的校验和就不同,就会报警,如果黑客修改公钥后想尝试重新生成签名,因为黑客不知道公证机构的私钥,就不能对重新生成的数据进行加密,如果黑客拿着自己的私钥进行加密,到了客户端那里也会解密失败。(工作证机构对应的公钥都包含在常见的系统windows中)

(3)黑客不能去申请公证机构的证书,因为黑客申请的证书的域名和服务器的域名肯定不同,域名是唯一的,此时都不需要校验和就知道是假的

相关推荐
隐擎fox6 小时前
深入理解网络传输层安全:TLS 指纹识别(JA3/JA4)原理与 Python 协议层检测实战
爬虫·python·网络协议·安全·网络安全·https
游戏开发爱好者86 小时前
网络连接排查指南,谁在电脑后台偷跑流量,哪些程序在联网
网络协议·计算机网络·网络安全·ios·adb·https·udp
Jeremy_WW7 小时前
QSFP/QSFP-DD/OSFP 通用管理接口规范(CMIS)解读:13 Page 9Fh
网络·网络协议·信息与通信·光模块·cmis
企业通信技术笔记14 小时前
企业IM内外网隔离部署:DNS、证书、WebSocket与跨网接口设计
websocket·网络协议·架构·php·信息与通信
流烟默15 小时前
HTTP 连接管理技术梳理:JDK KeepAliveCache 机制与池化选型
java·网络协议·http
Java小白笔记16 小时前
FlClash TUN 栈模式选择与验证指南
网络·网络协议
清水白石00816 小时前
ThreadPoolExecutor 线程越多越快?从 30ms HTTP 调用讲透并发数、连接池与背压
网络·网络协议·http
IT小白杨16 小时前
eBay多账号如何应对关联判定:主体、收款、IP、环境四层配置清单一次讲清
java·网络·网络协议·tcp/ip·自动化·指纹浏览器
隐擎fox18 小时前
网络传输安全剖析:WebRTC 本地真实 IP 泄漏机制(STUN/TURN)与 Python 防护检测实战
网络·网络协议·tcp/ip·安全·webrtc
为思念酝酿的痛18 小时前
应用层协议HTTP
网络·网络协议·http