Https协议加密过程,中间人攻击详解

在上一篇博客中我们讲到了http协议http://t.csdnimg.cn/OsvCh,没看过之前建议先瞅瞅。

https本质就是对http协议进行了一层加密。为什么要进行加密呢,也参考上面一篇文章,涉及到运营商劫持。

因为http是明文传输,所以要对http进行修改和截取是很容易的事,但是要是对请求进行加密的话,即使你拿到我请求了,也不知道这个请求是什么含义。

Https协议

在学习和了解https协议之前,我们先对加密和解密有一个初步的认识,

  • 明文 + 秘钥 --> 密文     加密
  •  密文 + 秘钥 --> 明文    解密

具体的过程一般是很复杂的数学和算法换算,看开发者如何定义的。 

同时,有的场景 加密和解密是使用的同一个密钥 这个加密称为对称加密
加密和解密使用不同秘钥 这个加密称为非对称加密

非对称加密 一般是生成一对秘钥 “ 公钥 ”  “ 私玥 ” 他们之间有一定的关系的,既可以使用公钥加密,私钥解密,也可以使用私钥解密公钥加密。

http协议加密过程

1.对称秘钥

在http协议中,最简单的一个方法就是引入对称秘钥,加密传输过程中的header和body。

这样在传输过程中,黑客要是对数据进行截获,除非黑客有秘钥,否则黑客无法对秘钥进行解密。

但这样会存在一个问题,就是秘钥不能只有一个,每一个客户端都要生成一个相同的秘钥,因为秘钥一旦相同,黑客构造一个客户端就可以轻松拿到密钥了。

如果客户端生成了秘钥,就需要把秘钥传给服务器,因为服务器也不知道秘钥是啥,但是这样做也会存在一个问题,要是这个秘钥被黑客拿到呢了

当客户端传送数据的时候,秘钥被黑客截获了,黑客知道了秘钥是888888之后就可以伪造客户端了,这样数据也会很容易的被破解了。 反之,服务器生成秘钥,也会造成上述问题。

所以我们需要想办法,把秘钥安全的传送到对端,所以我们需要对秘钥也进行加密,但是不能使用对称加密了,因为还是会发送上述的情况。 所以这里我们使用非对称加密来对秘钥进行一个加密。

服务器生成一对公钥和私钥,私钥服务器留着自己用,公钥就发送给客户端。

此时客户端就可以使用公钥对888888进行加密,此时在传输888888中就是密文传输的,而黑客截取数据想拿到888888这样的数据的话,是需要私钥解密的,私钥又是又服务器保存的,而黑客可以获取的只有公钥,因为非对称是公钥加密私钥解密,所以公钥在传输过程中是透明的,黑客获取到之后也无法破解。只要把888888安全的传输过去,前面的对称加密就可以安全的进行了,因为非对称加密运算量很多,效率很低,只适合传输少量的数据。

但是其实上述问题也存在很大一个漏洞

中间人攻击

中间人攻击就可以破解掉上述加密体系。

此时我们假设有一个客户端和服务器, 服务区生成了一对非对称秘钥( pub1 , pri1 ) ,服务器此时把pub1发送到客户端作为加密对称秘钥的秘钥,此时这个请求pub1被黑客截获了,黑客呢,此时就自己也生成一对自己的非对称秘钥( pub2 , pri2 ) 此时黑客把pub2传给客户端,客户端收到了pub2之后,认为该秘钥是服务器发送过来的,然后就生成了一对对称秘钥,同时用pub2对对称秘钥进行了加密,然后黑客就收到了客户端使用pub2加密的对称秘钥,此时黑客就可以使用pri2来进行解密,此时黑客就可以拿到通信过程中的对称秘钥了,拿到对称秘钥之后,黑客此时用开始拿到服务器传过来的pub1对对称秘钥进行加密,同时发送给服务器。 这样在通信的过程中黑客也能那要对称秘钥了, 上述过程中,黑客在截或服务器的过程中,扮演了客户端,同时在于客户端通信的过程中,扮演了服务器,所以被叫做中间人攻击。

解决中间人攻击

所以不难看出解决中间人攻击的关键其实是,让客户端知道,秘钥是有服务器发送的,而不是由黑客伪造的。

所以我们引入了 证书机制,也就是引入了第三方机构,来证明秘钥是靠谱的。 我们经常在一些特别的网站上面就能看到,什么网站证书已经过期了,这个证书就是这里的这个。

