网络安全:https劫持

文章目录

  • 参考
  • https原理
  • https窃听手段
  • SSL/TLS降级
    • 原理
    • 难点
    • 缺点
  • SSL剥离
    • 原理
    • 发展
    • 缺点
    • 前端劫持
  • MITM攻击
  • 透明代理劫持

参考

https原理
SNI
浏览器校验SSL证书
https降级
https握手抓包解析
lets encrypt申请证书

https原理

在这里插入图片描述
步骤如下:

  • 客户端向服务器发送https请求。
  • 服务器收到请求之后将证书发给客户端,证书内含公钥、颁发机构等。
  • 客户端收到公钥之后加以验证,验证通过后生成一个随机值作为对称加密密钥,用服务器公钥加密并发回服务器。
  • 服务器用私钥解密获取对称加密密钥,作为会话密钥。
  • 双方使用会话密钥进行加密通信。

https窃听手段

理论上可行的https窃听手段有以下几种:https降级、SSL剥离、MITM攻击、透明代理劫持。

SSL/TLS降级

原理

SSL/TLS协议通过握手来确定通信信息,其中握手双方要统一加密协议版本。
在握手过程中这样确认加密协议版本:

  • 由客户端(如浏览器)发送第一个数据包 ClientHello,这个数据包中保存着客户端支持的加密协议版本。
  • 服务器收到这个ClientHello数据包,查看里面客户端支持的加密协议版本,然后匹配服务器自己支持的加密协议版本,从而确认双方应该用的加密协议版本。
  • 服务器发送ServerHello数据包给客户端,告诉客户端要使用什么加密协议版本。

在上述过程中,如果客户端发送给服务器的ClientHello数据包中说自己仅支持某个有漏洞的旧版本加密协议(比如仅支持SSLv3.0),服务器有两种可能:

  • 服务器支持很多版本,其中包括有漏洞的旧版本和新版本(包括了SSLv3.0协议),那么服务器会认可使用有漏洞的旧版本协议,从而告诉客户端使用有漏洞的旧版本(可以使用SSLv3.0)。
  • 服务器不支持有漏洞的旧版本,拒绝客户端的这次请求,握手失败。

对于攻击者,作为中间人只能监听到加密过的数据,如果这些数据通过没有漏洞的加密版本加密,攻击者并不能做什么。但是,如果服务器提供有漏洞的旧版本加密协议的支持,而同时攻击者又能作为中间人控制被攻击者的浏览器发起漏洞版本的HTTPS请求,那虽然攻击者监听到的也是加密过的数据,但因为加密协议有漏洞,可以解密这些数据,所以数据就和明文传输没有什么差别了。这就是HTTPS协议降级。

难点

没找到开源工具,需要自己写

缺点

请马上停止使用TLS 1.0和TLS 1.1!
分析TLS 1.3降级攻击以及主要TLS库中的漏洞
很多网站不支持低级TLS/SSL版本,且访问时会有明显提示。

SSL剥离

blackhat 2009 sslstrip
SSL Stripping攻防之道

原理

在上古时代,访问大多数网站默认使用http,只有在两种情况下才会使用SSL,一是点击https的超链接,二是http访问服务器后被302重定向到https。

在这种情况下,SSLstrip原理如下:
① 客户端Client向服务器Server发起HTTP连接请求;
② 中间人MITM监听客户端与服务器的HTTP数据;
③ 服务器返回给客户端的HTTP数据包被在客户端与服务器之间的中间人截获。中间人解析原HTTP数据包,将其中 href=”https://…”>替换成 href=”http://…”>,将Location:https://… 替换成Location:http://…,同时记录下所修改的URL,并保存;
④ 中间人将修改后的HTTP数据发送给客户端;
⑤ 客户端Client向服务器Server发起HTTP连接请求;
⑥ 中间人计算机解析客户端的HTTP连接请求,并与保存文件相比较。当发现存在有已修改过的HTTP URL时,将其替换成原HTTPS URL,并发送给服务器;
⑦ 与服务器保持HTTPS连接,回到步骤③;
⑧ 与客户端保持HTTP连接,回到步骤④。

发展

为了应对HSTS的攻击,2012年设计了HSTS协议,让服务器使用一个名为Strict-Transport-Security的特殊头部进行应答,其中包含一个响应消息,告诉客户每当重新连接站点时,必须使用HTTPS。该响应中包含一个“max-age”字段,存放的是一个以秒为单位的数值,它代表着HSTS Header的过期时间。

HSTS的一个缺点是,它需要通过先前的连接才能知道可以安全地连接到特定的站点。当访问者初次连接到网站时,他们不会收到要求始终使用HTTPS的HSTS规则。只有在后续的连接中,访问者的浏览器才会收到要求他们通过HTTPS进行连接的HSTS规则。

