HTTPS的加密技术——中间人攻击

news2024/11/19 0:35:12

HTTPS的加密技术

文章目录

  • HTTPS的加密技术
    • 认识HTTPS
    • 对称加密和非对称加密
    • ①只使用对称加密方式
    • ②只使用非对称加密
    • ③两种加密算法联合使用
    • 🧛‍♂️中间人攻击
    • 📖引入证书
    • 总结https加密技术🐱‍👤

httphttps之间相差一个字母,两者之间有什么区别呢? http的出现要早于 https,使用 http在网络中传输数据时,数据在网络上相当于是明文传输的,就意味着数据可以被随意篡改,比如说一些常见的,病毒携带,信息劫持,运营商劫持,存在一定的风险,为了改善这些问题,需要引入一些加密操作,保护数据的安全性。 https便应运而生!

认识HTTPS

https是基于http协议和TCP之间添加一个TLS/SSL层来加密传输的数据,以确保传输过程中的隐私和安全。加密和解密数据是一种什么操作呢?

加密:明文-》密文

解密:密文-》明文

加密的由来——认识图灵鼻祖

计算机之父除了冯诺依曼,还有英国的图灵也是计算机之父,不过图灵鼻祖是构思计算机的鼻祖,而冯诺依曼是制造计算机的鼻祖,两个人在计算机发展的路程上有着不可抹灭的影响。在二战时期,赢得二战的胜利离不开图灵对密码的研究成果,也因此有了密码学的基础,所以说图灵是密码开山鼻祖与冯诺依曼,开启了一个新的时代,这里就不在赘述,有兴趣的小伙伴可以自行查询相关文献。

对称加密和非对称加密

对称加密:只有一个密钥key,也就是说数据可以靠这个密钥对明文进行加密和解密。对资源消耗也相对比较少,是最普遍使用的一种加密方式。

优点:

  1. 使用同一个密钥,加密解密速度快,效率高

  2. 计算速度快,不需要额外复杂的计算

  3. 适合大量数据的传输,加密效率高,传输速度快

缺点:

  1. 密钥的管理相对难一些,需要保证密钥的安全性

  2. 无法进行密钥的安全共享,因为密钥是相同的,无法传输到对方使用并解密

  3. 密钥的泄漏会造成非常大的风险,安全性难以保障

非对称加密:有两个密钥pubpri两个密钥相互制约,使用pul加密的数据,只能使用pri进行解密操作,反之,使用pri加密的数据,只能使用pul进行解密操作。

优点:

  1. 安全性能高,密钥私钥(pri)公钥(pul)的结合体,可以保证数据的安全性和完整性。
  2. 可以大规模对公钥进行传播和共享,并且不容易被恶意攻击者盗取
  3. 在数字签名和验证方面具有优势,数字签名验证发送方的身份,可以确保信息的真实性和完整性

缺点:

  1. 使用两个密钥值,操作较为复杂,加密和解密效率慢
  2. 算法复杂,需要自行生成公钥私钥,也需要大量的计算资源和时间
  3. 适用于少量数据传输,传输效率较低

对称加密和非对称加密有各自的优点和缺点,可以根据具体场景来使用不同的加密算法。

针对https的加密部分主要是headerbody部分的数据内容。

一个https报文:

橙色框是:header部分

红色框为:空白行,是body是开始

绿色框:body部分

在这里插入图片描述

接下来我们针对使用不同的加密算法进行分析:

①只使用对称加密方式

客户端和服务器各自生成一个key

在这里插入图片描述

客户机发送的数据都是由key2加密的,服务器无法解析,而服务器发送数据都是由key1加密的,客户机无法解析,如果单纯使用明文传播,那么加密就没有意义,相当于在大街上裸奔😂!!!

②只使用非对称加密

客户机服务器各自生成非对称密钥,分别使用对方的公钥进行加密操作:

在这里插入图片描述

可以发现双方数据传输成功!不过需要注意的是,非对称密钥不适合大量数据传输。而且计算相当复杂,传输效率低。虽然数据安全可以得到有效保障,不过对于效率来说,的确没有优势可言。既然你需要效率,而对称密钥算法效率高,将两者结合又会出现什么情况呢?

③两种加密算法联合使用

服务器负责生成非对称密钥,客户端生成对称密钥,只需要使用一次非对称密钥传输客户端的对称密钥即可,具体步骤:

在这里插入图片描述

两个端口使用两种加密方式传输数据的确大大提升数据传输的效率。而黑客也无法将数据进行解密操作,对于安全性也大大提升了,服务器和客户端之间的数据也可以得到保障,这就是双重密钥加密过程。

🧛‍♂️中间人攻击

在基于双重加密的数据传输过程中,也存在不安全的因素!中间人攻击是对这种方式的一大打击对象,使用中间人攻击可以有效获取对方生成的key从而达到劫持数据的目的。

基于双重加密的基础上

在这里插入图片描述

