加密协议分析

  • 1.IPSec安全协议
    • 1.1 相关概念
      • 1.1.1 数据流
      • 1.1.2 安全联盟SA
      • 1.1.3 安全参数索引SPI
      • 1.1.4 安全策略
    • 1.2 报文首部认证协议AH
    • 1.3 封装安全载荷协议ESP
    • 1.4 互联网间密钥交换协议IKE
  • 2.TLS安全协议
    • 2.1 handshake协议
    • 2.2 Record协议
    • 2.3 TLS相关子协议
  • 3.HTTPS安全协议
    • 3.1 HTTP报文类型
      • 3.1.1 请求报文
      • 3.1.2 响应报文
    • 3.2 HTTP/2.0的帧格式
    • 3.3 HTTP/2.0和HTTP/1.1的区别
  • 4.QUIC安全协议
    • 4.1 特点
      • 4.1.1 连接建立时延
      • 4.1.2 灵活的拥塞控制
      • 4.1.3 流和连接的流量控制
      • 4.1.4 多路复用
      • 4.1.5 认证和机密的首部和载荷
      • 4.1.6 连接迁移

1.IPSec安全协议

IPSec时IETE制定的为保证数据传输安全保密性能的三层隧道加密协议,包括报文首部认证协议AH,封装安全载荷协议ESP、互联网间密钥交换协议IKE和一些用于网络认证及加密算法等。
IPSec有两种工作模式

  • 传输模式
    在此种工作模式下,在IP报头和高层协议报头之间插入一个IPSec包头。不修改IP报头中的目的地址,源IP地址也保持明文状态。对于该工作模式来说,只能够为IP层以上的协议提供安全性保障,因此这种模式适用于主机之间建立IPSec安全传输。

  • 隧道模式
    在此种工作模式下,报文的源IP地址以及数据被封装成一个新的IP报文,并在内外部报头之间插入了一个IPSec报头,原来的IP地址作为需要进行安全业务处理的一部分来提供安全保护,而且该模式还可以对整个IP报文进行加密操作,进一步增强了传输过程的安全性。该模式更适合网关之间的通信,常用来实现虚拟专用网VPN。

1.1 相关概念

1.1.1 数据流

数据流是一组具有某些共同特征的数据的集合,由源地址/掩码、目的地址/掩码、IP报文中封装上层协议的协议号、源端口号、目的端口号等来规定。一条数据流可以是两台主机之间单一的TCP连接,也可以是两个子网之间所有的数据流量。IPSec能够对不同的数据流施加不同的安全保护,例如对不同的数据流使用不同的安全协议、算法或密钥。

1.1.2 安全联盟SA

IPSec对数据流提供的安全服务通过SA实现,它包括协议、算法、密钥等内容,具体确定了如何对IP报文进行处理。一个SA就是两个IPSec系统之间从源点到终点的单项逻辑连接,如果需要进行双向的安全通信,则需要建立两个方向的安全关联。

1.1.3 安全参数索引SPI

SPI是一个32比特的数值,在每个IPSec报文中都携带该值。在手工配置SA时需要手工指定SPI的取值。不同的SPI能保证SA的唯一性。使用IKE协商生成SA时,SPI随机生成。

1.1.4 安全策略

主机发送的数据并非都需要加密,很多信息使用明文发送即可。这就需要SPD(安全策略数据库)。SPD规定对什么样的数据采用什么样的安全措施。

1.2 报文首部认证协议AH

AH可对整个数据包提供身份验证、完整性与抗重播保护。但是它不对数据进行加密,无法提供保密性,且数据可读不可改。

  • 完整性:使用MD等哈希函数产生的验证码实现
  • 身份认证:加入通信双方共同约定的会话密钥
  • 防重放攻击:在AH报头中加入序列号

AH协议是被IP协议封装的协议之一,如果IP协议头部的“下一个头”字段是51,则IP包的载荷就是AH协议

AH报头格式如下:

0-7 8-15 16-31
下一个头 有效载荷长度 保留字段
安全参数索引(SPI)
序列号
验证数据(可变长度)
  • 下一个头:表示紧跟AH头部后面的协议类型。在传输模式下该字段是处于保护中的传输层协议的值,如6(TCP),17(UDP),50(ESP)。隧道模式下,AH保护整个IP包,该值是4,表示IP-in-IP协议。
  • 有效载荷长度:AH协议头的有效长度
  • 保留字段:准备将来对AH协议扩展时使用,目前协议规定这个字段应该被置为零。
  • 安全参数索引SPI:用来标识发送方在处理IP数据包时使用的安全策略,接收方根据这个字段来决定如何处理收到的IPSec包。
  • 序列号:一个单调递增的计数器,为每个AH包赋予一个序号。
  • 验证数据:可变长度,取决于采用何种消息验证短发,包含完整性验证码,称为ICV。

传输模式:

IP报头 AH报头 IP数据

隧道模式

新IP报头 AH报头 原IP报头 IP数据

1.3 封装安全载荷协议ESP