除此之外,HSTS还面临着其他类型的攻击,例如通过劫持用于同步计算机时间的协议,可以将计算机的日期和时间设置为将来的时间。当HSTS规则已过期后,可以将日期和时间设置为任意值,从而绕过HSTS。

HSTS Preload Lists是一种解决这些问题的潜在方案,其工作原理是把只能使用HTTPS连接的网站硬编码到一个列表中。启用HSTS的网站可以提交到hstspreload.org的Chrome HSTS Preload Lists中;它可以作为其他浏览器中采用的预加载列表的基础。

后来,Leonardo Nve又开发了一款名为SSLStrip+的软件,它实际上是SSLStrip更新版,SSLStrip+具有绕过HSTS的能力。当站点通过未加密的HTTP进行连接时,SSLStrip+就会查找相关的HTTPS连接。当发现网站的HTTPS连接时,会将其重写为HTTP,并将该域重写为HSTS Preload列表之外的、与原来比较相似的域。

缺点

如果是按现在这种默认采用https访问的方式,客户端一开始就要进行SSL握手,中间人不可能与客户端建立http连接。

前端劫持

针对HTTPS的Web前端劫持及防御研究
这种方式其实和SSLstrip大同小异,核心思路就是剥离SSL,理论上可行,但实际上涉及到修改前端的东西,要考虑的太多了。

MITM攻击

电信级HTTPS劫持
类似fiddler等抓包工具,核心思路就是需要用户信任自签证书,不信任的话一点用处都没有。

透明代理劫持

透明代理劫持

透明代理与正向代理最大的区别在于不需要客户端明确的配置代理服务器,所有发出的请求都会被服务器拦截和转发,透明代理对客户端而言是“透明”的(类似连接手机热点)。

假设现在已经完全控制了一个热点/路由器/网关,可能的劫持步骤如下。

  • 客户端向服务器发送https请求。
  • 路由器重定向客户端连接到中间人服务器。
  • 中间人通过SNI获知目标域名。
  • 中间人替换证书进行劫持。

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

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

相关文章

动态IP与静态IP的优缺点

在网络连接中,使用动态和静态 IP 地址取决于连接的性质和要求。静态 IP 地址通常更适合企业相关服务,而动态 IP 地址更适合家庭网络。让我们来看看动态 IP 与静态 IP 的优缺点。 1.静态IP的优点: 更好的 DNS 支持:静态 IP 地址在…

MATLAB基础应用精讲-【数模应用】二元Logit分析(最终篇)(附python、MATLAB和R语言代码实现)

目录 算法原理 SPSSAU 1、二元logistic分析思路说明 2、如何使用SPSSAU进行二元logistic操作 3、二元logistic相关问题 算法流程 一、分析前准备 1、确定分析项 2.多重共线性判断 3.数据预处理 二、回归基本情况分析 三、模型拟合评价 1、似然比检验 2、拟合优…

晶圆几何量测系统支持半导体制造工艺量测,保障晶圆制造工艺质量

晶圆面型参数厚度、TTV、BOW、Warp、表面粗糙度、膜厚、等是芯片制造工艺必须考虑的几何形貌参数。其中TTV、BOW、Warp三个参数反映了半导体晶圆的平面度和厚度均匀性,对于芯片制造过程中的多个关键工艺质量有直接影响。 TTV、BOW、WARP对晶圆制造工艺的影响 对…

JavaScript的DOM

DOM DOM:查找元素:通过id查找元素:通过class查找元素:通过标签查找元素:通过name属性查找元素: 操作元素:操作内容:操作属性:操作样式: 事件:单击…

详细分析Mysql中的 JSON_ARRAYAGG 基本知识(附Demo)

目录 1. 基本知识2. Demo2.1 简单聚合2.2 带排序聚合2.2.1 子查询进行排序2.2.2 创建临时表 2.3 带条件聚合2.4 多列聚合2.5 嵌套 JSON 结构 1. 基本知识 JSON_ARRAYAGG为 SQL 聚合函数,用于将一组值聚合为一个 JSON 数组 多行结果组合成一个 JSON 数组形式的场景…

企业研发数据泄露损失严重,研发数据保护到底怎么才能有效落地?

数据已成为企业毋庸置疑的核心资产,而企业众多数据中,研发数据则占据着重要的角色,近年来,发生了多起企业研发数据被窃取或泄露的事件,给企业带来严重的名誉、经济损失: 小米公司:2023年1月&am…

Linux驱动应用编程(三)UART串口

本文目录 前述一、手册查看二、命令行调试串口1. 查看设备节点2. 使用stty命令设置串口3. 查看串口配置信息4. 调试串口 三、代码编写1. 常用API2. 例程线程优化 前述 在开始实验前,请一定要检查测试好所需硬件是否使用正常,不然调试过程中出现的问题&am…

