【计算机网络】HTTPS协议

  • 🎥 个人主页:Dikz12
  • 🔥个人专栏:网络原理
  • 📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香
  • 欢迎大家👍点赞✍评论⭐收藏

目录

HTTPS是什么?

为什么要加密?

加密是什么?

HTTPS工作流程

引入对称加密

引入非对称加密

中间人攻击

引入证书

总结

完整流程


HTTPS是什么?

HTTPS 也是⼀个应⽤层协议. 是在 HTTP 协议的基础上引⼊了⼀个加密层 .

HTTP 协议内容都是按照⽂本的⽅式明⽂传输的. 这就导致在传输过程中出现⼀些被篡改的.

为什么要加密?

这就不得不提一下臭名昭著的 "运营商劫持".

比如:好像是2017年,"国务院App遭流量劫持"事件,也是上新闻了.国务院app弹出疑似不良广告,经排查"基本确定为用户当地运营商http劫持导致h5页面被插入广告.."(感兴趣的可以去搜一下).

以前,在浏览器下载软件的时候,想要下载的软件跟弹出的下载链接不符合.

正常情况下:

被运营商劫持的情况下:

分析整个过程:

点击 "下载按钮", 其实就是在给服务器发送了⼀个 HTTP 请求, 获取到的 HTTP 响应其实就包含了该APP 的下载链接. 运营商劫持之后, 就发现这个请求是要下载天天动听, 那么就⾃动的把交给⽤户的响应给篡改成 "QQ浏览器" 的下载地址了.

不⽌运营商可以劫持, 其他的 ⿊客 也可以⽤类似的⼿段进⾏劫持, 来窃取⽤户隐私信息, 或者篡改内容.

在互联⽹上, 明⽂传输 是⽐较危险的事情!!!
HTTPS 就是在 HTTP 的基础上进⾏了加密, 进⼀步的来保证**⽤户的信息安全**。

加密是什么?

加密: 就是把 明⽂ (要传输的信息)进⾏⼀系列变换, ⽣成 密⽂ .
**解密:**就是把 密⽂ 再进⾏⼀系列变换, 还原成 明⽂ .

比如:83 版 <<⽕烧圆明园>> , 有⼈要谋反⼲掉慈禧太后. 恭亲王奕䜣给慈禧递的折⼦. 折⼦内容只是扯⼀扯家常, 套上⼀张挖了洞的纸就能看到真实要表达的意思.

明⽂: "当⼼肃顺, 端华, 戴恒" (这⼏个⼈都是当时的权⾂, 后来被慈禧⼀锅端).

密⽂: 奏折全⽂.
密钥: 挖了洞的纸.

HTTPS工作流程

引入对称加密

对称加密就是通过同一个"密钥",设密钥为key.

明文 + key => 密文 ;密文 + key => 明文.

这没有我们想的这么简单,服务器可不是只服务一个客户端,所以,每个客户端的密钥都是不同的,服务器就要维护每个客户端和每个密钥之间的关联关系!!!

比较理想的方式:每个客户端,在和服务器建立连接的时候就把密钥给生成出来!!!

客户端再把自已的密钥通过网络传输给服务器.

这时候传输的密钥可相当于是明文传输,如果被黑客截获可就直接凉凉了----裤衩子都被看光了!!!在对称加密的基础就需要引入非对称加密了.

引入非对称加密

非对称加密就要用到两个密钥,一个 公钥,一个 私钥.

公钥和私钥是配对的.是由服务器生成的,服务器把私钥藏好,公钥返回给客户端.

  • 通过公钥对明文加密,私钥对密文进行解密
  • 或者反着用,私钥加密,公钥解密

过程分析:

  • 客户端在本地⽣成对称密钥, 通过公钥对 对称密钥进行加密, 发送给服务器
  • 如果黑客拿到加密后的 对称密钥,也是无能为力的,公钥加密需要私钥解密,私钥只有服务器才有,也就无法获取对称密钥.
  • 服务器通过私钥解密, 还原出客户端发送的对称密钥. 并且使⽤这个对称密钥加密给客户端返回的响应数据

大家会不会有这样的疑问?

既然已经引入了非对称加密了,为啥还还需要引入对称加密?直接使用非对称加密,来完成所有的业务数据的传输不好吗?

