Page 464 - 《软件学报》2025年第7期
P. 464
吴桦 等: 面向 HTTP/2 流量多路复用特征的加密视频识别方法 3385
训练阶段, 该阶段利用加密传输数据和明文指纹库中对应的标签, 根据 TLS 和 HTTP/2 对数据进行加密封装和传
输的原理, 依次训练 TLS 修正模型和 HTTP/2 修正模型, 用于修正加密传输数据. 第 2 阶段是利用第 1 阶段训练好
的两个修正模型依次对加密视频传输数据进行精确修正还原, 从而构建出加密视频的修正指纹.
模型训练阶段
标签 标签
PCAP
流量 TLS 修正 合并 HTTP/2 修正
V 1 : 预处理 模型训练 频繁项 模型训练 V 1 :
训练集
V 2 :
V 2 :
V 3 :
流量 TLS 修正 合并 HTTP/2 修正
V 3 : A 1 :
预处理 模型 频繁项 模型
样本集
加密视频传输 加密视频修正 视频明文指纹库
数据集 指纹构建阶段 指纹
图 5 加密视频修正指纹构建框架
5.1 加密视频修正指纹构建基本思路
在使用明文指纹识别加密视频内容的过程中, 对加密传输数据还原的准确性直接影响到后续的识别效果, 而
干扰还原准确性的因素主要是数据传输时所采用的各种协议封装. 本节将根据音视频数据在实际网络环境中的传
输过程, 分析各种协议对所传输数据的影响, 从而确定干扰加密数据长度还原的主要因素, 并提出加密视频修正指
纹构建的基本思路.
如第 2.1 节所介绍, 基于 HTTP 协议的自适应流媒体技术为实现视频播放过程中的不同视频分辨率的自适应
切换, 使用 VBR 算法将视频编码为不同比特率的视频, 并将视频切分为时长相等的若干视频片段, 在实际视频播
放过程中, 视频客户端会依据网络环境依次请求不同质量的视频片段和音频片段. 通过在 Chrome 浏览器开发者
界面和代理软件中观察, Facebook 和 Instagram 在实际播放视频时, 客户端会连续请求多个视频和音频片段 (如
图 6 所示), 组合方式包括多个视频、多个音频, 以及多个音频和视频的组合, 这些请求会得到连续传输的响应数
据, 为方便后续介绍, 本文将这些连续传输的组合响应数据统称为组合数据单元 CDU (chunk data unit). 由于使用
了多路复用技术, 这些 CDU 中的音频和视频分组加密后被混杂传输, 无法区分, 因此本文将 CDU 作为一个整体
进行长度的修正还原.
加密视频修正指纹构建的基本思路是减去 CDU 在封装过程中增加的控制信息长度. 图 6 为音视频数据
CDU 被封装的过程. 在进入网络链路传输时, 音视频数据 CDU 会依次被 HTTP/2、TLS 和 TCP 等协议处理, 进行
相应的切分、压缩、加密和填充等操作, 并添加对应的协议头部和控制信息, 以确保 CDU 的稳定可靠传输. 为了
达到加密数据修正还原的目的, 需要从实际传输的负载长度中减去所有被添加的额外控制信息的长度, 可以得到
音视频数据 CDU 的修正还原公式为:
]
CDU len = TCP_Payload len −TLS _θ len × N TLS − H2_HEADERS _Frame len − H2_Frame_Headers len × N H2 (1)
]
其中, CDU len 代表还原后的音视频 CDU 长度; TCP_Payload len 代表传输该 CDU 数据的所有 TCP 报文段的有效
负载之和; TLS _θ len 代表单个 TLS 记录在承载传输数据后引入的干扰量的均值, 即单个 TLS 记录对所承载的传输
数据的长度干扰值. 由于 TLS 协议具有数据压缩、填充和加密等机制 (压缩机制在 TLS 1.3 中已经被去除), 且会
添加 TLS 头部等额外信息, 在未知加密套件及秘钥的情况下无法对负载数据进行还原, 只能通过线性回归的方式
来整体评估 TLS 协议在负载数据前后引入的干扰量; N TLS 表示 TLS 记录的个数; H2_HEADERS _Frame len 是指
HTTP/2 协议中 HEADERS 帧的长度, HTTP/2 协议有首部压缩的机制, 其使用 HPACK 算法对 HTTP 头部数据进

