详解 HTTP 中间人攻击

  • 什么是中间人攻击?

攻击者将自己插入通信过程中,以窃取,篡改数据。通信的两端不知道中间人的存在,他们以为在与对方直接通信,实际上他们的通信已经被监听或干扰。WIFI 路由器被破解之后就能进行中间人攻击。

  • 中间人攻击为什么能实现

有 3 个原因

  1. HTTP 协议以明文传输数据,中间人拦截数据包之后能轻易地还原 HTTP 包文的内容,这使得中间人能监听 HTTP 通信的数据。.

  1. 使用 HTTP 协议的请求和响应方不验证对方的身份。因此请求方无法确保发起的请求由预计的响应方接受,它收到的数据也不能确保来自预计的响应方;从响应方的角度来看,它接受的请求不一定来自预计的请求方,它返回的数据也不一定被预计的请求方接受。

cookie 和 token 的验证发生在业务层,如果 HTTP 协议层不校验身份,那么数据在传输过程中,网络代理或中间服务器仍然可以携带正确的 cookie 和 token 等业务层的验证数据,然后篡改数据再次发出,由于有正确的验证数据,那么业务层便无妨识别真伪。

  1. 无法验证数据的完整性。因此数据在传输过程中被篡改了,通信双方都无法知晓。

  • 如何防范中间人攻击
  1. 重视浏览器弹出的警告。
  2. 在公共网络环境下,不访问没有使用 HTTPS 协议的网站。
  3. 登录网站时候注意网站是否使用的是 HTTPS 协议。

  • 为什么使用 HTTPS 协议能减少中间人攻击

HTTPS 在 HTTP 的基础上加了一层 SSL/TLS,这使得 HTTP 通信不以明文传输,通信双方能验证数据的完整性,通信双方能验证对方的身份。SSL 是 TLS 的前身,后者更安全。SSL 是一个比 TLS 更通用的术语。

  • HTTPS 的工作流程

TCP 三次握手 -> SSL/TLS 三次握手 -> 会话,可以看出 HTTPS 在 HTTP 建立连接的基础上加了一层 SSL/TLS 三次握手,下面重点介绍它的工作流程。

SSL/TLS 第一次握手:客户端将自己支持的 SSL/TLS 版本、加密算法、压缩方式等发送到服务端,这些数据用明文传输。

SSL/TLS 第二次握手:服务端将数字证书、证书链等返回客户端,这些数据用明文传输。

SSL/TLS 第三次握手:客户端使用证书颁发机构的公钥验证数字证书是否有效,无效则断开与服务端的连接,有效则拿到服务器公钥,用伪随机数生成会话密钥,客户端使用服务器公钥通过非对称加密算法加密会话密钥,将结果传给服务器,服务器接受到加密后的会话密钥之后,用私钥将其解密。

会话:SSL/TLS 三次握手结束之后,客户端和服务端都拥有了会话密钥。服务端响应请求时使用对称加密算法将报文加密,客户端接受到响应后使用会话密钥解密报文。

  • 名词介绍
  1. 数字证书

服务器向证书颁发机构(CA)申请证书,CA 使用它的私钥基于证书的内容生成数字证书,返回给服务器。数字证书中包含数字签名、服务器的公钥、域名、证书的有效期等。

  1. 数字签名

数字签名包含在数字证书中,它由 CA 的私钥基于服务器提交的证书内容生成,在 SSL/TLS 第二次握手时服务器将数字证书发送到客户端,客户端根据 CA 的公钥来验证证书的数字签名是否合法

  1. 证书颁发机构私钥,公钥

证书颁发机构私钥由证书颁发机构自己保存,公钥由客户端保存。私钥用于生成数字证书,公钥用于验证数字签名是否有效.

  1. 服务器私钥,公钥

服务器私钥由服务器自己保存,公钥包含在数字证书中,在 SSL/TLS 第二次握手它被返回给客户端。公钥用于加密会话密钥,私钥用于解密服务器接收到的会话密钥。

  1. 非对称加密

加密和解密使用不同的密钥

  1. 对称加密

加密和解密使用相同的密钥

  1. 会话密钥

在会话阶段,服务器用它加密返回的报文,客户端用它解密接收到的报文。

  1. 证书链

