网络原理——HTTP/HTTPS ---- HTTPS

在这里插入图片描述

T04BF

👋专栏: 算法|JAVA|MySQL|C语言

🫵 今天你敲代码了吗

目录

    • HTTPS
      • 加密与解密
      • HTTPS的工作流程
        • 使用对称密钥来加密
        • 使用非对称密钥 来对 对称密钥进行加密
        • 第三方公证
        • 总结

HTTPS

https本质上就是在http的基础之上 增加了加密层,抛开加密层之后,剩下的部分就和 http一样了

其中 S => SSL(安全相关的协议) 即HTTPS = HTTP + SSL

HTTPS引入的背景就是 臭臭名昭著的 运营商劫持事件
实际上,不只是运营商可以劫持,其他黑客也可以劫持,来窃取用户的信息,或者篡改请求里面的内容

试想一下,如果黑客在用户登录支付宝的时候,获取到账户余额,甚至获取到 用户的支付密码,那么后果不堪设想

因此,在互联网上,明文传输是很危险的的事情

HTTPS就是在HTTP的基础之上进行了加密,进一步来保证用户的信息安全

加密与解密

加密就是将明文(要传输的信息) 进行一系列变更之后 生成 密文
解密就是 把密文 在进行一系列变更之后 还原成 明文

这两种之间的相互转化,是通过 密钥 来实现的
即 将明文通过 密钥 转化为 密文 就是加密
将 密文 通过 密钥 转化为 明文 就是解密

而对于加密,又分为两种方式
(1)对称加密 ,指的就是 加密和解密使用的是同一个密钥.这种加密,后续进行解密的速度比较快
(2)非对称加密,指的是,此时加密解密使用的密钥是一对,分为公钥和私钥. 这种加密后续解密的速度比较慢,但是安全性更高
可以使用公钥加密,此时就是私钥解密;若通过私钥加密.此时就是公钥解密

实际上,所谓的安全都是相对的,指的实际上就是破解的成本比较高

HTTPS的工作流程

http通信本身是一个不安全的通信,为了能够保证安全,引入了加密

使用对称密钥来加密

这是相对简单的方法
在这里插入图片描述
此时黑客截获的数据,看到的是加密后的数据,无法看到原始的数据,更不用说篡改数据了

但是存在一个很大的问题

对称密钥,当存在很多个客户端的时候,客户端必须保证每一个客户端都有自己的一个密钥,与别人不一样
因为如果所有的客户端使用的都是同一个密钥,那么黑客通过自己的电脑不就也能拿到对称密钥了吗,就能够进行解密了

此时就应该让客户端自己生成一个密钥,告诉服务器就好了
在这里插入图片描述
那么问题就会出现,
这样的密钥,如果直接通过明文传输,那么后续的数据加密也就 形同虚设了
如果使用 对称密钥进行加密 ,那么就会暴露出和上面一样的问题,造成死循环

此时就要引入非对称密钥

使用非对称密钥 来对 对称密钥进行加密

实际上,为什么不直接使用非对称密钥来加密请求数据?? 本质上就是因为 非对称密钥的加密解密操作 的系统开销高很多
,消耗的时间,也比对称密钥要高很多,不太适合使用非对称密钥的方式来加密 业务数据

此时首先要做的就是对 对业务数据进行加密的对称密钥 使用非对称密钥 进行加密

此时的工作流程就是:
服务器生成一对公钥和私钥,当客户端连上服务器后,此时就将公钥告诉客户端,私钥就自己持有

在这里插入图片描述
此时,对于非对称密钥来说,所有客户端(包括黑客)拿到的公钥都是一样的,但是也是无法解密的,因为私钥在服务器手里

但是实际上,这样还是会存在问题 — 中间人攻击
在这里插入图片描述
此时关键环节就是,黑客可以自己生成一对 公钥 pub2 和 私钥 pri2
在这里插入图片描述
客户端无法区分出,当前的公钥 pub2 是不是 服务器,还是被掉包了的

客户端就会拿着pub2针对 对称密钥进行加密,并且发送给服务器

此时黑客就能拿到 密文,针对pub2 使用 pri2进行解密,从而拿到这里的 对称密钥

继续把拿到的对称密钥 通过 pub进行加密,发送给服务器

那么黑客 面对就能拿到对称密钥,扮演服务器的角色,面对服务器的时候,扮演客户端的角色,数据就泄露了

那么如何解决中间人攻击呢?? 就要引入第三方公证

第三方公证

实际上,解决中间人攻击最关键的一点就是 ,让客户端能够区分,当前来自服务器的公钥,是不是被伪造出来的公钥

解决办法就是引入第三方公证

公证机构正对客户端拿到的 公钥进行公证,此时客户端 看到这个公钥被公证了,就能认为 是这个公钥是合法的了

