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

相关推荐
吴声子夜歌7 小时前
Nginx应用与运维——Nginx HTTP模块详解(数据处理功能模块)
运维·nginx·http
XiaoMaqqqq7 小时前
知名的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip
ysu_03149 小时前
Postman接口调试实战指南-从HTTP请求到环境变量-Collection与自动化测试
网络·网络协议·测试工具·http·api·postman·可用性测试
小此方9 小时前
Linux网络(十九):TCP流量控制与滑动窗口详解,超时重传和快重传到底有什么区别
linux·运维·服务器·网络·网络协议·tcp/ip
吴声子夜歌10 小时前
Nginx应用与运维——Nginx HTTP模块详解(访问控制功能模块)
运维·nginx·http
网络小江10 小时前
组网第二课:X.25 与帧中继——第一次让带宽“拼车“
网络协议
阿钱真强道11 小时前
33 嵌入式操作系统 | 模块七验收:端到端一键验收 + 项目答辩
网络·网络协议·粘包·回归测试·uloop
wuyk55515 小时前
Python网络爬虫入门到实战 第02章:HTTP/HTTPS协议超通俗精讲(GET/POST、请求头、响应码、爬虫核心基础)
爬虫·python·http
网络小江15 小时前
上网第三十二课:NAT——让 IPv4 地址“够用“的魔法
网络协议
傲世仙尊16 小时前
HTTP深水区-重定向状态码与GETPOST的传参之路
网络·网络协议·http