【网络原理】——图解HTTPS如何加密(通俗简单易懂)

news/2024/10/31 15:45:57/

 8e19eee2be5648b78d93fbff2488137b.pnghttps>https://i-blog.csdnimg.cn/direct/8e19eee2be5648b78d93fbff2488137b.png" />

阿华代码,不是逆风,就是我疯

你们的点赞收藏是我前进最大的动力!!

希望本文内容能够帮助到你!!

目录

一:HTTP为什么不安全

二:HTTPS加密过程

1:密码学中的概念

(1)明文

(2)密文

(3)密钥

(4)对称加密

(5)非对称加密

(6)公钥和私钥

2:HTTPS工作过程

(1)引入对称加密

(2)非对称加密

(3)证书加密


一:HTTP为什么不安全

在介绍HTTP的那一篇文章中我们提了一嘴,HTTP是明文传输,不安全的。HTTPS在HTTP的基础上,引入了一个加密层(SSL)来保证安全性——防运营商劫持篡改Referer~(可以参考这篇文章)

【网络原理】——HTTP请求头中的属性-CSDN博客

比如我们想要下载一个音乐播放器,点击了下载,蹦出来的并不是这个音乐播放器的下载链接,而变成另一个的了,很常见的挂羊头卖狗肉~

https>https://i-blog.csdnimg.cn/direct/7df53277bd6b4df181b27a9a11d02eec.png" width="900" />

https>https://i-blog.csdnimg.cn/direct/84523ef449574c2695484fbc102864ba.png" width="869" />

https>https://i-blog.csdnimg.cn/direct/e7fdd67fb58f4cb08c156a275577bb40.png" width="1200" />

二:HTTPS加密过程

1:密码学中的概念

(1)明文

传输的真实的数据,表达的实际意思

(2)密文

给明文经过加密之后得到的结果就是密文,不直观,不易理解

(3)密钥

可以理解成对照表,比如我们将字符A设置成明文,我给字符A按照ASCII码值进行加密,我们通过ASCII码值表对照,知道了密文97所代表就是A.

(4)对称加密

加密和解密使用的同一个密钥,我们举个简单的例子哈,看下面的图(这种感觉,我称之为偷感)

https>https://i-blog.csdnimg.cn/direct/45f352a3424a411fbe144fb03a8c41af.png" width="1200" />

(5)非对称加密

加密和解密使用的是两个密钥,比如K1密钥和K2密钥,这两者成对的,

使用K1来加密,此时就是K2来解密;使用K2来加密,此时就是K1来解密

(6)公钥和私钥

公开出去,大家都知道的叫做公钥;私自保留的,只有自己知道的叫私钥

2:HTTPS工作过程

由引入我们知道,运营商劫持的根本原因在于“明文传输”,于是我们也提出了好几种加密对策,主要针对header和body进行加密

(1)引入对称加密

通过对称加密的方式,针对传输的数据进行加密操作

关键点:

对称加密,客户端和服务器使用的是同一个密钥

②不同的客户端,需要使用不同的密钥

③TCP建立连接后,在进行SSL握手(交换/传输密钥),最后才是加密传输

注:每个客户端连接到服务器的时候,都要自己生成一个随机密钥,在传输告知给服务器(服务器也可以生成,调换一下角色,关键在于密钥的传输),如果黑客入侵路由器拿到了这个密钥,意味着加密操作就没有意义了。

https>https://i-blog.csdnimg.cn/direct/6f7ba0636b3a4001a83ec61df5ec1755.png" width="1200" />

https>https://i-blog.csdnimg.cn/direct/1c577f62d7a4476588396e6ed7e0979a.png" width="1200" />

解决方式:对咱们得密钥也进行加密

(2)非对称加密

主要目的就是为了对“对称密钥”进行加密,确保密钥的安全性

关键点:

①传输问题上,可以让服务器生成公钥和私钥,把公钥传输给客户端,自己手持私钥

②非对称加密消耗CPU的资源远远高于对称加密,所以不能大规模使用

③黑客入侵不了的根本原因:不能对公钥进行解密

注:可以理解成——我持有信箱和和钥匙(私钥),邮递员持有信箱的锁(公钥)

https>https://i-blog.csdnimg.cn/direct/9ccaa9012aee4ed48d741edae07bef05.png" width="1200" />

(3)证书加密

问题引入:中间人攻击