好一招“偷梁换柱”,基于黑客这样处理数据的情况下,服务器和客户机的数据被一览无遗,这就是中间人攻击,利用自身生成的pul2换掉服务器的pul,此时此刻的客户机并不知情,使用黑客的pul2对自己的key值加密,此刻的黑客只需要使用pri2来解密就可以得到客户机的key。以后来往两者之间的数据即可被黑客获取。

📖引入证书

中间人攻击对通信又是一大打击,不过对于数据传输的安全性,还是有办法可以得到解决——引入证书。证书可以保障服务器与客户机通信不受任何外界因素影响,极大的保障网络通信的安全性和双方的身份和信息安全。

证书的特点有一下几点:

身份验证:证书可以证明通信的服务器身份。

保密性:证书使用公钥和私钥对通信内容进行加密和解密,保障了通信过程中的数据保密性,避免敏感信息被中间人获取或篡改。

完整性:证书可以保证数据的完整性,在证书有一个校验证明,使用这个数值与收到的数字签名进行匹配,避免通信工程中数据被篡改。

接下来画图来分析这个证书如何保障数据安全和完整性:

在这里插入图片描述

证书中的关键信息:

服务器域名 :为了验证服务器信息

公钥 :让客户机得到公钥,对数据使用公钥加密

证书机构

签名:验证服务器身份的关键。

客户端使用证书签名的过程。

首先,是客户端向服务端发起一个请求连接,服务器收到请求,返回一个数字证书。

第二步,客户端收到证书,使用预先内置在浏览器或操作系统中的CA根证书列表进行证书认证。CA根证书列表中存放的是可信的证书颁发机构,用于验证服务器发送的证书可信度。

第三步,客户端检查证书的可行度,如果证书是由可信的证书颁发机构颁发,证书中的数字签名将被验证。如果验证成功,客户端就可以确认服务器的身份,公钥和其他证书信息,并且将其公钥作为后续通信加密数据。

第三步如果失败,跳到第四步,验证失败或者证书不安全,客户端就会出现安全警告或者拒绝连接,这就是为什么有时候在浏览器中可以看到“连接不安全”等字样的原因。

总结https加密技术🐱‍👤

https是基于http的一层加密技术,有两种加密方式,针对不同的数据传输可以使用不同加密算法结合使用,最常用也最安全的是双重加密技术,不过单独使用还是会有风险,对于中间人攻击这个算法也会被偷梁换柱,于是需要引入证书对症下药,以此来保障数据的安全性和完整性

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

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

相关文章

基于springboot+mybatis-plus+mysql+vue在线考试系统

基于springbootMybatis-plusmysqlvue在线考试系统 一、系统介绍1.系统主要功能:2.涉及技术框架:3.本项目所用环境: 二、功能展示三、其它系统四、获取源码 一、系统介绍 1.系统主要功能: 权限控制 本系统存在三个不同的角色&…

Linux 提权前信息搜集

