网络安全: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.rhkb.cn/news/342879.html

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

相关文章

【机器学习】Qwen1.5-14B-Chat大模型训练与推理实战

目录 一、引言 二、模型简介 2.1 Qwen1.5 模型概述 2.2 Qwen1.5 模型架构 三、训练与推理 3.1 Qwen1.5 模型训练 3.2 Qwen1.5 模型推理 四、总结 一、引言 Qwen是阿里巴巴集团Qwen团队的大语言模型和多模态大模型系列。现在,大语言模型已升级到Qwen1.5&…

网络安全领域六大顶级会议介绍:含会议介绍、会议地址及会议时间和截稿日期

**引言:**从事网络安全工作,以下六个顶会必须要知道,很多安全的前沿技术都会在如下会议中产生与公开,如下会议发表论文大部分可以公开下载。这些会议不仅是学术研究人员展示最新研究成果的平台,也是行业专家进行面对面…

【Java】---- SpringBoot 统一数据返回格式

目录 1. 统一数据返回格式介绍2. 实际应用2.1 添加前后的返回结果区别2.2 存在问题 3. 统一数据返回格式的优点 1. 统一数据返回格式介绍 通过使用ControllerAdvice和引用ResponseBodyAdvice接口来进行实现。 ResponseBodyAdvice这个接口里面有两个方法,分别是: s…

【MySQL】sql语句之表操作(上)

序言 在上一篇的数据库操作的内容中,学习了两种属性和常用的七种操作,学习是循序渐进的,库的操作学完了,就要开始学习表的操作了,而表可与数据强相关,比如DDL,即数据定义语言,DML&am…

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

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

数字后端设计岗位介绍

数字后端设计岗位是数字芯片设计流程中的关键环节,以下是对该岗位的详细介绍: 一、岗位职责 数字后端设计工程师的主要职责包括: 负责将芯片的逻辑设计转化为物理实现,利用EDA工具进行自动布局布线,完成从netlist到…

Redis系列之淘汰策略介绍

Redis系列之淘汰策略介绍 文章目录 为什么需要Redis淘汰策略?Redis淘汰策略分类Redis数据淘汰流程源码验证淘汰流程Redis中的LRU算法Redis中的LFU算法 为什么需要Redis淘汰策略? 由于Redis内存是有大小的,当内存快满的时候,又没有…

C++初阶学习第十一弹——探索STL奥秘(六)——深度刨析list的用法和核心点

前言: 在前面,我们已经学习了STL中的string和vector,现在就来讲解STL中的最后一个部分——list的使用及其相关知识点,先说明一点,因为我们之前已经讲过了string和vector的接口函数等用法,list的这些用法与它…

HTML静态网页成品作业(HTML+CSS)—— 保护环境环保介绍网页(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…

游戏盾之应用加速,何为应用加速

在数字化时代,用户对于应用程序的防护要求以及速度和性能要求越来越高。为了满足用户的期望并提高业务效率,应用加速成为了不可忽视的关键。 应用加速是新一代的智能分布式云接入系统,采用创新级SD-WAN跨域技术,针对高防机房痛点进…

泽众云真机-上线海外机型测试专栏

泽众云真机平台,2024上半年70机型升级,也包括热门的海外机型。 但是,运营客服反馈,用户找不到平台海外机型在哪里,我们发现海外机型排列位置有问题,用户不易发现。目前问题已解决,上线海外机型测…

SpringBoot 配置文件

SpringBoot 配置文件 配置⽂件作用 配置文件是为了解决硬编码的问题,把一些可能会发生改变的信息放到一个集中的地方当我们启动某个程序时应用程序就从我们配置的文件中读取数据并进行加载运行 硬编码是将数据直接嵌⼊到程序或其他可执⾏对象的源代码中, 也就是我们常说的"…

docker 命令 ps,inspect,top,logs详解

docker常用命令教程-4 docker ps docker ps 命令用于列出当前正在运行的容器。默认情况下,它只显示正在运行的容器,但你可以使用 -a 或 --all 选项来显示所有容器(包括已停止的容器)。 常用的选项和示例: -a 或 --…

Spring Boot中整合Jasypt 使用自定义注解+AOP实现敏感字段的加解密

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

小程序 UI 风格美不胜收

小程序 UI 风格美不胜收 小程序 UI 风格美不胜收

python基础——-多任务-正则-装饰器

一、多任务 1-进程和线程 进程是操作系统分配资源的最小单元 线程执行程序的的最小单元 线程依赖进程,可以获取进程的资源 一个程序执行 先要创建进程分配资源,然后使用线程执行任务 默认情况下一个进程中有一个线程 2-多任务介绍 运行多个进程或线程执…

软件杯 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基…

discuz点微同城源码34.7+全套插件+小程序前端

discuz点微同城源码34.7全套插件小程序前后端 模板挺好看的 带全套插件 自己耐心点配置一下插件 可以H5可以小程序

MySQL与PostgreSQL关键对比一(整体篇)

目录 1 快速参考表:MySQL 与 PostgreSQL 功能表 2 快速参考表:MySQL 与 PostgreSQL 功能表 MySQL 和 PostgreSQL 提供许多相同的特性和功能 - 但是这两个关系数据库管理系统 (RDBMS) 之间存在不容忽视的关键差异。 如果您不熟悉这些差异,这…

SCARA机器人中旋转花键的维护和保养方法!

作为精密传动元件的一种,旋转花键在工作过程中承受了较大的负荷。在自动化设备上运用广泛,如:水平多关节机械手臂(SCARA)、产业用机器人、自动装载机、雷射加工机、搬运装置、机械加工中心的ATC装置等,最适…