数字证书不是由一家机构颁发的,而是设立了一家根证书机构,又设立了若干层中间证书机构,由上层证书机构去颁发验证下层证书机构的证书。证书链就是从根证书,然后经过的若干中间证书,最后到服务器证书这一条链路。

  • 为什么 HTTPS 并非绝对安全
  1. 会话密钥泄漏风险:在会话阶段服务端和客户端使用会话密钥加密和解密报文,如果会话密钥泄露,则攻击者能用它解密报文。

  1. 服务端不验证客户端的身份:客户端将会话密钥发送给服务端,但是服务端不验证客户端的身份,在 SSL/TLS 握手过程中只是客户端验证服务端的身份。

  1. 证书链中的任意节点被污染:证书链是用于验证服务器身份的关键组成部分。如果证书链中的任何一个证书受到污染或者私钥泄露,攻击者可能会冒充合法的服务器进行中间人攻击,这会损害通信的机密性和完整性。

  1. 客户端证书链中任何一个节点公钥被污染替换 :类似于服务器证书链,客户端证书链中的污染或替换也可能导致安全问题。这通常涉及到客户端的身份验证,如果恶意方能够替换客户端证书链中的公钥,他们可能会冒充合法客户端与服务器通信。

  1. 没有妥善处理 HTTP 重定向到 HTTPS:如果一个网站接受 HTTP 的请求,然后重定向到 HTTPS,用户可能在开始重定向前,通过没有加密的方式与服务器通信,比如,用户输入 http://foo.com 或者仅是输入 foo.com。这样为中间人攻击创造了机会。可以利用重定向将用户引导至恶意站点,而不是原始站的安全版本。

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

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

相关文章

C++: 如何用C语言实现C++的虚函数机制?

前言 在 googletest的源码中,看到gtest-matchers.h 中实现的MatcherBase 类自定义了一个 VTable,这种设计实现了一种类似于C虚函数的机制。C中的虚函数机制实质上就是通过这种方式实现的,本文用c语言自定义虚函数表VTable实现了一下virtual的…

等保主机测评防骗指南(资产调研)

你是否测评时常被运维给忽悠?是否觉得以下的对话耳熟? 你:您好,请问你们的主机资产有哪些,包括服务器、数据库、中间件、应用系统等。 甲:我们资产就这两台服务器,数据库什么的都这上面&#…

OpenGL3.3_C++_Windows(25)

阴影失真:阴影的不真实感 条纹样式: 首先理解采样原理:同光的视角下,渲染一张深度图,每个像素,存储同一射线下的深度值(不断更新深度缓冲的结果),即最近片段的深度。接着&#xff0…

hadoop词频统计

1 Hadoop 安装与伪分布的搭建 2 Hadoop词频统计 此文章基于搭建好hadoop之后做的词频统计实验,以上是链接为搭建hadoop的教程 目录 1 HDFS 文件系统常用命令 2 词频统计实验准备工作 2.1 启动hadoop 关闭防火墙 2.2 查看图形化界面 2.3 文件上传 3 词频统计…

isspace()方法——判断字符串是否只由空格组成

自学python如何成为大佬(目录): https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 isspace()方法用于判断字符串是否只由空格组成。isspace()方法的语法格式如下: str.isspace() 如果字符串中只包含空格&…

【Unity设计模式】✨使用 MVC 和 MVP 编程模式

前言 最近在学习Unity游戏设计模式,看到两本比较适合入门的书,一本是unity官方的 《Level up your programming with game programming patterns》 ,另一本是 《游戏编程模式》 这两本书介绍了大部分会使用到的设计模式,因此很值得学习 本…

【算法】5分钟了解如何使用PCA主成份分析

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、什么是PCA1.1.PCA的思想1.2.PCA的数学表示 二、什么是PCA的主成份与方差2.1.主成份的方差2.2.主成份的命名 三、如何使用PCA3.1.主成份的代码实现 主成份分析全称为PCA Principle Component Analysis ,它的主…

Linux虚拟串口设置

VSPD虚拟串口软件安装及使用 一、软件安装 1、Configure Virtual Serial Port Driver(VSPD) 1.1 首先下载 Configure Virtual Serial Port Driver(VSPD) 软件 链接:https://pan.baidu.com/s/11aGc2aHGUew5QZ0XhaWXJw 提取码:rmd7 1.2 安装时注意将…

