一、什么是HTTPS?

1.1 https是在http协议上加了一层加密解密层

如图:

https协议就是在http协议的基础上经过一层加密解密层发送,然后接收端同样需要经过加密解密层才能获取到发送过来的数据,这样就可以保证数据传输的安全性;

1.2 什么是加密?什么是解密?什么是明文?什么是密文?什么是秘钥?

明文加密后就是密文,密文解密后就是明文,除了明文跟密文外的用来辅助加密跟解密过程的其他数据为秘钥;

举例一个很简单的加密解密过程:

如图,明文7经过秘钥5加密后得到密文2,密文2再由秘钥5解密后得到明文7;

其中5是用来辅助整个加密解密过程的,5是一个秘钥;

1.3 常见的加密方式:

①、对称加密:一个秘钥:加密和解密所用的秘钥是同一个;

特点:算法公开,计算量小,加密速度快,加密效率高;

图示:

②、非对称加密:两个秘钥:需要两个秘钥来进行加密和解密:

特点:当用公钥加密时只有拥有私钥的人才能进行解密,算法复杂,运行速度慢;

图示:

二、HTTPS采用的加密方案

我们从最简单的加密方案开始,一步步优化,最后得到比较完善成熟的加密方案就是现在的HTTPS的采用的加密方案:

2.1、方案一:只使用对称加密

这种方案有两种情况:情况一:

这种情况存在的问题:因为服务端一般是少数的,而客户端是大量的,如果大量的客户端都用这个秘钥A,如果当某一天Server端更换A秘钥时,大量的客户端都需要跟着更换秘钥,这样会非常的麻烦;

如果不想这么麻烦换一个方法就是以下这种情况二:

以上方法是先从Server里获取到秘钥后再用这个秘钥来加密,这样可以不用担心Server端的秘钥更改带来的麻烦,但是如此一来加密工作形同虚设,因为中间人可以在第二个步骤时捕获到A秘钥,所以只用对称加密的方案是行不通的;

2.2 方案二:只使用非对称加密

方案二存在的问题:中间人在第二步捕获公钥保存起来,然后再在第④步时捕获Server的响应,然后通过公钥对其进行解密得到明文内容,因为这里的密文是Server通过A'(私钥)形成的,用之前保存的公钥可以破解;

2.3 方案三:双方都使用非对称加密

方案三存在的问题是:非对称加密所使用的加密算法复杂,且如果双方都是用非对称运行速度会很慢;

2.4 方案四:对称加密+非对称加密

方案四是从方案一一步步优化升级过来的策略,已经属于比较成熟熟的方案了,但是这样就真的没问题了吗?

中间人伪造秘钥:

以上之所以能被破解是因为客户端在获取到Server的S公钥时,它自身不能够辨别出接收到的是否是Server的公钥!!

那么如何才能让客户端精准正确的分辨出它所接受到的公钥的的确确是其请求的Server所发回来的公钥呢??

三、引入证书

3.1、在了解证书之前我们先对数据摘要&&数据指纹有一个了解

数据摘要也叫数据指纹,下文为了统一我就用数据摘要来进行描述:

某个数据经过哈希函数运算后生成一个散列值,这个散列值就是数据摘要;

这个散列值具有的特点:固定长度、有非常低的概率会发生冲突、唯一性、不可逆:

意思是:

因此,经过哈希运算后得到的这个字符串就是数据摘要,它能表示唯一的一篇原文数据!!

3.2、数字签名

数字签名很好理解,数字签名就是在数据摘要的基础上再进行加密!!

3.3、有了以上两个背景知识我们在来了解证书

证书就是:一坨数据经过哈希算法后得到一个数据摘要,在给这个数据摘要加密得到一个数字签名,把这个数字签名附加在这坨数据上,得到的就是证书!

看图:

CA机构:一个大家都知道都公认的具有权威信的一个机构,只有这个机构才能签名跟颁发证书;

CA机构怎么对数据摘要进行加密的:CA机构拥有一对公钥、私钥,CA机构用它的私钥进行加密,然后把它的公钥发给大家,大家可以通过这个公钥对其进行解密!

然后回归正题,在前面2.4第四个方案那里我们谈到,如何让客户端分辨出它所接收到的公钥是真正想请求的Server端的公钥呢?

第一步:Server端向CA机构申请证书,提交Sever端的域名、申请人、公钥

