Page 347 - 《软件学报》2021年第10期
P. 347
吴桦 等:大型指纹库场景中加密视频识别方法 3319
HTTP 头部信息在 TLS 片段中有两种分布方式,如图 8 所示:第 1 种是 HTTP 头部与加密数据被混合在一
个 TLS 片段中,第 2 种是 HTTP 头部单独成为一个 TLS 片段.通过对 Facebook 和 YouTube 数据的分析发现,
Facebook 超过 85%的样本、YouTube 的全部样本都是按照图 8 所示的 TLS 片段数据分布 2 所示分布的.这是
因为视频服务器响应时,HTTP 头部信息是由服务器直接产生的,而视频数据是从硬盘中读出的,这两者到达缓
冲区的速度不一样,从而导致先到达的 HTTP 头部作为一个单独的 TLS 片段;而且这个片段长度的分布具有明
显的区间范围,如 Facebook 平台这个 TLS 片段长度会分布在[400Byte,700Byte]内.图 8 所示的 TLS 片段数据分
布方式 1 实际中占比很少,本文的策略是视为不可用而过滤掉.在第 2.2 节采集的数据集中,只有 12%的密文数
据是属于这种情况的.在实际的视频应用中,出现分布方式 1 的概率会小很多,因此过滤这样的数据并不会影响
本文方法的适用性.
TLS片段数据分布1
HTTP头部 TLS片段数据分布2
Fig.8 Position of HTTP header in TLS fragmentation
图 8 HTTP 头部在 TLS 片段中的位置
2.3.2 特征值提取
ADU 长度精准复原的关键点在于,将上述造成 TLS 加密数据传输长度偏移的因素加入数据特征的选择.
本文选用 3 个特征值:Payload_S c 、HTTPhead_L 和 N TLS .这 3 个特征的具体含义如图 9 所示.
HTTPhead_L为传输一个ADU的 N TLS为传输一个ADU加密
加密数据时,用于传输HTTP 数据的TLS片段的个数
协议头部信息的TLS片段的长度
Payload_S c为一个ADU被加密传输后的数据长度
Fig.9 Meaning of the three features
图 9 3 个特征值的含义
Payload_S c 特征的提取方法采用的是类似于文献[27]中的方法,将在传输层获得的应用层载荷之和作为
Payload_S c .
对 HTTPhead_L 和 N TLS 特征的选取是以图 7 和图 8 所示的原理为依据.因为若要复原 ADU 明文的数据长
度,必须在加密数据长度中减去 HTTP 头部的数据长度和 TLS 头部的数据长度.因此,HTTP 头部对应的密文长
度以及 TLS 片段个数必然为主要特征.根据文献[29],TLS 片段的长度最大为 16KB,再加上 TLS 片段头部信息,
总长度通常大于 TCP 数据包的最大长度 MSS(maximum segment size),因此,TLS 片段会被分割在若干 TCP 数
据包中发出,并且在两个 TLS 片段的交界处,分别属于两个 TLS 片段的数据会合成一个 TCP 数据包发出.从密
文中提取 N TLS 就需要进行反向操作,如图 10 所示:将一个应用层数据单元的所有 TCP 数据包重新拼装为真实
的 TLS 片段,才能得到对应的 TLS 片段个数.