【计算机网络】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加密:

  • 对称加密,加密业务数据
  • 非对称加密,加密对称密钥
  • 中间人攻击
  • 引入证书,校验服务器公钥
相关推荐
zhu090215010222 分钟前
minio https配置
网络协议·http·https
鹅肝手握高V五色24 分钟前
免费代理抓包工具SniffMaster(嗅探大师)抓取https
网络协议·http·https
IT 青年3 小时前
计算机网络 (56)交互式音频/视频
计算机网络
乙己40710 小时前
计算机网络——网络层
运维·服务器·计算机网络
心平气和️11 小时前
HTTP 配置与应用(不同网段)
网络·网络协议·计算机网络·http
心平气和️11 小时前
HTTP 配置与应用(局域网)
网络·计算机网络·http·智能路由器
初级代码游戏12 小时前
openssl 正确生成v3带SAN的证书
https·证书·ssl·openssl·tls·v3
Gworg12 小时前
网站HTTP改成HTTPS
网络协议·http·https
果果开发ggdoc.cn14 小时前
WordPress免费证书插件
服务器·https·ssl
IT 青年16 小时前
计算机网络 (55)流失存储音频/视频
计算机网络