对于服务器,在自己的网站上线之后,就要去第三方公证机构 申请一个证书
在这里插入图片描述
其中证书里面就会包含一些信息
(1)发证机构
(2)证书的有效期
(3服务器的公钥
(4)证书的所有者
(5)持有者网站的主域名
(6)数字签名

在这里,最主要的就是这个数字签名

实际上,会根据前面的5点数据,形成一个校验和,就是基于MD5/CRC的方式,将原始数据的每个字节都带入进去,计算一遍,最终得到的一串数

数组签名就是针对这个校验和 再来一次加密,这个加密是通过 非对称密钥的形式

步骤就是,
(1)公证机构拿着一对非对称密钥 pub(公证) 和 pri(公证)
拿着pri(公证)对证书数据的校验和 进行了加密,得到了数字签名
在这里插入图片描述
此时服务器就会保存好自己申请到的证书

(2)客户端请求连接服务器的时候,服务器返回的响应里面就会包含证书
客户端就会 拿着公证机构的 公钥来进行解密
获取公证机构的公钥不是 通过网络的形式(如果通过网络的形式,就可能会出现中间人攻击)
而是操作系统内部会内置 真正的公证机构的公钥

接下来就可以拿着公证机构的公钥(来自操作系统) 来对证书里面的数字签名进行 解密了

解密之后就能拿到校验和,再自己根据证书里面的内容 计算一遍校验和

如果这两个校验和是一样的,那么就说明整个证书都是没有被篡改过的,此时证书里面的公钥就是可信的

那么为什么这种方式就能解决中间人攻击??
对于黑客来说,虽然能够和普通用户一样拿到数字签名背后的校验和
但是,拿到也没有用!!!

如果黑客修改了证书里面的公钥,那么客户端拿到经过黑客修改的证书后,计算出来的校验和 和 通过数字签名拿到的校验和 对比,就会发现不一样,判定证书非法
那如果黑客修改了公钥,并且通过修改后的内容自己计算一个新的数字签名 ??
如果这样做,由于黑客是拿不到公证机构的私钥的,只能通过自己的私钥来加密
那么用户拿到证书后,就会拿操作系统内置的公钥进行解密,.就会解密失败.因为压根就不是同一对密钥,也很会判定证书非法!!!

总结

为了保证数据的安全,不适用明文传输,而是使用对称密钥来进行加密后进行传输
那么就要保证每一个客户端都有自己对应的密钥,就可以让客户端自己生成后告诉服务器

但是这样的密钥在告诉服务器的过程,是通过网络传输的,就可能被黑客获取到
因此要进行加密,此时如果还是使用对称密钥来 对密钥进行加密,还是会暴露出上面的问题

于是引入了非对称密钥.来对 对称密钥 进行加密
但是还是会存在问题,就是 “中间人攻击”

为了解决中间人攻击,就引入了第三方公证机构

此时通过三层防护,就能保证网络数据的安全

感谢您的访问!!期待您的关注!!!

在这里插入图片描述

T04BF

🫵 今天记得敲代码

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

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

相关文章

号称超级增程电动,领克07EM-P带来技术变革?

近年来,自主品牌在新能源汽车领域百花齐放,尤其是在混合动力市场上,比亚迪的DM-i技术引领了风潮,秦L的一经亮相,整个车圈都沸腾了,“超级混动”的概念深入人心。 各大自主品牌都有了自己的混动平台和技术。…

使用import语句导入模块

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 创建模块后,就可以在其他程序中使用该模块了。要使用模块需要先以模块的形式加载模块中的代码,这可以使用import语句实现。im…

步进电机双闭环细分控制(matlab仿真)内含课设等参考文件

1.1 步进电机工作原理 步进电机是一种用电脉冲进行控制,将电脉冲信号转换成相位移的电机,其机械位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成正比,每一个脉冲信号可使步进电机旋转一个固定的角度。脉冲的数量决定了旋转的总角度,脉…

(ICLR,2024)HarMA:高效的协同迁移学习与模态对齐遥感技术

文章目录 相关资料摘要引言方法多模态门控适配器目标函数 实验 相关资料 论文:Efficient Remote Sensing with Harmonized Transfer Learning and Modality Alignment 代码:https://github.com/seekerhuang/HarMA 摘要 随着视觉和语言预训练&#xf…

seRsync + Rsync 实时同步

文章目录 1,结构图2,节点A2.1 安装rsync2.2 安装seRsync2.3, 创建seRsync的守护进程用systemd管理并启动2.4,上传rsync.pass密码文件到配置文件目录:/etc/2.5 ,重新加载systemd,启动sersyncd守护…

React路由学习

官方文档:https://reactrouter.com/en/main 学习时以Tutorial(教程)为主 一、创建项目 //创建项目 npm create vitelatest [项目名] -- --template react//安装react-router cd [项目名] npm i react-router-dom localforage match-sorter…

从关键新闻和最新技术看AI行业发展(2024.5.20-6.2第二十四期) |【WeThinkIn老实人报】

写在前面 【WeThinkIn老实人报】旨在整理&挖掘AI行业的关键新闻和最新技术,同时Rocky会对这些关键信息进行解读,力求让读者们能从容跟随AI科技潮流。也欢迎大家提出宝贵的优化建议,一起交流学习💪 欢迎大家关注Rocky的公众号&…

使用Xshell一键在多个会话中执行多个命令

背景 平时在工作中经常通过ssh远程操作Linux,由于我们负责的服务部署在超过5台服务器(相同的代码及路径),每次发布后执行重启都得重复操作5次关闭、检查、启动、查看日志,特别繁琐。 后来发现Xshell 7可以录制脚本&am…

大模型时代的具身智能系列专题(十一)

UMass Amherst 淦创团队 淦创是马萨诸塞大学阿默斯特分校的一名教员,也是麻省理工学院- ibm沃森人工智能实验室的研究经理。在麻省理工学院博士后期间,和Antonio Torralba教授、Daniela Rus教授和Josh Tenenbaum教授一起工作。在此之前,在清…

Ai绘画工具Stable Diffusion,手把手教你训练你的专属Lora模型,神级教程建议收藏!

哈喽,大家好,我是设计师阿威。 今天给大家带来的是Stable Diffusion训练Lora的教程,希望对大家有帮助。 一、硬件要求 我们知道Stable Diffusion WebUI对显卡要求比较高,同样Lora训练对显卡要求更高,所以要想训练一…

【Endnote】如何在word界面加载Endnote

如何在word界面加载Endnote 方法1:方法2:从word入手方法3:从CWYW入手参考 已下载EndNote,但Word中没有显示EndNote,应如何加载显示呢? 方法1: 使用EndNote的Configure EndNote.exe 。 具体步骤为&#x…

通过异步请求上传文件到七牛云

一、准备工作 创建账号、创建空间这种大家自己研究就行(有手就行) 只需要根据步骤查找对应文档 从服务端获取七牛云上传的token,生成token参考官方文档 在七牛云文档查找上传的存储区域 在七牛云控制台找到空间管理的cdn加速域名 二、后台token获取 基于准备工作1中&…

将 KNX 接入 Home Assistant 之三 功能配置

万事俱备只欠东风,不管是ETS还是HA都需要配置才能使用。还是期待以后发展到可以开箱即用。 KNXD的配置 在 《将 KNX 接入 Home Assistant 之二 准备软件》,我们已经装好了KNXD的插件,现在就需要进行配置了 配置的界面 注意图中加框的选择&…

UI 自动化测试(Selenuim + Java )

关于 UI 自动化测试工具 selenuim Java 的环境搭建推荐看SeleniumJava 环境搭建 什么是自动化测试? 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测…

分享两种论文降重最有效的方法(论文降重网站)

论文降重最有效的方法可以分为手动方法和使用降重网站两种方法。以下是详细的分析和归纳: 手动方法 删减冗余内容:对于论文中的某些内容,特别是信息冗余或不必要的描述,可以通过删减和简化来减少篇幅。确保每一段落和每一个例子都…

[FreeRTOS 基础知识] 栈

文章目录 栈的概念使用C语言实现 栈通过代码反汇编解析 栈 栈的概念 所谓的栈就是一块空间的内存,CPU的SP寄存器指向它,它可以用于函数调用,局部变量,多任务系统里保存现场。 使用C语言实现 栈 volatile int num0;int fun_b(vol…

i.MX8MP平台开发分享(RDC资源分配控制器篇)

1.spec RDC 配置信息被发送到结构端口、内存垫片、信号控制器和外设,以根据域分配控制访问。 结构使用与每个端口相关的域标识符,将此信息与总线事务一起包含在内。当从属加密垫圈遇到总线事务时,它会将事务域 ID 与 RDC 提供的允许域列表进…

串口通讯、RS485、232、SPI、I2C

串行通信与并行通信的比较 1.同步和异步 同步串口通信(Synchronous Serial Communication) 异步串口通信(Asynchronous Serial Communication) 比较 2.全双工,半双工,单工 全双工(Full Du…

Midjourney绘画参数设置详解

在数字艺术和设计领域,Midjourney是一款强大的绘画工具,它允许艺术家和设计师以数字方式创作出精美的图像。为了充分发挥Midjourney的潜力,正确设置其绘画参数至关重要。本文将深入探讨Midjourney的绘画参数设置,帮助用户更好地掌…

第十五届蓝桥杯物联网试题(国赛)

好,很好,国赛直接来个阅读理解,我猛做4个小时40分钟,cpu都干冒烟了,也算是勉强做完吧,做的很仓促,没多检查就交了,方波不会,A板有个指示灯没做,其他应该都还凑…