linux前期提权也是要信息搜集 linux信息搜集可以使用软件进行,这里写四个脚本 (我们拿到webshell或者普通用户时,上传第三方软件的目录应该是Linux的tmp目录,tmp目录是临时目录,每次linux重启后该目录内容就会清除,而…

Dubbo源码篇05---SPI神秘的面纱---使用篇

Dubbo源码篇05---SPI神秘的面纱---使用篇 引言Jdk提供的SPI机制基本流程缺陷 Dubbo的SPI机制实例演示 Dubbo VS JDK SPI 小结Adaptive自适应扩展点demo演示如何做到动态适配的 按条件批量激活扩展点小结 引言 SPI全称是Service Provider Interface,其中服务提供者定…

全面提升测试效率,一键实现多文件、多Sheet的WEB自动化测试!

目录 前言: 设计目标 框架结构 实现 总结 前言: 在WEB开发中,自动化测试框架是一个不可或缺的组件。封装一个既能支持多文件,又能支持多Sheet的WEB自动化框架,将会极大地提升我们的开发效率。下面我将会详细介绍…

GPT-4平替版:MiniGPT-4,支持图像理解和对话,现已开源

项目地址:https://minigpt-4.github.io/ 论文链接:https://github.com/Vision-CAIR/MiniGPT-4/blob/main/MiniGPT_4.pdf 代码:https://github.com/Vision-CAIR/MiniGPT-4 视频:https://youtu.be/__tftoxpBAw 数据集&#xff…

el-dialog 关闭再打开后窗口内容不刷新问题

页面中有增加和编辑两个功能,由于弹窗样式都是一样的,于是将它拆分成一个子组件,父组件把状态传给子组件,子组件根据这个状态判断是做编辑操作还是新增操作. 编辑 添加 问题一:但是这样遇到了一个问题,在编辑时,只有第一次点编辑时,回显的数据才能正确显…

大学生就业工资低,想转行IT?0基础培训班学习半年云计算出来可以就业吗?挑战高薪职业!

大学生就业工资低,想转行IT?0基础学习云计算可以就业吗? 大学生就业工资低,想转行IT?0基础培训班学习半年云计算出来可以就业吗?这是一个很常见的问题,也是很多大学毕业生关心的话题。根据我了解…

探索2023年海外网红营销合作方式:提升品牌曝光度的创新策略

随着社交媒体的崛起和用户对网红的追捧,海外网红营销已经成为品牌推广的不可忽视的一部分。在2023年,有7种最火爆的海外网红营销合作方式备受瞩目。本文Nox聚星将和大家一起来详细了解这7种方式,为品牌提供更多营销灵感和策略。 1、跨平台合作…

Codeforces Round 834 (Div. 3)

题集链接 Codeforces Round 834 A. Yes-Yes?B. Lost PermutationC. Thermostat A. Yes-Yes? Example input 12 YES esYes codeforces es se YesY esYesYesYesYesYesYe seY Yess sY o Yesoutput NO YES NO YES NO YES YES NO NO YES NO YES题意&题解: 其实就…

Windows环境下安装及部署Nginx教程(含多个站点部署)

目录 一、下载安装Nginx 二、部署Nginx 三、多站点部署的情况 1、nginx域名解析,虚拟主机: 四、带https的站点如何部署,与http的有何不同点? 一、下载安装Nginx 1、官网下载地址:https://nginx.org/en/download.h…

2022 年第四届河南省 CCPC 大学生程序设计竞赛vp补题

Dashboard - 2022 CCPC Henan Provincial Collegiate Programming Contest - Codeforces Problem B. Hash 思路: 发现31的次幂取模的答案,所以如果一段太长肯定不如拆成2段。首先如果一段长度为7,那么无论他的开头是a,eh,n的谁,都有val>31^6887503…

0基础学习VR全景平台篇第29章:场景功能-音乐解说

本期为大家带来蛙色VR平台,场景管理模块-音乐功能! 功能位置示意 一、本功能将用在哪里? 优秀VR全景作品不仅注重视觉的体验,接入契合场景的背景音乐与解说; 可将音乐与解说进行全局播放或进行分场景播放&#xff0…

前端学习--Vue(4) 生命周期

一、组件的生命周期 一个组件从创建-运行-销毁的真个阶段,强调的是一个时间段 1.1 生命周期函数 1.1.1 创建 (只执行一次) created() 阶段任务:最早可以使用methods中的方法发起ajax请求获取数据,并将数据挂载到d…

论文阅读笔记(三)——有监督解耦+信息瓶颈

论文信息 《Disentangled Information Bottleneck》 论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/17120 代码地址:GitHub - PanZiqiAI/disentangled-information-bottleneck inproceedings{pan2021disentangled, title{Disentangled in…

vue3与vue2共存环境搭建

1、全局安装vue2 npm install vue-cli -g2、自行在任意位置创建一个文件夹,局部安装vue3 npm初始化 npm initnpm初始化 提示: 初始化后 出现文件package.json 如果没有初始化 会报错,且文件夹中不会新增内容 3、局部安装vue3 npm install …

一名优秀的黑客,具备的有哪些特质

想要成为网络hacker黑客?十个必会的特质 一、基本的计算机知识 把它列为第一条,相信很多人肯定会觉得不以为然,其实掌握必要的计算机知识对黑客入门非常重要。这些包括:计算机硬件的组成、操作系统的安装、Windows批处理命令、命…

LeetCode_DFS_困难_1377.T 秒后青蛙的位置

目录 1.题目2.思路3.代码实现(Java) 1.题目 给你一棵由 n 个顶点组成的无向树,顶点编号从 1 到 n。青蛙从 顶点 1 开始起跳。规则如下: 在一秒内,青蛙从它所在的当前顶点跳到另一个未访问过的顶点(如果它…

apt remove purge的区别 删除包的同时删除配置文件

1、apt remove purge的区别 查看 man apt apt remove:删除软件包,不删除配置文件。这么做的目的是将来再次安装这个包时 原来的配置文件会自动加载供使用。也可以避免误删除包,配置文件还在的话,重新安装一次软件包就可以恢复到…

亚马逊云科技出海日6月9日盛夏盛启

向全球价值链上游奋进 中国企业增强国际竞争力的关键,是努力朝全球价值链上游奋进,发力技术出海。中国的出海新机遇,背后曾是疫情在全球按下数字互联和数字化升级的快进键,跨境电商、在线社交、移动支付、数字服务等数字经济迎来…

Spring 学习总结(37)—— 了解什么是单体的模块化,Spring Modulith 入门实践

1、介绍 模块化单体是一种架构风格,代码是根据模块的概念构成的。 对于许多组织而言,模块化单体可能是一个很好的选择。 它有助于保持一定程度的独立性,这有助于我们在需要的时候轻松过渡到微服务架构。Spring Modulith 是 Spring 的一个实验项目,可用于构建模块化单体应用…