进行非对称加密:加密 / 解密 , 运算成本是比较高的.运算速度也是比较低的.

而对称加密 : 加密 / 解密 ,运算成本低, 速度快. 业务数据使用非对称加密,整体的效率就会大大折扣.

所以,使用非对称加密,只需要进行关键环节,比如:传输密钥. 这种一次性工作,成本比较可控.

中间人攻击

过程分析:

  • 黑客自己也生成一对非对称密钥:公钥 pub2 , 私钥 pri 2
  • 当客户端询问公钥的时候,服务器响应返回一个公钥pub1,经过黑客的设备就把pub1替换成了pub2
  • 客户端就会基于pub2进行加密对称密钥,黑客就通过自己的pri2进行解密,拿到了对称密钥,于是又把对称密钥基于pub1进行加密,重新使用pub1就是为了瞒天过海,骗过服务器.

上诉过程存在问题就是:

  • 客户端如何获取到公钥?
  • 客户端如何确定这个公钥不是⿊客伪造的?

引入证书

之所以能进行中间人攻击,关键点在于客户端没有"分辨能力",客户端不知道当前这个公钥是不是黑客伪造的!!!所以,就需要引入都被大家信任的第三方"公正机构",就可以说明当前这个公钥不是伪造的,是可以信任的.

这个 证书 可以理解成是⼀个结构化的字符串, ⾥⾯包含了以下信息:

  • 证书发布机构
  • 证书有效期
  • 公钥
  • 证书所有者
  • 数字签名
  • ......

颁发证书的时候,公正机构就会针对证书的各个属性,计算出一个校验和,并且针对这个校验和进行加密 ,就得到了数字签名.

这个加密也是非对称加密,公正机构自己生成一对公钥和私钥 跟 服务器的不一样,公正机构就会自己持有私钥,而公钥往往就内置在我们的系统中,Windows系统、Linux系统......,就会自带公钥.

过程分析:

  • 服务器向 公正机构提出申请,审核通过就会给服务器颁发一个"证书".
  • 客户端请求建立连接(你的证书是是啥),服务器响应返回一个证书(包含服务器公钥).
  • 客户端就得到了一个证书,通过系统内置的公钥对证书进行解密,就拿到了公钥,就需要验证这个公钥是否是服务器最初的公钥,这个过程被称为"证书的校验".
  • 证书的校验:核心机制就是"数字签名" => 被加密后的校验和,通过系统内置的公钥进行解密,得到⼀个 hash 值(称为数据摘要), 设为 hash1. 然后计算整个证书的 hash 值, 设为 hash2. 对⽐ hash1 和 hash2 是否相等. 如果相等, 则说明证书是没有被篡改过的,公钥是可信的!!

在上诉机制下,黑客就无法对证书里的内容进行篡改了,即使篡改,也是很容易被发现的.

当黑客收到证书之后,如果直接修改里面的公钥,替换成自己的,客户端在进行证书校验的时候,就会发现校验和不一样!!客户端就认为被篡改过了,就会弹出一些对话框的形式来警告用户,存在安全风险!!!(比如你访问一些"奇奇怪怪"的网站,就很有可能会遇到这种情况~)

总结

完整流程

https加密:

  • 对称加密,加密业务数据
  • 非对称加密,加密对称密钥
  • 中间人攻击
  • 引入证书,校验服务器公钥
相关推荐
earthzhang20215 小时前
《深入浅出HTTPS》读书笔记(5):随机数
网络协议·http·https
xiaoxiongip6665 小时前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip
CXDNW5 小时前
【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0
网络·笔记·http·面试·https·http2.0
爱吃生蚝的于勒6 小时前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
城南vision7 小时前
计算机网络——HTTP篇
网络协议·计算机网络·http
‍。。。8 小时前
使用Rust实现http/https正向代理
http·https·rust
幺零九零零13 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
长安初雪17 小时前
Request 和 Response 万字详解
计算机网络·servlet
ZachOn1y19 小时前
计算机网络:运输层 —— 运输层概述
网络·tcp/ip·计算机网络·运输层
黎鹤舞82820 小时前
计算机网络易混淆知识点串记
计算机网络