计算机基础之汇编语言学习笔记

学习来源:b站各种学习资料 前置知识:计算机组成原理等知识 学习参考的资源 汇编语言编程的速成指南[上]~从零开始的期末抢救计划 (8086汇编)_哔哩哔哩_bilibili 链接: https://pan.baidu.com/s/1tg_ZW7VD3TS_s1v_EjS89w?pwdak6…

2029年AI服务器出货量将突破450万台,AI推理服务器即将爆发式增长

在2020年,新冠疫情与远程办公模式的兴起推动了所有类型服务器的出货量达到峰值,随后几年里,除了AI服务器之外的所有类别都回归到了正常水平。 根据Omdia的研究数据,AI服务器的出货量在2020年急剧上升,并且至今未显示出…

运筹系列93:VRP精确算法

1. 基础版本 定义 x i j k x_{ijk} xijk​为边 i j ij ij是否由车辆 k k k去运输。如果有时间窗约束的话,再加上一个变量 c i k c_{ik} cik​即可,表示第k辆车到达节点i时的时间点。 第一类客户流量约束,要求每个点都有1个入度和1个出度&…

ios13多窗口(UIWindowScene)学习笔记

ios13引入了UIWindowScene类、UIWindowSceneDelegate协议以便支持多窗口功能,但其适用于ipad,不适用于iphone,因为iphone不支持多窗口功能。注意,这里说的窗口不是UIWindow,而是UIWindowScene。 ios13前后的app的UI架…

AI陪伴产品的情感设计:从孤独感到恋爱感评分:9/10

本文主要阐述三个话题: 1. 市面上有哪些AI陪伴产品? 2. 我们团队要怎么做? 3. 为什么要做? 市面上有哪些陪伴类产品? Role-play(角色扮演) 在当前市场上,有不少以角色扮演为核心的…

Wails 安装初体验

文章目录 Wails 安装说明1. 系统要求2. 安装步骤3. 构建应用 结论 Wails 安装说明 Wails 是一个用于构建桌面应用的 Go 框架,结合了现代前端技术。以下是安装步骤: 1. 系统要求 Go 1.16 或更高版本Node.js 和 npm可选:适用于 Windows、mac…

iconfont-阿里巴巴矢量图标库 在vue项目使用记录

官网地址:https://www.iconfont.cn/manage/index?manage_typemyprojects&projectId4539761 第一步: 下载资源 ->解压到项目文件夹 第二步 在项目中main.ts 或者main.js 引入资源 import //assets/iconfont/font/iconfont.js; import //assets…

java基础知识点全集

JAVA的所有知识点 一、基础的数组、数据类型、输入输出二、类与对象1. 三大特征(1) 封装(2)继承(3)多态 2. 类的实例化(1) 类通过NEW来创建(2) 类的继承&…

python解锁图片相似度的神奇力量

在这个信息爆炸的时代,图片成为了我们传递信息、表达情感和记录生活的重要方式。然而,面对海量的图片资源,如何快速准确地找到相似的图片,成为了一个亟待解决的问题。现在,让我们为您揭开图片相似度的神秘面纱,带您领略这一创新技术的魅力! 图片相似度技术,就像是一位…

【多媒体】Java实现MP4视频播放器【JavaFX】【音视频播放】

在Java中播放视频可以使用多种方案,最常见的是通过Swing组件JFrame和JLabel来嵌入JMF(Java Media Framework)或Xuggler。不过,JMF已经不再被推荐使用,而Xuggler是基于DirectX的,不适用于跨平台。而且上述方案都需要使用第三方库。…

医院管理系统带万字文档医院预约挂号管理系统基于spingboot和vue的前后端分离java项目java课程设计java毕业设计

文章目录 仓库管理系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带万字文档(9.9¥带走) 仓库管理系统 一、项目演示 医院管理系统 二、项目介绍 基于springbootvue的前后端分离医院管…

QListView自定义item(结合QSqlQueryModel)

QListView:绘制自定义List(一)——设置ItemDelegate_qt_繁星执着-开放原子开发者工作坊 (csdn.net) QListView自定义Item_qlistview 自定义item-CSDN博客 结合我写的上一篇文章: QTableView与QSqlQueryModel的简单使用-CSDN博客 这次尝试…