华为机考入门python3--(33)牛客33-图片整理

分类:排序 知识点: 对字符串中的字符ASCII码排序 sorted(my_str) 题目来自【牛客】 def sort_images(s):# 可以使用ord(A)求A的ASCII值,需要注意的是A的值(65)比a的值小(97)sorted_images …

常见排序算法,快排,希尔,归并,堆排

后面的排序中都要用到的函数 //交换 void Swap(int* p1, int* p2) {int* tmp *p1;*p1 *p2;*p2 tmp; } 包含的头文件 "Sort.h" #pragma once #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<time.h> #include<s…

70 Realistic Mountain Environment Textures Cliff(70+张真实的山地环境纹理)

大量适合山区和其他岩石环境的纹理--悬崖、岩石、砾石等等 每个纹理都是可贴的/无缝的,并且完全兼容各种不同的场景--标准Unity地形、Unity标准着色器、URP、HDRP等等都兼容。 所有的纹理都是4096x4096,并包括一个HDRP掩码,以完全支持HDRP。 特点。 70种质地 70种材料 70个地…

C#——固态数组

固态数组 概念: 1.数组 是存储一组相同数据类型的集合 2.数组分为 一线数组 多维数组 交错数组 3.一般情况下 一维数组 就称之为数组 声明: 方法1: 数据类型[ ] 数组名 new 数据类型[ 长度 ] 实例: int[] arr new int[10] 方法2: 数据类型[ ] 数组名 new 数据类型[ 长度…

AI视频教程下载:用LangChain开发 ChatGPT和 LLMs 应用

在这个快速变化的人工智能时代&#xff0c;我们为您带来了一场关于语言模型和生成式人工智能的革命性课程。这不仅仅是一个课程&#xff0c;而是一次探险&#xff0c;一次深入人工智能核心的奇妙之旅。 在这里&#xff0c;您将开启一段激动人心的旅程&#xff0c;探索语言模型…

利用架构挖掘增强云管理

管理当今复杂的云环境比以往任何时候都更加重要。 大多数企业依赖 AWS、Azure、Kubernetes 和 Microsoft Entra ID 等各种平台来支持其运营&#xff0c;但管理这些平台可能会带来重大挑战。 云优化的最大挑战涉及安全性、成本管理和了解云基础设施内错综复杂的相互依赖关系。…

【数据库】255对比256的优势

文章目录 2552^8-1 &#xff0c;很多时候用到255却步凑整到256&#xff0c;这是为啥呢?一番了解总结 2552^8-1 &#xff0c;很多时候用到255却步凑整到256&#xff0c;这是为啥呢? 比如下面的两种情况: RabbitMQ的routing_key 和 binding_key 的最大长度255 字节。Navicat添…

基于springboot实现农产品直卖平台系统项目【项目源码+论文说明】

基于springboot实现农产品直卖平台系统的设计演示 摘要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔…

常见的Web漏洞——CORS

渗透做了多年的朋友都知道&#xff0c;大洞小洞都是漏洞。因此也学习、沉淀一下以前没重视的漏洞。 简介 CORS&#xff08;Cross-Origin Resource Sharing&#xff0c;跨源资源共享&#xff09;是一种由Web浏览器实现的安全策略&#xff0c;用于控制一个Web页面&#xff08;服…

finereport 9.0 Tomcat 集群-来自帆软

Tomcat服务器集群 目录: 1. 描述3. 配置过程4. 结果测试 1. 描述 在单一的服务器上执行WEB应用程序有一些问题&#xff0c;当网站成功建成并开始接受大量请求时&#xff0c;单一服务器无法满足需要处理的负荷量。 另外一个常见的问题是会产生单点故障&#xff0c;如果该服务器坏…

AppML 下载

要下载 AppML&#xff0c;您可以访问菜鸟教程网站或自强学堂网站。AppML 不是一个产品&#xff0c;而是一个基于浏览器和服务器脚本的想法。您可以从这些网站下载适用于 PHP 或 ASP.NET 的 AppML 版本。下载文件将包含服务端脚本、样式文件、浏览器脚本和本地配置文件&#xff…

Java桥接模式

桥接模式 最重要的是 将 抽象 与 实现 解耦 , 通过组合 在 抽象 与 实现 之间搭建桥梁 ; 【设计模式】桥接模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )-CSDN博客 桥接模式&#xff08;Bridge Pattern&#xff09;-&#xff08;最通俗易懂的案例&#xff09;_桥接模式 例子-…

力扣 242题 有效的字母异位 记录

题目描述 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。示例 1: 输入: s "anagram", t "nagaram" 输出: true示例 …