上述非对称加密任然有问题——服务器可以生成一对公钥和密钥,那么黑客也可以模仿生成一对假的公钥和秘钥进行冒充

这里我们设置对称秘钥为key,非对称秘钥中公钥为pub私钥为pri

https>https://i-blog.csdnimg.cn/direct/e6fe7b08ded240f78383540a85dc353c.png" width="1200" />

解决方式:引入证书

问题关键就是,客户端在拿到公钥的时候,有办法验证这个公钥是真的,不是冒充的

证书:是一个结构化的数据(里面包含很多数据,比如:服务器的主域名、公钥、证书的有效期,以字符串的形式呈现),需要服务器从第三方公正机构进行申请https>https://i-blog.csdnimg.cn/direct/4fcc045e25f14ddea4f2b7bfb478840b.png" width="1200" />

https>https://i-blog.csdnimg.cn/direct/f67691b2b0a04b769a677ad2da32fab9.png" width="1200" />

注意:

①证书的信息是基于字符串提供,便于后面我们使用算法进行计算

②证书的私钥只有公正机构有,如果黑客用公钥解密证书,并用自己的私钥加密签名,客户端会解密失败,所以黑客无法重新生成加密的签名。

③私钥对应解密的公钥系统电脑自带就有

④校验和是对证书中的字段用(CRC,MD5等)算法得到一个较短的字符串

⑤客户端拿到证书做两件事:对证书签名解密得到校验和1,对证书的字段进行计算得到校验和2,再比较两者


http://www.ppmy.cn/news/1543373.html

相关文章

【缓存与加速技术实践】Redis 高可用

文章目录 Redis 高可用1. 持久化2. 主从复制3. 哨兵(Sentinel)4. Cluster集群持久化持久化的方式RDB 持久化触发条件执行流程启动时加载 AOF 持久化开启 AOF执行流程启动时加载 RDB 和 AOF 的优缺点 redis性能管理查看 Redis 内存使用内存碎片率内存使用…

C# .NET最小API?

在.NET 5/6中,你可以使用最小API来创建高性能的HTTP API。最小API提供了一种更轻量级的构建API的方式,它允许你直接在Program.cs文件中定义路由和处理程序,而不需要使用传统的MVC控制器。 什么是最小API? 最小API是一个用于构建HT…

【测试平台】Ewomail 邮件服务器搭建

一、邮件服务器背景介绍 背景介绍 使用的是开源的Ewomail邮件服务器,方便QA同学在进行业务测试时,通过测试平台自动注册邮件新账号, 减少手工注册的操作。前端页面调用的底层注册邮箱就是我们即将搭建的邮件服务器。 服务访问关系 前端 -&…

数学建模汇总

模型汇总 数学建模算法汇总 数据分析 数据的统计描述和分析 数据处理 用Python进行数据挖掘(数据预处理) Python机器学习库SKLearn:数据预处理 在Python中进行数据清洗和预处理缺失值处理缺失值补全 灵敏度分析 研究与分析一个系统&…

webpack5搭建react脚手架详细步骤

1. 初始化项目 首先,创建一个新目录并初始化项目: bash mkdir create-react cd create-react pnpm init --y git init 这里使用pnpm作为包管理工具,因为它在处理依赖和速度上表现更好。 2. 安装React和TypeScript 安装React和React-DOM…

[实战-11] FlinkSql设置时区(table.local-time-zone)

table.local-time-zone table.local-time-zone代码测试flink代码执行结果截图1. Asia/Shanghai 结果如下2. UTC结果如下 table.local-time-zone 设置flink程序运行期间得时区,flink的内置数据类型TIMESTAMP(3), 我们设置水位线都是基于TIMESTAMP(3)类型…

seurat对象内部结构

10x Genomics格式: barcodes.tsv 、features/genes.tsv和matrix.mtx文件 是10X Genomics单细胞转录组测序数据的标准文件格式。这些文件通常存储在一个目录中,可以使用Read10X函数从R语言中读取。 barcodes.tsv:包含了每个单细胞的条形码信息…

【AAOS】【源码分析】CarSystemUI

目录 目录 概述 CarSystemUI组件 源代码 源码位置 主要模块 编译选项 CarSystemUI与SystemUI 编译方式 Car Emulator默认服务 CarSystemUI 启动流程 缩略词 概述 AAOS中的SystemUI虽然相较手机要简单不少,但却是车载开发中的一个重要组件,它负责管理和控制车机…