第三方机构具体的认证过程

服务器在使用之前,先去第三方机构申请一个证书,等到第三方机构验证通过之后,就会给服务器颁发一个证书,证书中包含了很多信息,比如 : 服务器域名,证书过期时间,公钥,数字签名等等,其中很重要的一点就是数字签名,数字签名是对上述其他信息的一个验证机制,公正机构会先对其他数据生成一个校验和,同时用自己的私钥对校验和进行一个加密,

此时服务器在发送请求的过程中,就不仅仅只是发送请求了,而是把整个证书都发送到客户端,客户端拿到证书之后,会对证书进行一个验证(检查证书是否合法,是否是被篡改过的)

怎么检查呢,第三方公正机构会把公钥颁发给各种设备,这个公钥不是通过网络传输的,而是在比如Windows系统安装的过程中,系统就会自带知名公正机构的公钥。(因此黑客没办法对这个环节进行攻击) 所以客户端可以使用公钥对数字签名进行解密,得到了校验和的明晚,此时,客户端就可以使用同样的算法,得到同样的校验和,来对证书进行比较,要是相同就说明没有被篡改过。

要是平台在浏览小网站过程中发现证书错误,就说明刚刚的操作就已经被攻击或者篡改过期了。

其实到了这一步,黑客还可以通过伪造公正机构来解决,就不更深入讨论了,我也不会。

fiddler可以抓包,本质是因为在开始https协议的时候,要安装一个东西,本质就是让fiddler成为一个电脑的公正机构,从而实现抓包的,所以fiddler就可以合法的来进行攻击,

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

An Embarrassingly Easy but Strong Baseline for Nested Named Entity Recognition

任务描述: NER 是检测和分类文本中实体范围的任务。当实体范围在文本中彼此重叠时,这个问题被称为嵌套 NER。 解决方法: 使用基于跨度的方法来处理嵌套 NER,其中大多数方法将得到一个 n n 的分数矩阵,其中 n 表示句子…

Compose 生命周期和副作用

文章目录 Compose 生命周期和副作用生命周期副作用APIDisposableEffectSIdeEffectLaunchedEffectrememberCoroutineScoperememberUpdatedStatesnapshotFlowproduceStatederivedStateOf Compose 生命周期和副作用 生命周期 OnActive:添加到视图树。即Composable被首…

有哪些有效的复习方法可以帮助备考软考?

软考目前仍然是一个以记忆为主、理解为辅的考试。学过软考的朋友可能会感到困惑,因为软考的知识在日常工作中有许多应用场景,需要理解的地方也很多。但为什么我说它是理解为辅呢?因为这些知识点只要记住了,都不难理解,…

快速传输大文件:手机电脑互传文件的最佳解决方案

无论是工作还是生活,我们都可能需要将照片、视频、音乐或其他类型的文件从一台设备发送到另一台设备。然而,由于网络速度的限制,传统的文件传输方法可能会非常耗时。那么,有没有一种快速传输大文件的解决方案呢?答案是…

Linux网络编程(三)IO复用一 select系统调用

I/O复用使得程序能同时监听多个文件描述符。在以下场景中需要使用到IO复用技术: 客户端程序要同时处理多个socket,非阻塞connect技术客户端程序要同时处理用户输入和网络连接,聊天室程序TCP服务器要同时处理监听socket和连接socket服务器要同…

【JAVA |数组】数组定义与使用、常见的Arrays类介绍

目录 一、前言 二、数组的创建和初始化 三、数组的使用 四、数组是引用类型 1.JVM的内存分配 2.与引用类型变量 3.null 五、二维数组 六、Java中Arrays类的常用方法 1. Arrays.fill ->填充数组 2. Arrays.sort ->数组排序 3. Arrays.toString ->数组打印 …

数据中台:企业数字化转型的驱动力量_光点科技

在当今数字化快速发展的时代,企业正积极寻求转型升级的新路径。在这个过程中,数据中台以其独特的功能和价值,逐渐成为了企业数字化转型的关键驱动力。本文将深入探讨数据中台的角色、架构及其在企业中的应用,以期为企业的数字化转…

十个数据安全最佳实践:保护数据的简单方法

