Page 346 - 《软件学报》2021年第10期
P. 346

3318                                 Journal of Software  软件学报 Vol.32, No.10, October 2021

                 为了获得 MPD 文件的内容,将移动终端通过 PC 提供的热点接入网络,在 PC 上运行中间人代理.在移动终端点
                 播 Facebook 的不同视频,并手动切换不同分辨率,就可以通过中间人代理获得 MPD 文件的明文,进而对 MPD 文
                 件进行解析,获得视频 ADU 的描述信息.这些信息可以用来构造 ADU 明文字典.
                    为了获得密文传输实例,移动终端使用 PC 上的热点,启动接入热点上的 Wireshark,在移动终端上点播视频,
                 视频播放时就可以在 PC 上抓取密文数据.实验数据采集过程中严格顺序播放视频,并在实验后释放应用缓存空
                 间,以保证每次播放时都是全数据传输,这样可以依次正确提取视频 ADU 的传输长度.由于接入网速的限制,采
                 集的这些传输指纹样本主要由 144P、240P、360P 这 3 种不同的分辨率组成,分析这些数据获得可用的视频传
                 输 ADU 密文 14 551 个.

                 2.3   单个ADU传输特征提取
                 2.3.1    TLS 加密数据传输长度偏移基本原理分析
                    加密 ADU 的传输长度与其对应的明文长度进行匹配时,传输长度越接近明文长度,则匹配越准确.但在加
                 密传输的情况下,我们只能得到所有加密数据包载荷长度之和 Payload_S c ,由于网络协议添加了多种信息头部,
                 Payload_S c 相对明文长度有了偏移,必须将 Payload_S c 修正成接近明文长度的值,再与明文长度匹配.本节分析
                 TLS 协议加密后数据传输长度发生偏移的原因,这是特征提取的关键点.
                    在目前所有相关研究中,ADU 的数据长度特征提取都是直接使用文献[19]中提供的工具或者开发的类似
                 工具,将对同一个 HTTP 请求的响应数据包应用层载荷长度之和视为一个 ADU 的长度.但实际情况并非如此,
                 如图 3 所示,应用层的 ADU 需要经过 HTTP 协议、TLS 协议、TCP 协议封装后才能成为 TCP 数据包.TLS 加
                 密数据通过 TCP 协议传输时,只能获得 TCP 头部信息和 IP 头部信息,TCP 的载荷大部分是加密的.为了分析数
                 据长度发生的变化,首先需要明确 ADU 转换为 TCP 数据包的过程中发生的信息变化.
                    自适应流媒体 MPEG-DASH 或者 HLS 模式传输流媒体视频,使用的都是 HTTP 应用协议,因此如图 7 所示.
                       应用层 ADU 首先由 HTTP 协议封装;
                       随后,ADU 和 HTTP 头部合并后,通过接口调用被 TLS 协议处理:首先会被分片,然后可能会被压缩、
                        添加 MAC(message authentication codes)值,随后加密成一系列的 TLS 片段.这些 TLS 片段都会有一个
                        TLS 头部结构,含有数据类型、版本号和长度信息等信息.这些 TLS 片段成为 TCP 传输协议的载荷.

                                                     应用数据单元(ADU)
                                                         明文数据
                                            HTTP头部
                                         HTTP        应用数据单元(ADU)

                                            TLS片段

                                           TLS

                                           TCP数据包
                                          TCP

                         Fig.7    Process of encapsulating an application data unit to a series of encrypted TCP packets
                                  图 7   将一个应用数据单元封装成一系列加密 TCP 数据包的过程

                    从图 7 可以看出:TCP 数据包载荷长度之和与 ADU 的数据长度必然存在偏移,这些偏移包括增加了 HTTP
                 头部信息、TLS 头部信息.由于 TLS 协议将 HTTP 头部和应用数据单元切分为一些 TLS 片段后加密,每个 TLS
                 片段头部都会增加 TLS 头部信息,片段数目越多,增加的头部信息越多.因此,TLS 片段的数目也是影响 ADU 长
                 度偏移的关键因素.
   341   342   343   344   345   346   347   348   349   350   351