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中,也被用到了很多其他的场景里

相关推荐
荒川之神4 分钟前
ORACLE _11G_R2_ASM 常用命令
数据库·oracle
IT培训中心-竺老师10 分钟前
Oracle 23AI创建示例库
数据库·oracle
小白学大数据29 分钟前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫
time never ceases1 小时前
使用docker方式进行Oracle数据库的物理迁移(helowin/oracle_11g)
数据库·docker·oracle
Frank牛蛙1 小时前
1.每日SQL----2024/11/7
数据库·sql
Ciderw1 小时前
块存储、文件存储和对象存储详细介绍
网络·数据库·nvme·对象存储·存储·块存储·文件存储
薛晓刚1 小时前
数据库优化指南:如何将基本功能运用到极致?
数据库
石牌桥网管1 小时前
OpenSSL 生成根证书、中间证书和网站证书
网络协议·https·openssl
stars_User1 小时前
MySQL数据库面试题(下)
数据库·mysql
未来之窗软件服务1 小时前
sql速度优化多条合并为一条语句
数据库