在德迅云安全将介绍数据安全的主要原则,并了解适用于大多数行业的 10 种数据安全最佳实践,以及云端安全检测的重要性。 数据威胁和维护数据安全的好处 什么是数据安全? 数据安全是旨在保护组织敏感资产的流程和工具的组合。有价值的数据在…

多核DSP并行计算跨平台通信解决方案

并行计算的核心是计算节点以及节点间的通信与协调机制。OpenMP虽然给开发者提供了极易上手的增量式开发方式,但是OpenMP在与复杂架构的MCSDK结合后,工具与代码产生了大量不可调试的黑盒子,更是决定了它不能用于关键任务领域,如军工…

C语言(指针)1

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,关注收藏,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记&#x…

用python写个控制MicroSIP自动拨号和定时呼叫功能(可用在小型酒店叫醒服务)

首先直接上结果吧,MicroSIP 助手,控制MicroSIP自动拨号,定时呼叫的非常实用小工具! 在使用MicroSIP 助手之前,我们需要了解MicroSIP是什么,MicroSIP是一个SIP拨号软件,支持注册任意SIP平台实现拨…

Linux学习笔记:信号

信号 在Linux中什么是信号信号的产生方式硬件产生的信号软件产生的信号异常产生的信号 进程对信号的处理信号的保存信号方法更改函数signal信号处理的更改恢复默认信号忽略 信号的管理信号集 sigset_t对信号集的操作 信号的捕捉过程 在Linux中什么是信号 在 Linux 系统中&…

Python中tkinter编程入门1

1 tkinter库简介 tkinter是Python的标准库,用来进行GUI(Graphical User Interface,图形用户界面)编程。 2 导入tkinter库 tkinter是Python默认的GUI库,因此,IDLE中已经包含了该库,使用时无需…

在uniapp中如何安装axios并解决跨域问题

目录 1、安装axios 2、导入 3、使用(发请求) 2.解决跨域问题 1.为什么要解决跨域问题? 2.前端如何解决跨域问题? 1、安装axios npm install axios 2、导入 在main.js中导入使用 import axios from axios; // 创建一个名…

男士内裤什么品牌质量好?男士内裤选购指南攻略分享

有很多小伙伴认为男士内裤只是穿在里面的,只要能穿就不讲究了。但实际上选择一些质量不好的男士内裤会让穿着舒适性十分不佳,同时还会因为不具备抗菌效果而滋生细菌,导致出现健康问题。 最近我也是深入研究了一番关于男士内裤,今天…

旺店通·企业奇门与金蝶云星空对接集成订单查询打通销售订单新增

旺店通企业奇门与金蝶云星空对接集成订单查询打通销售订单新增 对接源平台:旺店通企业奇门 慧策最先以旺店通ERP切入商家核心管理痛点——订单管理,之后围绕电商经营管理中的核心管理诉求,先后布局流量获取、会员管理、仓库管理等其他重要经营模块。慧策…

该怎么发外贸开发信才能瞄准大客户?

1.要知道80%的业务源自于大客户,要合理利用自己的时间。其实我自己发邮件一直都是粗发模式,效果也还可以,主要是因为我的客户都是展会上的,所以拒收和失败率会很低,而且客户意向度一直很高,但是花费的时间精…

泉州晋江厦门拉货最便宜的7个方式,建议收藏

众所周知,搬家、拉货的时间长、距离长,运费也比较贵。面对不菲的费用,很多人会比较谨慎,先网上搜搬家攻略,一番对比以后,找到最便宜的运输方式。那怎么运输最便宜最放心呢? 方式一:找…

[MDK] 介绍STM32使用C和C++混合编程的方法

目录 [MDK] 介绍STM32使用C和C混合编程的方法前言业务场景步骤1基础工程步骤2写代码步骤3添加cpp文件步骤4配置与编译上机现象后记 [MDK] 介绍STM32使用C和C混合编程的方法 前言 搞单片机编程大多数还是使用MDK编程,自己对MDK这个软件也比较熟悉,在网络…

【RAG 论文】Dense X 检索:将“命题”作为检索粒度

论文:Dense X Retrieval: What Retrieval Granularity Should We Use? ⭐⭐⭐⭐ Code: github.com/ct123098/factoid-wiki 文章目录 一、论文速读二、命题(Proposition)三、FactoidWiki四、实验及分析4.1 Passage Retrieval 任务4.2 Open-Do…