ESP和AH的完整性验证和数据源身份认证原理一样,只是验证范围小一些。ESP的加密算法使用的是对称加密算法DES和NULL(指实际上不进行加密或验证)。
ESP协议是被IP协议封装的协议之一。
传输模式:

IP报头 ESP头部 IP数据 ESP尾部 ESP验证

隧道模式:

新IP报头 ESP头部 原IP报头 IP数据 ESP尾部 ESP验证

1.4 互联网间密钥交换协议IKE

IKE是IPSec的信令协议,为IPSec提供了自动协商交换密钥、建立安全联盟的服务,能够简化IPSec的使用和管理,大大简化IPSec的配置和维护工作。IKE并不直接在网上传播密码,二十通过一些列的数据交换,最终计算出双方共享的密钥。
IKE定义了四种模式:主模式、积极模式、快速模式、新组模式。前三个用于协商SA,最后一个用于协商新的Diffie-Hellman组,分别应用于第一、一、二、三阶段。

2.TLS安全协议

TLS是安全传输增协议,用在两个通信应用程序之间提供保密性和数据完整性,应用层可以利用TLS传输各种数据。TLS简单地说就是在TCP层之上再封装了SSL层,将双方通信的内容进行加密,防止偷听者截获通信内容。SSL之后的TLS是较为成熟的通信加密协议,TLS主要由握手协议和记录协议组成。

2.1 handshake协议

用于协商安全参数。整体流程如下:

  1. Client端发起握手请求hello,包含版本、加密算法列表、sessionID、随机数等
  2. Server受到hello后,向Client发送hello,包含版本、sessionID、选好的加密算法、随机数
  3. 确定好加密算法和版本之后,S发送证书,包含公钥、签名、证书机构
  4. S发送算法相关参数
  5. S发送hello done,表示握手消息已经完成
  6. C收到证书并验证,成功后发送Client Key Exchange,包含算法相关参数等
  7. 双方计算密钥,C发送消息表示开始使用算法传输数据
  8. C发送一条消息Finish查看通道是否可用、S校验信息
  9. S发送消息表示开始使用算法传输
  10. S发送一条消息Finish查看通道是否可用、C校验信息

2.2 Record协议

一种对称加密传输的分层协议,位于TCP协议之上,每一层的信息可能包含长度、描述、内容等字段。
该协议从高层接收任意大小不间断的连续数据,密钥计算:该协议通过算法从握手协议提供的安全参数中产生密钥,IV和MAC密钥。TLS握手协议由三个子协议组成,允许对等双方在记录曾的安全参数上达成一致、自我认证、协商安全参数、互相报告出错条件。

2.3 TLS相关子协议

Alert协议是TLS提供警报内容类型以指示关闭信息和错误的协议。分为关闭警报和错误警报。

3.HTTPS安全协议

安全产文本传输协议HTTPS是超文本传输协议HTTP的扩展,使用SSL或TLS进行加密。

3.1 HTTP报文类型

分为HTTP请求报文和HTTP响应报文

3.1.1 请求报文

客户端发送一个HTTP请求到服务器,这个HTTP请求由请求行、请求头、空行和请求数据组成。

3.1.2 响应报文

服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。由状态行、响应头、空行和相应正文组成。

3.2 HTTP/2.0的帧格式

由9个固定的字节和payload组成

3.3 HTTP/2.0和HTTP/1.1的区别

  1. 二进制分帧,2.0解析起来更搞笑,没有冗余字段、占用带宽少。
  2. 多路复用

4.QUIC安全协议

QUIC是谷歌指定的一种基于UDP的低时延的互联网传输协议。QUIC很好地解决了当今传输层和应用层的各种需求,包括处理更多的连接、安全性和低时延。

4.1 特点

在功能上QUIC等价于TCP+TLS+HTTP/2.0,但基于UDP实现。相对更加灵活。

4.1.1 连接建立时延

QUIC将加密和传输握手结合在一起,减少了建立一条安全连接所需的往返。通常是0RTT建立连接,意味着数据可以被立即发送无需等待。

4.1.2 灵活的拥塞控制

具有可插入的拥塞控制,且有着比TCP更加丰富的信令。

4.1.3 流和连接的流量控制

实现了流级和连接级的流量控制,类似HTTP/2.0的流量控制。

4.1.4 多路复用

基于TCP的HTTP/2.0伸手TCP的对手阻塞问题困扰。由于QUIC是为多路复用操作从头设计的,携带个别流的数据的包丢失时,通常只影响该流。每个流的帧可以在到达时立即发送给该流,因此没有丢失数据的流可以继续重新汇集,并在应用程序中继续进行。

4.1.5 认证和机密的首部和载荷

QUIC的数据包总是经过认证的,而且典型情况下载荷是完全加密的。QUIC保证端到端通信免遭智能或不知情的中间设备操纵。

4.1.6 连接迁移

TCP连接由源地址、源端口、目的地址和目的端口的四元组标识。TCP一个广为人知的问题是,IP地址改变或端口号改变时连接会断掉。尽管MPTCP解决了连接迁移问题,但依然为缺少中间设备和OS部署支持所困扰。

