HTTPS的工作流程

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: HTTPS的工作流程

认识HTTPS

加密是什么

HTTPS的工作流程

1.认识HTTPS

HTTPS也是应用层协议,让我们再来回忆一下TCP/IP五层协议模型


4d22d77e85de4351bdf8a224b5de6bb9.png

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

HTTP协议在传输的时候是以文本的形式传输的,就可能会导致被劫持,这里的劫持包括但不限于运营商劫持,黑客劫持,那么我们咋办捏

采用加密的方法,也就是HTTP+SSL=HTTPS

这个加密的方式也比较复杂,我们来具体讲解


2.加密是什么


加密,涉及密码学,加密就是给明文加一个密钥,变成密文,而解密就是给密文加一个密钥,变成明文

加密的方式主要分为两类:

1.对称加密

2.非对称加密

💚对称加密

对称加密就是加密和解密都用同一个密钥.

举个例子

李明和韩美美是一对夫妻,这对夫妻拥有一套房子,李明和韩美美都拥有房子的钥匙,可以对房子的进行加锁和解锁,那么这个过程就是对称加密,因为加密和解密都是这个钥匙

优点:算法公开、计算量小、加密速度快、加密效率高;但是它也存在强大的缺点

缺点:密钥协商过程中,一旦密钥泄露,别人可以获取到密钥,这样也能对密文进行解密。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一密钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。


这个时候就引入非对称加密

💚非对称加密

有两个密钥

pub是公钥,用来加密

pri是密钥,用来解密

也可以是pub来加密,pri来解密


优点:安全性更高,公钥是公开的,秘钥是自己保存的,不需要将私钥给别人。 缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密

比如加密我用A锁,解密我用B锁,这就是一个非对称加密

HTTPS工作流程


HTTPS工作流程分为以下四个步骤

1.对称加密
2.非对称加密
3.中间人攻击
4.引入证书

🚀1.对称加密

对称加密就是使用对称密钥加密


注意注意:加密针对的是HTTP各种的header和body!!!

如果此时发生劫持呢?

d6148160be1041c99f264277f34c33c6.png

这里有两种情况

1.黑客没有密钥key,就算拿到密文也没用

2.不同的客户端的密钥都是不同的,那么我在向服务器传输数据之前我要先将自己的密钥告诉服务器,那么要通过网络传输的方式

但是当客户端将带有key的数据传输给服务器的时候就有可能被黑客截获,该怎么办呢

🚀2.引入非对称加密

客户端要把自己的key安全的传输给服务器保证不被劫持,引入非对称加密

服务器要生成一对非对称密钥

客户端要生成一个对称密钥key


画图讲解


66c8f69e88cd40e69439c3099a4651e1.png

**


文字讲解:

1.客户端生成一个key,服务器生成一对非对称密钥,pub(公钥)和pri(私钥)

2.客户端向服务器索要pub

3.服务器返回pub给客户端

4.客户端用pub给key加密,传输给服务器

5.服务器使用pri解开对key加密的pub,拿到key

6.服务器告诉客户端拿到了key

7.后续不再使用非对称加密的方式,采用对称加密的方式进行数据的传输


**

注意:

为什么使用一次非对称加密呢?

http传输数据一般都采用对称加密,因为速度快,耗费资源少,采用非对称加密只是为了传输key给服务器,key只传输一次,对称密钥是被加密传送给服务器的,黑客不知道的


黑客知道pub(公钥),但是没有pri(私钥),所以拿不到key的

总结:

非对称加密就用了一次,作用就是为了保护key不被黑客拿到,顺利传输给服务器,后续的传输就是采用对称密钥传送的,因为黑客没有对称密钥key,所以拿不到传输的数据,只有服务器才能拿到


🚀3.中间人攻击

采用上述的非对称加密就一定能保证key能安全的到达服务器吗?

不能,所谓一山更比一山高,那么黑客也有办法骗过客户端和服务器

采用偷梁换柱的办法,具体咋办到的呢?

还是画个图来看

d3360dfa1b4543bab0db100635439281.png


文字讲解:


1.客户端生成一个对称密钥key,服务器生成一对非对称密钥(pub ,pri),与此同时,黑客也生成一对非对称密钥(pub 2, pri2)

2.客户端向服务器索要公钥,服务器将公钥返回给客户端,但是这时黑客用自己的pub2发给了客户端.拦截并记录了pub

3.客户端认为服务器发回来的就是pub2就是公钥

