HTTPS的工作流程

news2024/11/25 4:48:23

hi,大家好,好久不见,今天为大家带来HTTPS协议的工作流程
在这里插入图片描述

认识HTTPS

加密是什么

HTTPS的工作流程

1.认识HTTPS

HTTPS也是应用层协议,让我们再来回忆一下TCP/IP五层协议模型
在这里插入图片描述
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!!!

在这里插入图片描述

如果此时发生劫持呢?
在这里插入图片描述
这里有两种情况
1.黑客没有密钥key,就算拿到密文也没用
2.不同的客户端的密钥都是不同的,那么我在向服务器传输数据之前我要先将自己的密钥告诉服务器,那么要通过网络传输的方式
但是当客户端将带有key的数据传输给服务器的时候就有可能被黑客截获,该怎么办呢
🚀2.引入非对称加密
客户端要把自己的key安全的传输给服务器保证不被劫持,引入非对称加密
服务器要生成一对非对称密钥
客户端要生成一个对称密钥key

画图讲解
在这里插入图片描述

**

文字讲解:
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能安全的到达服务器吗?
不能,所谓一山更比一山高,那么黑客也有办法骗过客户端和服务器
采用偷梁换柱的办法,具体咋办到的呢?
还是画个图来看
在这里插入图片描述
文字讲解:

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.引入证书
在这里插入图片描述
服务器的生成要向权威机构申请证书,证书就是一个类似对象的东西,里面有服务器的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!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/548967.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023河海大学838计算机学硕考研高分经验分享

大家好,我是陪你考研每一天的大巴学长。 大巴学长为大家邀请到了2023年838计算机学硕初试第二名的高分学长,为大家分享一下他的考研经验,经验里详细介绍了各科的复习方法,很有参考意义。 希望对大家有所借鉴和帮助,在…

C++13-STL模板-01向量(vector)

C13-STL模板 在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/ 大纲要求 【 3 】算法模板库中的函数:min、max、swap、sort 【 4 】栈 (stack)、队列 (queue)、链表 (list)、 向量(vector)等容器 1.函数模板 泛…

HNU数据结构与算法分析-作业1-算法分析

1. (简答题) 1.(教材3.4)(a)假设某一个算法的时间代价为 ,对于输入规模n,在某台计算机上实现并完成该算法的时间为t秒。现在另有一台计算机,运行速度为第一台的64倍,那么t秒内新机器…

FreeRTOS(5)----互斥量

一,互斥信号量 互斥信号量是一个具有优先级继承的二值信号量,在同步的应用中二值信号量最合适。互斥信号量适合互斥访问的那些应用。在互斥访问中互斥信号量相当于一个钥匙,当一个任务使用这个资源,资源就会被上锁,防…

[CTF/网络安全] 攻防世界 robots 解题详析

[CTF/网络安全] 攻防世界 robots 解题详析 robots.txt姿势总结 题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。 进入靶机,页面空白。 查看页面源代码: 再次结合题目Rob…

Java常用工具之StringUtils类

目录 一、字符串判空二、分隔字符串三、判断是否为纯数字四、将集合拼接成字符串五、其他方法 字符串(String)在我们的日常工作中,用得非常非常非常多。 在我们的代码中经常需要对字符串判空,截取字符串、转换大小写、分隔字符串、…

chatgpt赋能Python-python3_取模

Python3 取模:介绍与使用 在Python3中,取模运算是比较常用的运算符。本文将介绍Python中的取模运算符,并分享多种使用取模运算符的方法。 什么是取模运算符 在数学上,取模运算是将一个整数除以另一个整数,然后返回相…

后端传到前端的JSON数据大写变小写--2023

问题复现:1. 首先我先说一下,我用了lombok,事实证明和这个也有关系 前端这里写的也是按照驼峰命名来写的 控制台打印出来的数据 后台打印出来的数据 解决方法: 1. 重写get/set方法 因为我在实体类上标注了Data注解 重写get/se…

电动力学专题:闵氏几何(伪欧几何)