加密流量分析-4.加密协议分析相关推荐

  1. SideWinder诱饵文档加密流量分析

    近期获得一个SideWinder组织关联样本(MD5:267870d2a7deec193cf6c2b6926f0451).我们对此样本及其产生的加密流量进行了简要分析. 样本概述 在此次攻击中,Sid ...

  2. 加密流量分析-2.研究背景

    研究背景 1.加密流量分类概述 1.1识别方法 1.2 识别粒度 1.3 识别对象等级 2.加密流量识别粒度相关研究 2.1加密与未加密流量分类 2.2 加密协议识别 2.2.1 IPSec 2.2. ...

  3. 知乎App加密流量分析初探

    如果努力没有结果,那就要再努力一点.对面HTTPS加密流量,还是束手无策啊.因为我们得到的信息太少了,只有握手过程是明文的,后续数据部分什么都分析不了.便纵有千种风情,更与何人说? 第一步:在安卓虚拟 ...

  4. 如何使用Wireshark分析解密后的手机APP以及PC软件的HTTPS加密流量

    本文将分享一种解密SSL/TLS加密流量的通用方式,并配合wireshark进行解密后的分析. 很多的新手使用wireshark都会有这样的需求,即利用wireshark分析加密的流量,例如HTTPS ...

  5. apache日志 waf_WAF对WebShell流量检测的性能分析

    最近在一次授权渗透测试中遇到了一个棘手的场景,万能的队友已经找到了后台上传点,并传了小马然后开心地用antsword进行连接,但是由于明文传输很快被waf感知,并引起了管理员的注意,很快我们的马被清了 ...

  6. 内网穿透从搭建到溯源(内网隧道搭建、绕过、隧道流量分析、日志分析、隧道防护)

    背景 在攻防博弈这个永久的话题中,永远不会缺少一个重要角色即内网穿透.当渗透测试人员在进入内网,需要扩大战果的时候,往往会遇到内网的一些防护策略,不外乎边界设备.防火墙及入侵检测设备对端口或者数据包的 ...

  7. 一次HTTP(S)请求究竟需要多少流量?Wireshark抓包分析

    来自:指月 https://www.lixueduan.com 原文:https://www.lixueduan.com/post/network/06-http-flow/ 本文主要通过抓包分析了一 ...

  8. 电商APP的流量及用户运营分析

    引言 本项目数据来源于和鲸社区 https://www.kesci.com/home/dataset/5ef7024363975d002c9235d3,记录了 2014 年 11 月 18 日至 20 ...

  9. 流量分析:如何分析数据的波动?

    流量分析. 内容分为四部分: 背景: 渠道分析: 转化与价值分析: 流量波动逻辑性分析. 背景 建立产品指标体系和报表之后,分析师和业务方最重要的事情就是每天看各种数据,而这个看数据的过程就是流量分析 ...

最新文章

  1. linux 入侵检测
  2. Document 对象描述
  3. DL之NN/Average_Darkness/SVM:手写数字图片识别(本地数据集50000训练集+数据集加4倍)比较3种算法Average_Darkness、SVM、NN各自的准确率
  4. 突破C++瓶颈,在此一举!
  5. 逆向推导https的设计过程
  6. 数据分析工具评测丨Yonghong Desktop对战Tableau Desktop
  7. 如何将cv::Mat类型转换为imgui中的ImTextureID类型
  8. 剑指企业级云原生,阿里云 CNFS 如何破局容器持久化存储困境
  9. Viliv N5 GPS安装及使用方法
  10. php处理excel类,30 个 PHP 的 Excel 处理类
  11. (转)比特币该如何扩容
  12. android+即刻点赞,Android开发仿即刻点赞文字部分的自定义View
  13. 三菱PLC安装报错“工程初始化失败”处理方法
  14. 新手入门:PyCharm 的使用
  15. EAS BOS 开发问题集锦
  16. 弹弹堂弹道模拟程序——第一帖
  17. java实现牛牛游戏源代码
  18. pyscripter支持python什么版本_PyScripter下载|PyScripter(Python集成开发环境) v2.6.0官方版 64位/32位 - 121下载站...
  19. es 一个字段设置多个分词器
  20. Python画用电客户日负荷曲线图

热门文章

  1. 开发java的准备--下载与安装Java的JDK—Java学习(1)
  2. 【每日新闻】换脸视频后 AI又出偏门应用:用算法“脱掉”女性衣服
  3. 将毫秒转成时:分:秒
  4. To_Heart—总结——FWT(快速沃尔什变换)
  5. KVM虚拟化技术(三)之克隆虚拟机
  6. 纽约摄影教程读书笔记
  7. vscode一格式化就报错?各种风格问题各种报错烦不胜烦,教你如何用好vue的eslint风格配置...
  8. html5 meter样式,使用HTML5“meter”元素
  9. 计算机储存数据怎样操作,计算机如何存储数据
  10. 沪江快速手机打字破解版