4.客户端将自己的key用pub2加密,然后发送给服务器

5.黑客又截获了用pub2加密的key,并且用pri2进行解密,拿到key,然后再用pub对key再次加密,发送给服务器

6.服务器就收到了pub加密的key,并且对客户端说ok

7.客户端和服务器开始进行后续的数据传输 那么黑客已经拿到了key,后续的数据传输黑客全部都能看到


出现这样的问题,应该怎么办呢?

🚀4.引入证书

14948041155f490bb9f25a49f8b5e975.png


服务器的生成要向权威机构申请证书,证书就是一个类似对象的东西,里面有服务器的URL,证书的过期时间,颁布证书的机构,服务器的公钥(pub),加密后的签名,这个签名是权威机构针对证书的属性用算法选出一个校验和,然后用证书自己的私钥(pri2)进行加密


客户端拿到证书以后,首先要对证书进行校验


1.得到初始签名:客户端采用系统内置的权威机构的公钥pub2对pri2加密的签名进行解密,拿到初始签名,这个签名的校验和是权威机构算的

2.计算现在的签名:客户端用相同的算法对证书的属性重新计算,得到新的校验和.

3.比较;两个签名是否相同.如果相同,那么说明数据安全,没有被篡改,可进行后续的数据传输 如果不相同,说明证书被篡改了,客户端刘浏览器弹窗报错


这个时候我们可以相对的说,现在数据传输的安全的

有人一定会有疑问,那么黑客不能修改证书的数据吗?


首先我们知道黑客也可以拿到服务器的证书,也能用pub2解密,这个pub2是操作系统内置的,大家都有


1.黑客可以把服务器的公钥替换为自己的公钥

2.可以对证书的属性重新计算签名

但是算完以后要重新加密啊,但是加密要用到权威机构的私钥pri2,但是黑客没有!!!

所以黑客不能篡改数据,传输安全!

当然,没有绝对的安全,这里也只是相对的


最后

整个HTTPS的工作过程涉及到五个密钥

1.进行数据传输的对称加密key

2.对key进行保护的非对称密钥pub,pri

3.权威机构的私钥pri2,权威机构的公钥pub2,这个pub2是系统内置的,都有


今天的讲解就到这,我们下期再见,886!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
12月前
|
网络协议 算法 Shell
来我们探究一下net/http 的代码流程
来我们探究一下net/http 的代码流程
|
自然语言处理 安全 网络协议
HTTPS的加密机制和加密流程?
HTTPS的加密机制和加密流程?
135 0
|
3月前
|
安全 网络安全 数据安全/隐私保护
HTTPS的执行流程是什么
【8月更文挑战第15天】HTTPS的执行流程是什么
115 0
|
5月前
|
安全 网络协议 算法
Android网络基础面试题之HTTPS的工作流程和原理
HTTPS简述 HTTPS基于TCP 443端口,通过CA证书确保服务器身份,使用DH算法协商对称密钥进行加密通信。流程包括TCP握手、证书验证(公钥解密,哈希对比)和数据加密传输(随机数加密,预主密钥,对称加密)。特点是安全但慢,易受特定攻击,且依赖可信的CA。每次请求可能复用Session ID以减少握手。
62 2
|
6月前
|
安全 算法 网络安全
HTTPS 的加密流程
HTTPS (Hyper Text Transfer Protocol Secure) 是基于 HTTP 协议之上的安全协议,用于在客户端和服务器之间通过互联网传输数据的加密和身份验证。它使用 SSL/TLS (Secure Sockets Layer/Transport Layer Security) 协议来保护数据的安全性,可以防止数据被窃听、篡改或伪造。
154 3
|
6月前
|
安全 搜索推荐 数据安全/隐私保护
深入探讨HTTPS协议的原理和工作流程
【2月更文挑战第10天】
285 4
深入探讨HTTPS协议的原理和工作流程
|
存储 安全 算法
关于 HTTPS 的加密流程
关于 HTTPS 的加密流程
168 1
|
6月前
|
安全 网络安全 CDN
阿里云CDN HTTPS 证书配置流程
阿里云CDN HTTPS 证书配置流程
853 1
|
Web App开发 安全 算法
JavaEE-HTTPS的加密流程
JavaEE-HTTPS的加密流程
|
6月前
|
存储 网络安全 数据安全/隐私保护
Windows Server 2019 IIS HTTPS证书部署流程详解
Windows Server 2019 IIS HTTPS证书部署流程详解
556 0