超级详细的 https 中间人攻击流程。

news2025/1/18 20:23:22
  1. 客户端发送 https 请求
  2. 中间人截获 https 请求,然后在转发给服务端
    1. 中间人可以是抓包工具
    2. 中间人可以通过伪造证书的方式截获请求
  3. 服务端接收到请求【看起来是客户端发的,实际上已经经过中间人转发了】
  4. 服务端以为是一个安全的请求,向客户端发送数字证书,假设为 DC_A,证书中包含公钥和CA等信息。
    1. 作为 https 请求的服务端一定是购买了安全的证书,否则会提示不是安全的链接   
    2. 数字证书里面包含是公钥 PK_A,服务端私密保存数字证书对应的私钥SK_A
  5. 中间人截获数字证书 DC_A,使用 OpenSSL 提取其中的公钥 PK_A。然后把自己的数字证书 DC_B 发送给客户端
    1. 中间人有自己的数字证书,其中数字证书包含了自己的公钥 PK_B ,中间人私密保存自己的私钥 SK_B。
  6. 客户端接收到数字证书 DC_B【这个证书看起来是服务端发的,实际上是中间人的】,客户端会验证数字证书是否有效,步骤如下:
    1. 证书链验证:客户端检查证书是否由受信任的根证书颁发机构(CA)签发,通过信任链验证证书的有效性。
      1. 客户端的操作系统中内置了根证书,根证书通常用于验证 CA 。
      2. 根证书验证 CA 的流程是(信任链):信任设备的根证书 (操作系统内置)=> 信任根证书签发它的 CA => CA 信任颁发它的中间 CA => 以此类推,最终信任根证书签发的所有数字证书
      3. 所以,验证数字证书的本质是验证 CA
      4. 所以我们在实现中间人攻击之前,需要在我们的电脑上安装一个新的根证书,这个根证书就是用来验证中间人的数字证书的。【这个根证书和中间人证书是一个CA 签发的】
    2. 有效期验证:检查证书是否在有效期内
    3. 吊销状态检查:检查证书是否被吊销
  7. 客户端验证证书 DC_B 有效后,提取公钥 PK_B,并用公钥 PK_B 加密一个数据当作后续对称加密的私钥,这个数据通常是随机字符串使用哈希算法得到的哈希值,这里假设是 hash_B。
  8. 中间人拦截请求,得到使用自己的公钥 PK_B 加密的哈希值 hash_B,用自己的私钥 SK_B 解密,得到真实的哈希值 hash_B,这个真实的哈希值后续用来解密所有拦截的客户端的请求。
  9. 中间人再生成一个假的随机字符串 hash_A,用服务端的公钥 PK_A 加密,发给服务端。
  10. 服务端接收到请求,用自己的私钥 SK_A 解密得到哈希值 hash_A,他以为是客户端发的,实际是中间人伪造的;后续客户端用这个哈希值 hash_A 加密数据,和客户端进行后续的对称加密会话。
  11. 中间人拦截服务端的返回,用第8步假的哈希值 hash_A 就可以解密(因为是对称加密),然后再用 hash_B 加密,发给客户端
  12. 客户端接收到中间人用 hash_B 加密的数据,再用 hash_B 解密,就得到了服务端发送的数据。

更多关于中间人攻击的内容,可以参考这篇文章,非常详细!

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

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

相关文章

计算机研究生论文检索方法汇总

计算机研究生论文检索方法汇总 作为一名优质(冤种)计算机在读研究生,检索论文是一项不可或缺的技能之一。 一、paperwithcode paperswithcode是一个免费开放的资源平台,提供了机器学习领域的论文、代码、数据集、方法和评估表。在这里我们可以检索不同…

对图片进行数据增强(基于pytorch)

背景 在进行机器学习的任务中,我们的训练数据往往是有限的,在有限的数据集上获得较好的模型训练结果,我们不仅要在模型结构上下功夫,另一方面也需要对数据集进行数据增强 图片数据增强 图像数据增强是一种在训练机器学习和深度学…

设计模式② :交给子类

文章目录 一、前言二、Template Method 模式1. 介绍2. 应用3. 总结 三、Factory Method 模式1. 介绍2. 应用3. 总结 参考内容 一、前言 有时候不想动脑子,就懒得看源码又不像浪费时间所以会看看书,但是又记不住,所以决定开始写"抄书&qu…

脑电范式学习(一):Psychopy安装

脑电范式学习(一):Psychopy安装 1 引言2 Psychopy软件3 安装教程4 花活儿5 总结 1 引言 可能有人会疑惑:为什么要去学Psychopy?Psychopy有什么好的? 首先,要告诉大家这么一个情况:现…

使用 Swagger 导入 Postman: 最佳实践与步骤解析

Swagger和 Postman 都是常用的 API 测试工具,都有各自的优势。为了结合两者的优点,我们可以考虑将 Swagger 中的 API 定义导入到 Postman 中去,这样就可以利用 Postman 更强大的测试功能来测试 Swagger 定义的接口。 下面将以 Swagger Petst…

