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

news2024/11/24 17:39:39

在上一篇博客中我们讲到了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就可以合法的来进行攻击,

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

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

相关文章

安全继电器的使用和作用

目录 一、什么是安全继电器 二、安全继电器的接线方式 三、注意事项 四、总结 一、什么是安全继电器 安全继电器是由多个继电器与硬件电路组合而成的一种模块,是一种电路组成单元,其目的是要提高安全因素。完整点说,应该叫成安全继电器模…

win11更新过后偶尔出现网卡详细信息为空

鼠标右键网卡属性,看下是不是多了一个Network LightWeight Filter 前面对号取消然后确定就能获取到IP了 详情请自行查看百度文库

Golang | Leetcode Golang题解之第69题x的平方根

题目&#xff1a; 题解&#xff1a; func mySqrt(x int) int {if x 0 {return 0}C, x0 : float64(x), float64(x)for {xi : 0.5 * (x0 C/x0)if math.Abs(x0 - xi) < 1e-7 {break}x0 xi}return int(x0) }

CSS定位(如果想知道CSS有关定位的知识点,那么只看这一篇就足够了!)

前言&#xff1a;在网页布局的时候&#xff0c;我们需要将想要的元素放到指定的位置上&#xff0c;这个时候我们就可以使用CSS中的定位操作。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 先让我们看一下本篇文章的大致内容&…

「YashanDB迁移体验官」Oracle向YashanDB迁移的丝滑体验

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…

网络安全公司观察,看F5如何将安全化繁为简

应用无处不在的当下&#xff0c;从传统应用到现代应用再到边缘、多云、多中心的安全防护&#xff0c;安全已成为企业数字化转型中的首要挑战。根据IDC2023年《全球网络安全支出指南》&#xff0c;2022年度中国网络安全支出规模137.6亿美元&#xff0c;增速位列全球第一。有专家…

大模型驱动的新一代 BI 平台,Sugar BI 开启智慧决策新模式

本文整理自 2024 年 4 月 16 日的 2024 百度 Create 大会上的《大模型驱动的新一代 BI 平台如何开启智慧决策》分享。 全文包括了可视化 BI 分析技术架构、智能图表推荐策略与规则设计、Sugar Bot 智能问数的技术实现流程&#xff0c;以及目前的场景应用等。 1 Sugar BI 产…

数据结构-线性表-应用题-2.2-10

1)算法的基本设计思想&#xff1a; 三次翻转&#xff0c;将数组视为ab&#xff08;a代表数组的前p个元素&#xff0c;b代表数组的余下n-p个元素&#xff09; 也可以先将a,b单独翻转&#xff0c;然后再整体翻转 2)使用c语言描述如下&#xff1a; void Reverse(int R[],int l…

【小黑送书—第二十期】>>K邻算法:在风险传导中的创新应用与实践价值(文末送书)

01 前言 在当今工业领域&#xff0c;图思维方式与图数据技术的应用日益广泛&#xff0c;成为图数据探索、挖掘与应用的坚实基础。本文旨在分享嬴图团队在算法实践应用中的宝贵经验与深刻思考&#xff0c;不仅促进业界爱好者之间的交流&#xff0c;更期望从技术层面为企业在图数…

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

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

管易云与金蝶K3-WISE对接集成发货单查询2.0打通新增销售出库(红蓝字)

管易云与金蝶K3-WISE对接集成发货单查询2.0打通新增销售出库&#xff08;红蓝字&#xff09; 源系统:管易云 金蝶管易云是金蝶集团旗下以电商和新零售为核心业务的子公司&#xff0c;公司于2008年成立&#xff0c;拥有从事电商及新零售业务相关专业知识工作者超过1000人。为伊利…

ODOO17数据库安全策略一(ODOO17 Database Security Policy I)

ODOO17作为ERP软件&#xff0c;其核心优势在于数据安全。凭借强大的原生安全机制及灵活的配置&#xff0c;确保数据安全无忧&#xff1a; ODOO17, as an ERP software, boasts its significant advantage in exceptional data security performance. It effectively ensures wo…

中国护照照片尺寸分辨率要求及居家自拍制作教程

经常出国的小伙伴都知道&#xff0c;护照照片作为出国旅行的重要身份证明文件&#xff0c;其规格和质量要求非常严格。本文将详细介绍中国护照照片的具体要求&#xff0c;并提供一些实用的居家自拍技巧&#xff0c;帮助您轻松拍出符合规定的护照照片&#xff08;手机和相机居家…

项目解决方案:多台poe摄像机接到3台NVR上,如何进行统一管理

目录 一、概述 二、建设目标及需求 三、设计依据与设计原则 1、先进性与适用性 2、经济性与实用性 3、可靠性与安全性 4、开放性 5、可扩充性 6、追求最优化的系统设备配置 7、提高监管力度与综合管理水平 四、建设方案设计 &#xff08;一&#xff09;系统方案设计…

roblox国际服游戏充值付款订阅Robux套装商城会员,roblox国际服虚拟信用卡充值教程

roblox是一款由Roblox公司开发的大型多人在线游戏创建平台&#xff0c;该平台允许用户设计自己的游戏、物品及衣服&#xff0c;以及游玩自己和其他开发者创建的各种不同类型的游戏。 没有账号注册一个账号&#xff0c;他支持多种平台授权登录&#xff0c;我这里直接选择注册一个…

FlashAttention(flash-attn)安装

FlashAttention&#xff08;flash-attn&#xff09;安装 Flash Attention是一种注意力算法&#xff0c;用于减少这一问题&#xff0c;并更有效地缩放基于转换器的模型&#xff0c;从而实现更快的训练和推理。标准注意力机制使用高带宽内存&#xff08;HBM&#xff09;来存储、…

回归测试?

1. 什么是回归测试&#xff08;Regression Testing&#xff09; 回归测试是一个系统的质量控制过程&#xff0c;用于验证最近对软件的更改或更新是否无意中引入了新错误或对以前的功能方面产生了负面影响&#xff08;比如你在家中安装了新的空调系统&#xff0c;发现虽然新的空…

PaddleOCR使用

最近在项目过程中需要用到文字识别的能力&#xff0c;之前没有接触过。需要对现有的开源能力进行调研和学习。 1. 基本概念 1.1 PaddlePaddle PaddlePaddle 是一个由百度开源&#xff0c;基于 Python 的深度学习框架。PaddlePaddle 针对不同的硬件环境提供了不同的安装包或安…

极验4 一键解混淆

提示&#xff01;本文章仅供学习交流&#xff0c;严禁用于任何商业和非法用途&#xff0c;未经许可禁止转载&#xff0c;禁止任何修改后二次传播&#xff0c;如有侵权&#xff0c;可联系本文作者删除&#xff01; AST简介 AST&#xff08;Abstract Syntax Tree&#xff09;&a…

书名号怎么打?4个输入方法请记好!

“我在电脑上对文档进行编辑时&#xff0c;需要输入书名号&#xff0c;但不知道书名号怎么打。大家平常是怎么输入书名号的呀&#xff1f;可以分享一下吗&#xff1f;” 在撰写文档、编辑文章或发送信息时&#xff0c;我们经常需要用到书名号。书名号主要用于标明书名、篇名、报…