HTTPS

ops/2025/2/28 4:35:28/

什么是HTTPS

HTTPS是基于HTTP套了一个加密层(SSL),HTTP是明文传输,并不安全.

不知道各位在网上下载中有没有遇到这种情况,本来我们要下载一个音乐软件,但是弹出的下载链接下载的却是某个浏览器.很让人头麻.还有某数字安全卫士,也是遍布了我们网络.稍有不慎,全家桶就给你安排上

https>https://i-blog.csdnimg.cn/direct/fbf68a498b9c4f77aa1be0c85801af52.png" width="259" />

https>https://i-blog.csdnimg.cn/direct/ea643f9f60e7404ea89f0a57725e8103.png" width="392" />

上面这种现象就是运营商为了点小猫ni搞得鬼,我们就称为"运营商劫持"

很明显,这其中的玄机我们不得而知.那我们要如何杜绝这种现象,就是加密.

1.加密

解决上面最核心的解决问题就是加密.

下面我们介绍下几个密码学中的概念:

明文:真正要传输的数据

密文:针对明文进行了加密,得到的结果往往不直观

由明文变成密文==>就是加密

由密文变成明文==>就是解密

这一过程就像发电报,如果我们收到一个电报,这里电报就是属于密文,我们需要用一个密码本来进行解密.此时这个密码本就是加密解密的关键道具,我们叫做密钥

对称加密:

加密和解密使用同一个密钥,就像发电报一样,我用密码本1来进行加密发电报,收方就应该也用密码本1来进行解密.

非对称加密:

加密和解密需要两个密钥

这两个密钥是成对的:k1,k2是成对的

此时k1用来加密,k2就用来解密

也可以用k2加密,k1解密.

而两个密钥,公开出去的那个就是公钥,自己保存的就是私钥

2.HTTPS的工作流程

只要对HTTPS格式的数据进行解密,就可以拿到HTTP格式的数据

上述的运营商劫持本质上都是明文传输惹的祸.于是我们就通过加密对数据进行保护.

这里主要是针对header和body进行加密

 

(a).引入对称加密

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

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

2不同的客户端要使用不同的密钥

这里有一个问题,密钥是要传输给对方的,如果在传输之间让黑客劫持并且拿到了密钥.那我们加密就是一个笑话了

https>https://i-blog.csdnimg.cn/direct/b11c14cf142e46738f2beb3786c56ab6.png" width="530" />

那我们该如何处理呢?

这里我们针对密钥也进行加密,但是如果使用对称加密的话只是俄罗斯套娃,没有什么效果

 于是我们就会使用非对称加密.非对称加密会生成两个密钥,一个密钥告诉所有客户端,就是公钥,自己保存的就是私钥.公钥也不怕黑客知道,因为私钥只有服务器自己持有,只有公钥和私钥一起才可以进行解密.

(b)引入非对称加密

使用非对称加密 ,主要是针对对称密钥加密,确保对称密钥的安全性.

如果使用非对称密钥对数据进行加密,少来少去的还是可以胜任,但是我们传输的数据一般都是很多的,这样对于非对称加密的开销就变得非常大.所以不可取

https>https://i-blog.csdnimg.cn/direct/dc4548c67b2d41ffac2445c845ae0f1d.png" width="1551" />

但是上述的传输数据的方式还是存在一个重大漏洞

此时黑客会用自己聪明的大脑也申请一个公钥和私钥.

https>https://i-blog.csdnimg.cn/direct/3ef9720cdb34441d9e0f52c2e75ad508.png" width="1390" />

这就是中间人攻击,在传输密钥期间,黑客用自己的公钥进行了偷梁换柱,将服务器返回的公钥换成自己的公钥返回给客户端,此时客户端不知道发生了什么,就将对称密钥针对黑客的公钥发送出去,此时黑客通过自己的公钥和私钥进行解密 ,得到密钥后.为了不引起服务器的怀疑,就用服务器的公钥对密钥加密发送给服务器.

上面黑客的操作着实棋高一招,但是我们的程序员道高一尺魔高一丈.

最主要的问题就是客户端拿到公钥之后如何验证公钥是不是真的,问题就迎刃而解了

解决办法:服务器提供"证书"

