Page 348 - 《软件学报》2021年第10期
P. 348
3320 Journal of Software 软件学报 Vol.32, No.10, October 2021
TCP数据包中的TLS片段
2 4
1
1 1 1 2 2 2 3 3 3 4 4 4
2 3
TLS片段
1 2 3 4
Fig.10 Combining TLS fragmentation from TCP packets
图 10 从 TCP 数据包中组合出 TLS 片段
TLS 片段个数无法直接从 TCP 和 IP 的报头得到,需要结合 TLS 头部信息的解析得到.在 TLS 片段的头部
所包含的 TLSPlaintext 结构中,包含了该 TLS 片段的长度信息,这些信息并不是加密的.因此可以解析 TCP 数据
包载荷中的 TLS 片段头部信息,得到每个 TLS 片段的长度信息,再根据每个 TCP 载荷的实际长度信息,将 TCP
数据包合并或者拆分到各 TLS 片段中,从而组合出 TLS 片段.对组合出的 TLS 片段,根据上文分析的结论,如果
第 1 个 TLS 片段长度在 400B 到 700B 之间,这个 TLS 片段包含的数据是 HTTP 协议的头部信息,将其长度提取
为 HTTPhead_L.对剩下的 TLS 片段计算片段的个数,就获得了 N TLS .
对每个 ADU 经过加密传输后得到的加密数据,提取 Payload_S c 、HTTPhead_L 和 N TLS 这 3 个特征,结合之
前对这些 ADU 做的明文标记,就构成了训练集和测试集.
2.3.3 特征值提取中需要解决的关键问题
第 2.3.2 节给出的是特征值提取的基本原理和方法,前提条件是能够得到 ADU 的所有数据包.虽然文献[19]
及相关研究都是利用了图 3 所示的基本原理,但在处理实际传输数据时,情况要复杂很多,主要表现在:
(1) 数据传输必然存在丢包、重传、乱序的现象;
(2) 数据采集时可能由于采集系统的性能出现漏采集的现象;
(3) 客户端接收服务器发送的 ADU 的时候,可能由于网络状况的恶化中断已有的传输,然后客户端重新
请求 TCP 连接,并发出续传请求.中断后续传的起点会根据不同情况有所不同,这导致 1 个 ADU 的数
据可能来自 1 个 TCP 连接或者多个 TCP 连接;
(4) 当发生分辨率自适应切换时,在切换处会出现多余的 ADU;
(5) 用户在播放过程中的暂停、回放、快进等操作导致的数据复杂化.
在数据被加密的背景下,上述这些情况需要能够被识别并进一步加以处理.由于这部分技术细节的解决过
程颇为复杂,限于篇幅有限以及这部分数据预处理内容更偏向于工程实现,具体细节不在本文中展开.
这些由于网络传输的复杂性导致的问题在已有的相关文献中都没有被提及,如果直接忽视这些细节是无
法准确得到本文提出的 3 个特征值的.本文在数据处理过程中充分考虑了网络传输复杂性带来的问题,这是
HHTF 能精准复原明文长度的技术支撑.
2.4 回归模型拟合结果
根据图 7 给出的 TLS 传输长度漂移原理,计算 ADU 长度精确复原值 ADU_R 的公式为
ADU_R=Payload_S c HTTPhead_LN TLS (5)
ADU_R 为将加密数据长度复原后获得的长度,为数据中每个 TLS 片段增加的信息的长度.的取值与加密
数据传输使用的 TLS 协议版本以及加密套件相关,为准确起见,对不同的 TLS 协议版本或加密套件需要提取特
征后进行模型拟合,得到值.
根据第 2.3 节中的特征提取方法,对 Facebook 样本的 ADU 传输数据提取特征,并使用带外方式打上明文长
度标签,进行模型训练后回归模型为
ADU_R=Payload_S c HTTPhead_LN TLS 29 (6)
即 Facebook 数据拟合后=29,说明 Facebook 对视频数据进行 TLS 加密时,每个 TLS 加密片段增加 29 字节