第二步:CA机构审核通过后给Server颁发证书

第三步:Client向Server端申请Server的公钥之前,Client端早已把CA结构发给大家的公钥保存好;

第四步:Client获取到Server的证书,这个证书上面除了数据+签名外还写有Server的公钥;Client开始验证这个公钥的真实性:只需要用提前保存好的CA公钥来解密这个证书上的签名,得到一个数据摘要,然后同时把这个证书上的数据通过哈希运算得到一个数据摘要,然后这两个数据摘要进行对比,如果一样说明这个证书上携带的公钥是通过CA机构审核的,是真实的!!

因此得到的方案五:

3.4、方案5:非对称加密+对称加密+证书认证

此时再遇到中间人攻击:①中间人把数据篡改,Client把处理后的两个数据摘要一对比就能发现;

②中间人把签名进行篡改,Client无法通过CA公钥解密签名;

③中间人直接把这个证书调包:这个证书申请时有域名、申请人等信息,不会存在两个一样的域名,Client一样能识别出来;

以上是HTTPS目前最为成熟的加密方案,也就是通过:非对称+对称加密+证书认证(但并不能保证百分百安全,往后可能还会出现某些防范不了的安全问题,所以方案没有唯一的,都是在不停的完善当中);

以上为本次分享的所有内容,如果对你有所帮助,麻烦点赞收藏+关注哦!!谢谢!!!

咱下期见!!!

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人机测量风速的思路

无人机测量风速主要依靠两种思路:直接测量和间接测量(估算)。具体方法取决于无人机的类型、搭载的传感器以及应用场景。 以下是主要的测量方法: 直接测量法(使用气象传感器): 原理:…

24. 开发者常用工具:抓包,弱网模拟,元素检查

打开网页F12进入开发者页面。 ctrl shift n进入无痕模式,不会自动清理cookie,便于保持登陆状态 本文介绍浏览器开发者工具中三个常用功能:抓包并导入 Postman、模拟弱网环境、检查页面元素与样式。可用于前端调试、接口分析、页面优化等场景…

将 Burp Suite 的请求复制到 Postman

将 Burp Suite 的请求复制到 Postman 的步骤如下: 方法 1:直接复制原始请求(推荐) 在 Burp 中捕获请求 在 Proxy → HTTP history 或 Target → Site map 中找到目标请求。右键请求 → (Copy) → Copy as c…

MySQL RC隔离级别惊现间隙锁:是bug吗?

在MySQL的默认事务隔离级别——读已提交(Read Committed, RC)中,开发者普遍认为不会出现间隙锁(Gap Lock)。这一认知源于RC级别的设计原则:仅通过行锁确保已提交数据的可见性,而将幻读问题交由应…

恢复MacOS 26系统后台的动作命令

1、终端 输入 sudo mkdir -p /Library/Preferences/FeatureFlags/Domain回车后输入mac解锁密码。 2、输入强制关闭命令 sudo defaults write /Library/Preferences/FeatureFlags/Domain/SpotlightUI.plist SpotlightPlus -dict Enabled -bool false它会“强制关闭 Spotlight…

01-JS资料

JS数据类型 var str abc; var num 123; var bool true; var und undefined; var n null; var arr[x,y,z]; var obj {}; var fun function() {}; console.log(typeof str); //string console.log(typeof num); //number console.log(typeof bool); //boolean consol…

学习日记-day34-6.20

知识点: 1.快速入门 知识点 核心内容 重点 IOC容器创建 通过ClassPathXmlApplicationContext加载XML配置文件创建容器,关联beans.xml 容器与配置文件的绑定关系(多配置文件支持) Bean获取方式 1. getBean(String id)返回…

如何使用 neptune.ai 优化模型训练期间的 GPU 使用率

GPU 可以大大加速深度学习模型的训练,因为它们专门用于执行神经网络核心的张量运算。 由于 GPU 是昂贵的资源,因此充分利用它们至关重要。GPU 使用率、内存利用率和功耗等指标可以洞悉资源利用率及其改进潜力。提高 GPU 使用率的策略包括混合精度训练、优…

腾讯混元3D制作简单模型教程-1