相对性原理和光速不变 物理定律在所有的惯性参考系里都是平等的,不存在一个特殊的惯性系。真空中的光速在所有的惯性系里都是一样的。 洛伦兹变换 距离度量:闵氏(Mins geometry) 狭义相对论下,不随惯性系变化的量闵式距离(时空间…

HNU数据结构与算法分析-作业2-线性结构

1. (简答题) 4.1 假设一个线性表包含下列元素&#xff1a; <|2,23,15,5,9> 使用Shaffer编写的教材《数据结构与算法分析》的List ADT编写一些C语句&#xff0c;删除值为15的元素。 &#xff08;要求&#xff1a;采用C或C语言描述算法&#xff09; 4.6 使用Shaffer编写…

[CTF/网络安全] 攻防世界 cookie 解题详析

[CTF/网络安全] 攻防世界 cookie 解题详析 HTTP响应的查看方法method 1method 2 总结 题目描述&#xff1a;X老师告诉小宁他在cookie里放了些东西&#xff0c;小宁疑惑地想&#xff1a;这是夹心饼干的意思吗&#xff1f; 根据提示&#xff0c;获取页面Cookie中的数据即可 页面提…

学生成绩信息管理系统

系列文章 任务2 学生成绩信息管理系统 文章目录 系列文章一、实践目的与要求1、目的2、要求 二、课题任务三、总体设计1.存储结构及数据类型定义2.程序结构3.所实现的功能函数4、程序流程图 四、小组成员及分工五、 测试score.txtbk.txt界面展示显示所有学生信息添加学生信息删…

【数据结构】数据结构中的栈

文章目录 前言什么是栈栈的实现栈的初始化入栈出栈栈的判空栈内有效数据个数返回栈顶数据栈的销毁 前言 该篇文章来了解数据结构中的栈&#xff0c;栈与队列都为一种线性存储结构&#xff0c;同时栈与队列在逻辑结构上&#xff0c;都只能在头或者尾进行对数据的操作&#xff1…

25 KVM管理虚拟机-虚拟机安全启动

文章目录 25 KVM管理虚拟机-虚拟机安全启动25.1 总体介绍25.1.1 概述25.1.2 功能说明25.1.3 约束限制 25.2 安全启动实践25.2.1 虚拟机配置25.2.2 证书导入25.2.3 安全启动观测 25 KVM管理虚拟机-虚拟机安全启动 25.1 总体介绍 25.1.1 概述 安全启动&#xff08;Secure Boot…

基于JAVA的高校宿舍管理系统的设计与实现(论文+源码)_kaic

目 录 1 绪论 1.1 研究背景 1.2 研究目的和意义 1.3 课题任务 1.4 本文结构 2 开发工具及技术介绍 2.1 开发工具介绍 2.2 开发技术介绍 3 系统分析 3.1 可行性分析 3.2 需求分析 4 系统设计 4.1 系统结构设计 4.2 系统功能模块设计 4.3 业务时序设计 4.4 住宿流程设计 4.5 数…

CSS-预编译器-Sass

前言 Sass 是一款强化 CSS 的辅助工具&#xff0c;它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能&#xff0c;这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库&#xff08;如 Compass&am…

【MySQL】MySQL基础知识详解

文章目录 1. MySQL概述1.1 数据库相关概念1.1.1 数据库、数据库管理系统与SQL1.1.2 关系型数据库与数据模型 1.2 MySQL数据库1.2.1 MySQL的安装与配置1.2.2 MySQL服务的启动与停止1.2.3 连接MySQL服务端 2. SQL2.1 SQL简介2.2 DDL2.2.1 数据库操作2.2.2 表操作2.2.2.1 创建表2.…

无任何格外需求的命令行C++飞机大战,内含BOSS,动画,万行代码!免费奉上!

个程序的源码没有什么技术要求&#xff0c;一般至少能看懂95%&#xff0c;因为博主是大一上学期写着玩的&#xff0c;当写了一周&#xff0c;还拿它参加了学校的创意编程比赛&#xff0c;结果第一用的ui&#xff0c;直接降维打击了&#xff0c;拿了个二等奖 操作方法游戏内都有…

OAuth2.0 OIDC1.0及落地方案

目录 一、导语二、初识OAuth2.0三、OAuth2.0四、OIDC1.0五、OAuth2.0 & OIDC1.0授权模式选型建议六、典型架构及示例6.1 用户认证中心6.2 客户端6.3 应用网关6.4 后端API服务 七、附录- OAuth & OIDC常用端点 一、导语 应用的使用离不开用户&#xff0c;所以用户认证与…

缓存架构设计Spring对于Cache的抽象架构

目录 缓存架构设计 JSR107 JSR107核心接口 JSR107图示 Spring对于Cache的抽象架构 介绍 Cacheable CachePut CacheEvict CacheConfig 缓存架构设计 JSR107 首先&#xff0c;来了解一下JSR107规范JSR是Java Specification Requests 的缩写 &#xff0c;Java规范请求&…