HTTPS

目录

1.定义

2.加密

3.HTTPS的工作过程

[3.1 先引入对称加密](#3.1 先引入对称加密)

[3.2 非对称加密](#3.2 非对称加密)

[3.3 中间人攻击](#3.3 中间人攻击)

[3.4 引入公正机构](#3.4 引入公正机构)

4.完整流程

5.总结


上一篇文章我们学习了HTTP协议,本篇文章我们学习HTTPS协议。

1.定义

HTTPS是什么

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

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

明文 + 密钥 =》 密文

密文 + 密钥 =》 明文

2.加密

在密码学中,使用密钥加密,主要有两种方式:

1.对称加密,加密和解密,使用的密钥,是同一个密钥

设密钥为key

明文 + key => 密文

密文 + key => 明文

2.非对称加密,有两个密钥(一对),一个称为"公钥",一个称为"私钥"

用一个钥匙加密,用另一个钥匙解密

明文 + 公钥 => 密文 明文 + 私钥 => 密文

密文 + 私钥 => 明文 密文 + 公钥 => 明文

3.HTTPS的工作过程

目标,针对HTTP这里的header和body进行加密

3.1 先引入对称加密

在上述模型中,服务器不是只和一个客户端通信,而是和很多客户端通信,每个客户端的密钥都不相同,彼此之间才能不知道对方的密钥是啥

此时要求每个客户端对应的密钥都不同,现在就需要每个客户端,在和服务器建立连接的时候,就把密钥给生成出来(此处涉及到一些随机数机制,以保证每个客户端生成的密钥都不同),客户端再把自己的密钥通过网络传输给服务器。此时很可能被黑客截获

如何让密钥更安全的到达服务器呢?

为了解决上述安全传输密钥的问题,引入了非对称加密

3.2 非对称加密

为什么不直接使用非对称加密,还要有对称加密?

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

使用非对称加密,只是用来进行这种关键环节(传输密钥),成本就比较可控,后续要传输大量的业务数据,都使用效率更高的对称加密,比较友好的做法。如果业务数据都使用非对称加密,整体的传输效率就会大打折扣了

上述 对称加密 + 非对称加密 过程就是HTTPS的

但是上述过程还存在严重的漏洞

3.3 中间人攻击

如何解决上述中间人攻击的问题?

之所以能进行中间人攻击,关键要点在于客户端没有"分辨能力"

3.4 引入公正机构

客户端拿到证书,也就拿到了证书中的公钥

客户端就需要验证这个公钥是否是服务器最初的公钥(是否被黑客篡改了)

这个过程就叫做"证书的校验"

如何进行校验?核心机制,就是"数字签名" -> 被 加密 后的检验和(拿着你数据的每个字节,代入公式,就能算出来一个结果数字,称为校验和,把这个校验和一起发送给对方,对方再按照同样的方式再计算一遍校验和,如果结果一致,就认为数据在传输的过程中,没有改变过)

此时,客户端拿到了数字签名,就可以通过系统内置的公证机构的公钥,进行解密了,得到最初的校验和

客户端再重新计算一遍这里的校验和和解密出来的校验和进行对比,如果校验和一致,就可以认为证书没有被篡改过,公钥就是可信的

那么黑客替换公钥之后,能否自己替换掉数字签名,自己算一个呢? -> 不能

校验和好算,针对校验和加密,需要使用公正机构的私钥,才能进行的

4.完整流程

5.总结

https加密:(面试中的经典面试题)

1.对称加密,加密业务数据

2.非对称加密,加密对称密钥

3.中间人攻击

4.使用证书,校验服务器中的公钥

这样一系列流程,是由SSL这样的协议来规定的(SSL后来改名成了TLS)不仅仅用于HTTPS中,也被用到了很多其他的场景里

相关推荐
没资格抱怨10 分钟前
Http和Https的区别
网络协议·http·https
黑风风14 分钟前
详解了解websocket协议
网络·websocket·网络协议
一碗手擀面18 分钟前
docker镜像发布的应用程序,其配置https的流程
docker·容器·https
老马识途2.028 分钟前
工作中,当遇到要把http请求变成https时 怎么处理
网络协议·http·https
william0820121 小时前
微信小程序使用的SSL证书在哪里申请?
服务器·网络安全·微信小程序·小程序·https·ssl
Albert XUU1 小时前
nettrace rtt分析器
linux·运维·网络·网络协议·网络安全·腾讯云·运维开发
桃酥4031 小时前
17、UDP怎么实现可靠传输【中高频】
网络·网络协议·udp
SelectDB1 小时前
SelectDB 实时分析性能突出,宝舵成本锐减与性能显著提升的双赢之旅
大数据·数据库·数据分析
V+zmm101341 小时前
电器维修系统小程序+论文源码调试讲解
java·数据库·微信小程序·小程序·毕业设计
PawSQL1 小时前
推理模型对SQL理解能力的评测:DeepSeek r1、GPT-4o、Kimi k1.5和Claude 3.7 Sonnet
java·数据库·人工智能·sql·sql优化·pawsql·deepseek