证书是一个结构化数据,包含了很多属性,最终以字符串的形式提供.

证书中会包括:服务器域名,公钥,证书有效期

搭建服务器的时候,我们要从公证机构申请证书

https>https://i-blog.csdnimg.cn/direct/a1972a9313e64434aca65507481cd8d3.png" width="473" />

证书验证的过程:

证书中可能会包含这些信息

https>https://i-blog.csdnimg.cn/direct/64e4864417aa48d3baa43de237b74d9c.png" width="188" />

其中最重要的就是证书的签名.这个签名并不是真正的签名,而是根据算法将证书的数据算出他的校验和,然后公证机构使用自己的私钥(不是服务器的私钥),针对校验和进行加密,此时就得到了签名.

客户端拿到证书之后主要做两件事:

1.按照同样的校验和算法将证书中的信息进行计算得到校验和 val1;

2.通过公证机构在系统中内置的公钥来对证书进行解密,得到校验和val2;

此时就对比看两个校验和是不是一致的

一致就是没被修改过的

不一致就是被修改过的,如果黑客替换成了自己的公钥,此时客户端通过计算就会发现数据错误.此时客户端就能发现错误.

这时候浏览器就会弹出一个告警界面.告诉用户你访问的网站有风险.当然我们在访问一些奇怪的网站的时候可能会有这种情况
 

 


http://www.ppmy.cn/ops/161856.html

相关文章

微软推出Office免费版,限制诸多,只能编辑不能保存到本地

易采游戏网2月25日独家消息:微软宣布推出一款免费的Office版本,允许用户进行基础文档编辑操作,但限制颇多,其中最引人关注的是用户无法将文件保存到本地。这一举措引发了广泛讨论,业界人士对其背后的商业策略和用户体验…

轻松搭建:使用Anaconda创建虚拟环境并在PyCharm中配置

一、使用Anaconda创建虚拟环境 1. 安装Anaconda 2..conda常用的命令 3. 创建虚拟环境-以搭建MachineVision为例 4. 激活虚拟环境 5. 安装依赖包 二、PyCharm配置环境 在进行Python项目开发时,合理的环境管理是必不可少的,特别是当你在多个项目中…

双系统装多了,想要删除引导菜单上的选项?这个简单

前言 这几天一直在讲Windows双系统的方法,肯定有很多小伙伴已经通过双系统的方法成功安装了各种Windows版本的双系统。 各种双系统的方案(点我跳转) 但是双系统装多了之后,在开机引导菜单就会出现很多很多个系统选项&#xff0…

数据结构 【搜索二叉树】

搜索二叉树是STL中map和set的重要铺垫,学好搜索二叉树有助于理解map和set的特性。搜索二叉树也是一种二叉树结构,只是多了一些特定的性质。 一棵搜索二叉树可以为空树,如果不为空时,一定满足下面的性质。 若它的左子树不为空&…

算法-数据结构-图-邻接表构建

邻接表的基本概念 顶点(Vertex): 图中的每个顶点用一个节点表示。 每个顶点存储一个链表或数组,用于记录与该顶点直接相连的其他顶点。 边(Edge): 如果顶点 A 和顶点 B 之间有一条边&#xf…

可编辑PPT | DeepSeek如何赋能职场应用

这个PPT的核心内容是介绍DeepSeek如何赋能职场应用,从提示语技巧到多场景应用的详细解读。PPT首先介绍了DeepSeek的背景和团队,展示了其在AI领域的多项赛事奖项和研究成果,突出了其在人机协同和人机共生领域的专业能力。接着,PPT详…

【数字图像处理三】图像变换与频域处理

图像变换与频域处理:提升图像质量与特征提取 在数字图像处理中,图像变换和频域处理是两个非常重要的概念和技术。通过这些技术,我们不仅能够改善图像的视觉效果,还能进行更深入的图像分析,帮助我们从图像中提取有价值…

Mock测试:移动端分辨率适配

核心需求:通过 Charles 返回极端数据,测试 UI 对超长文本、大图、异常数值的兼容性 ​拦截接口​ 在移动端访问真实接口 https://api.example.com/productsCharles 左侧请求列表找到该接口,右键选择 ​Map Local ​绑定测试数据 选择该文件…