腾讯混元3D制作简单模型的零门槛教程,涵盖新手快速入门与进阶操作,结合官方工具特性及行业实践,分为两个核心板块: 🎯 一、新手零门槛:5分钟生成可打印模型(适合完全小白) 通过腾讯元宝APP的“3D角色梦工厂”功能,无需任何建模基础: 上传照片 打开腾讯元宝APP → …

一个库,比如kott_tinymce ,想把的依赖库从kotti升级到kotti2 ,请问我是不是查找替换,把所有的kotti字符替换成kotti2就行了?

一个库,比如kott_tinymce ,想把的依赖库从kotti升级到kotti2 ,请问我是不是查找替换,把所有的kotti字符替换成kotti2就行了? kotti和kotti2的包结构、模块路径、接口完全一样,除了import kotti 变成kotti2 如果 kotti…

企业实践 | 银河麒麟KylinOS-V10(SP3)高级服务器操作系统基础安装指南

前言:国产操作系统的崛起与实践背景 在国产化浪潮与信息技术自主可控的大背景下,银河麒麟操作系统作为国产操作系统的代表之一,正逐步成为企业级应用的重要选择。本文将详细介绍银河麒麟高级服务器操作系统V10 SP3版本的基础知识与安装实践&…

Ubuntu 一键安装 ROS

Ubuntu 一键安装 ROS 安装命令如下: wget http://fishros.com/install -O fishros && . fishros 指令执行后,显示log如下图: 之后根据不同的系统安装对应的ros版本即可。

深度学习——基于卷积神经网络实现食物图像分类【4】(使用最优模型)

文件目录 引言一、环境准备二、数据预处理训练集预处理说明:验证集预处理说明: 三、自定义数据集类四、设备选择五、CNN模型构建六、模型加载与评估1. 加载预训练模型2. 准备测试数据3. 测试函数4. 计算准确率 七、完整代码八、总结 引言 本文将详细介绍…

C++基础算法————并查集

C++并查集详解与实战指南 一、引言 并查集(Union-Find)是一种高效的数据结构,用于处理一些不相交集合的合并与查询问题。它在图论、社交网络、网络连通性等领域有广泛的应用。并查集的核心思想是通过一个数组来记录每个元素的父节点,从而将元素组织成若干棵树,每棵树代表…

系统性能优化的关键手段

系统性能的提升方向 服务器并发处理能力:通过优化内存管理策略、选择合适的连接模式(长连接或短连接)、改进 I/O 模型(如 epoll、IOCP)、以及采用高效的服务器并发策略(如多线程、事件驱动等)&a…

httpclient实现http连接池

HTTP连接池是一种优化网络通信性能的技术,通过复用已建立的TCP连接减少重复握手开销,提升资源利用率。以下是关键要点: 核心原理与优势 ‌连接复用机制‌ 维护活跃连接队列,避免每次请求重复TCP三次握手/SSL协商,降低…

广义焦点丢失:学习用于密集目标检测的合格和分布式边界盒之GFL论文阅读

摘要 一阶段检测器通常将目标检测形式化为密集的分类与定位(即边界框回归)问题。分类部分通常使用 Focal Loss 进行优化,而边界框位置则在狄拉克δ分布下进行学习。最近,一阶段检测器的发展趋势是引入独立的预测分支来估计定位质量,所预测的质量可以辅助分类,从而提升检…

Real-World Deep Local Motion Deblurring论文阅读

Real-World Deep Local Motion Deblurring 1. 研究目标与实际问题意义1.1 研究目标1.2 实际问题1.3 产业意义2. 创新方法:LBAG模型与关键技术2.1 整体架构设计2.2 关键技术细节2.2.1 真实模糊掩码生成(LBFMG)2.2.2 门控块(Gate Block)2.2.3 模糊感知补丁裁剪(BAPC)2.3 损…

【Docker基础】Docker镜像管理:docker commit详解

目录 引言 1 docker commit命令概述 1.1 什么是docker commit 1.2 使用场景 1.3 优缺点分析 2 docker commit命令详解 2.1 基本语法 2.2 常用参数选项 2.3 实际命令示例 2.4 提交流程 2.5 步骤描述 3 docker commit与Dockerfile构建对比 3.1 构建流程对比 3.2 对…

可调式稳压二极管

1.与普通稳压二极管的比较: 项目普通稳压二极管可调式稳压二极管(如 TL431)输出电压固定(如5.1V、3.3V)可调(2.5V ~ 36V,取决于外部分压)精度低(5%~10%)高&a…