Page 465 - 《软件学报》2025年第7期
P. 465

3386                                                       软件学报  2025  年第  36  卷第  7  期


                 行压缩, 并作为    HEADERS  帧单独传输;   H2_Frame_Headers len  代表一个  HTTP/2 帧的头部的长度;  N H2  指承载  CDU
                 数据的   HTTP/2  帧数.

                                                                               CDU
                                               V i,n  V i,n+1  V i,n+2  V i,n+3  V i,n+4

                                                                                      加密
                                    HEADERS frame  Frame header  DATA frame  HTTP/2

                                         HTTP
                                         头部


                                             TLS header         TLS payload    TLS






                                                      TCP packets              TCP





                                               图 6 视频数据分组      CDU  封装过程

                    在公式   (1) 的诸多参数中, 一些参数可以通过直接或间接的方式从加密视频传输数据流中分析获得:
                    (1)  TCP_Payload len : 由于  TCP  首部不是加密数据, 所以可以通过对承载音视频数据         CDU  的  TCP  分组的首部
                 信息进行统计, 从而计算出总的         TCP  载荷长度.
                    (2)  N TLS : 虽然无法直接从  TCP  头部获取  TLS  记录数量, 但可以通过间接的方式计算出            TLS  记录个数. 由于
                 TLS  的“PlainText Header”结构中记录着加密数据块的长度信息         [39] , 并且这个结构的信息也是不加密的, 所以可以
                 通过  TCP  负载数据中找到     TLS  记录的“PlainText Header”字段进行解析, 结合   TCP  分组的有效负载长度和序列号
                 便可以得到    TLS  记录的个数.
                    (3)  H2_HEADERS _Frame len : 由于  HTTP/2 协议会使用  HPACK  算法将  HTTP  头部进行压缩, 封装成  HEADERS
                 帧进行单独传输, 且该帧的大小一般不会大于               1  个  TLS  记录的最大报文长度    MSS (maximum segment size), 所以
                 该帧会单独使用一个       TLS  记录传输, 因此可根据时间戳、阈值和特征值来获取该参数.
                    (4)  H2_Frame_Headers len : 根据  HTTP/2  的协议标准  RFC 7540 [35] , 一个数据帧的头部长度为  9 B.
                    在获取到上述参数信息后, 修正还原公式             (1) 中只剩下参数    TLS _θ len  和参数  N H2  尚未获知, 要想计算这两个参
                 数, 需要结合   TLS  协议和  HTTP/2  协议的特点, 从加密数据流中提取特征来构建相关修正模型, 此外这些特征与视
                 频平台使用的     TLS  协议版本和参数设置有关, 因此需要根据不同视频平台的数据分别构建相关修正模型.
                    本文第   5.2  节给出从数据流中提取音视频数据, 划分出            CDU  的方法, 经过这个处理, 就可以提取出公式           (1) 中
                   TCP_Payload len 、 N TLS 、                H2_Frame_Headers len  这  4  个参数. 第  5.3  节针对  TLS  协
                 的                    H2_HEADERS _Frame len  和
                                                   TLS _θ len . 第  5.4  节对  HTTP/2  协议的干扰进行修正, 构建机器学习模
                 议的干扰进行修正, 构建修正模型计算参数
                 型计算参数    N H2 .

                 5.2   从加密视频数据流中提取组合数据单元
                    在加密视频数据传输过程中, 由于视频网页会加载页面、图标、CSS                      和视频评论等信息, 导致采集到的流量
                 数据中夹杂着大量的非音视频数据, 需要从这些混乱的数据流中区分出音视频流, 此外, 由于                            HTTP/2  使用多路复
   460   461   462   463   464   465   466   467   468   469   470