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 片段个数.
   342   343   344   345   346   347   348   349   350   351   352