Spark调优解析-spark调优基本原则1(七)

1调优基本原则 1.1基本概念和原则 首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起: 每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到executor上面去执…

yolov8实战第五天——yolov8+ffmpg实时视频流检测并进行实时推流——(推流,保姆教学)

yolov8实战第一天——yolov8部署并训练自己的数据集(保姆式教程)_yolov8训练自己的数据集-CSDN博客 yolov8实战第三天——yolov8TensorRT部署(python推理)(保姆教学)-CSDN博客 今天,我们继续y…

大数据开发个人简历范本(2024最新版-附模板)

大数据开发工程师个人简历范本> 男 22 本科 张三 计算机科学与技术 1234567890 个人概述 具备深入的Hadoop大数据运维工程师背景,熟悉相关技术和工具 具备良好的团队合作能力,善于沟通和协作 具有快速学习新知识和解决问题的能力 对于数据科学…

模型 回弹效应

系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。行动反弹,效果加倍。 1 回弹效应的应用 1.1 纽约市的经济复苏-经济发展中的回弹效应 在20世纪70年代和80年代,纽约市面临了经济衰退、高犯罪率和城市衰败等问题。这导…

Redis 之父锐评 LLM 编程:全知全能 Stupid|一周IT资讯

阿里通义千问上线“科目三”,刘皇叔、奥特曼、马斯克通通没逃过 在刚到的2024年,阿里通义千问 APP 上线图片生成舞蹈功能,用户只需输入一张图片,就能生成爆款舞蹈图片。 不管是“科目三”,还是鬼步舞、兔子舞&#x…

晶振噪声来源及有效降低其影响的方法

低噪声晶振主要减少振荡器内部噪声对输出信号的影响,以获得短期频率稳定性的晶体振荡器。噪声会引起输出信号频率的随机起伏:起伏小,稳定度越高。 晶振噪声的由来 晶振的短期频率稳定度由噪声引起导致的频率不稳定。其中,电噪声…

使用Apache POI将数据写入Excel文件

首先导入依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.16</version> </dependency> <dependency><groupId>org.apache.poi</groupId><artifactId>po…

基于Java SSM框架实现新闻推送系统项目【项目源码】计算机毕业设计

基于java的SSM框架实现新闻推送系统演示 SSM框架 当今流行的“SSM组合框架”是Spring SpringMVC MyBatis的缩写&#xff0c;受到很多的追捧&#xff0c;“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架&#xff0c;通常更简单的数据源。Spring属于…

景联文科技GPT教育题库:AI教育大模型的强大数据引擎

GPT-4发布后&#xff0c;美国奥数队总教练、卡耐基梅隆大学数学系教授罗博认为&#xff0c;这个几乎是用“刷题”方式喂大的AI教育大模型的到来&#xff0c;意味着人类的刷题时代即将退出历史舞台。 未来教育将更加注重学生的个性化需求和多元化发展&#xff0c;借助GPT和AI教育…

el-cascader隐藏某一级的勾选框及vue报错Error in callback for watcher “options“的解决办法

今天用到饿了么的级联选择器时出现了这个报错Error in callback for watcher “options“: “TypeError: Cannot read propertie ‘level‘ of null,因为需求是在不同类型 el-cascader多选的时候默认是可以勾选所有级的选项的,如下图: 包含级联cascader的options、select的…

云计算历年题整理

第一大题纯计算 第一大题4或n个xx&#xff08;只答若干个短语&#xff09; 第一大题AWS描述名词 第二大题CUDA代码 第二大题描述名词&#xff08;很多和第一大题一样与AWS有关但是比第一大题难&#xff09; 第二大题计算 第三大题解释Map/Reduce项目 第三大题也与map有关但不是…

Spring见解 1.2 IOC

2.3.Spring的IOC解决程序耦合 2.3.1.创建工程 2.3.1.1.pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sc…

【优质书籍推荐】大模型微调的技巧和方法

大家好&#xff0c;我是herosunly。985院校硕士毕业&#xff0c;现担任算法研究员一职&#xff0c;热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名&#xff0c;CCF比赛第二名&#xff0c;科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的…

MySQL报错1054 - Unknown column ‘24023A00000‘ in ‘field list‘

MySQL 向表中插入数据时报错: 1054 - Unknown column 24023A00000 in field list 表的设计是&#xff1a; 执行插入数据sql语句后报错&#xff1a; 解决方法&#xff1a; 我设计表时是有id字段的&#xff0c;怎么报错显示字段不在表中&#xff1f;&#xff1f;查找了很多资料…

threejs在透视相机模式下,绘制像素大小固定的元素

要求&#xff1a;在透视相机模式下绘制一个图标&#xff0c;图标大小始终为32*32px。图标如下&#xff1a; 实现思路&#xff1a; 使用THREE.Sprite。因为 SpriteMaterial 支持配置 sizeAttenuation 使Sprite大小不随相机的深度而衰减。所以我们只要保证sprite的初始的大小合适…