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

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


                 传输, 但当  HTTP/2 DATA  帧长度较小, 未超过     1  个  TLS  记录的最大负载长度时, 往往只会使用         1  个  TLS  记录传
                 输. 已知  TLS  的最大负载长度为     16 384  字节, 当  HTTP/2 DATA  帧的长度小于  16 384  字节时, 该帧只会使用    1  个
                 TLS  记录传输.
                                 TLS _θ len , 可以只选取数据长度小于    16 384  字节的  CDU  进行模型训练. 该   CDU  数据只会使
                    为了准确地得到
                 用一个   HTTP/2 DATA  帧, 且该  DATA  帧也只需一个    TLS  记录传输. 此时, 公式    (1) 中的参数   N TLS  和  N H2  均为  1,
                 公式  (1) 可以简化为:

                           ]
                           CDU len = TCP_Payload len −TLS _θ len − H2_HEADERS _Frame len − H2_Frame_Headers len  (2)
                    音频片段的数据量较小, 在本文的研究平台中, 一个音频片段的大小为                      14 KB  左右, 远小于  HTTP/2 DATA  帧
                 和  TLS 记录的最大负载长度, 满足上述特殊情况. 此外, 根据第           5.1 节和第  5.2 节的介绍, 公式  (2) 中的  TCP_Payload len 、
                 H2_HEADERS _Frame len  和  H2_Frame_Headers len  等参数可以直接获得. 因而从本研究采集到的约       10  万组  CDU
                 中提取出满足上述情况的         CDU  的加密传输数据作为训练集, 对公式           (2) 进行拟合. 使用   Facebook  和  Instagram  样
                              TLS _θ len = 22, 这表明  Facebook  和  Instagram  在使用  TLS1.3  封装  HTTP  数据后, 每个  TLS  记录会
                 本数据集得到的
                 使负载数据长度增加       22  个字节.
                    当使用不同视频平台的数据对公式             (2) 进行训练时, 有可能得到不同的         TLS _θ len . 本文后续使用  Facebook  和
                 Instagram  训练得到的结果, 代入公式     (1) 就可以对  TLS  协议带来的长度增加干扰进行修正.

                 5.4   针对  HTTP/2  协议干扰的修正
                    公  式  ( 1 )  中  H T T P / 2  协  议  带  来  的  干  扰  有  两  项  ,   包  含  的  参  数  有  3  个  ,   分  别  为     H2_HEADERS _Frame len 、
                 H2_Frame_Headers len  和  N H2 .
                      H2_HEADERS _Frame len  为承载  HTTP  首部数据的  HEADERS  帧的长度, 其大小一般小于      TLS  记录的最大
                 报文长度   MSS, 所以该帧会单独被封装在一个           TLS  记录中, 并且在传输音视频数据的         DATA  帧之前传输. 该参数
                 的大小可以通过第       5.1  节介绍的方法获得.
                      H2_Frame_Headers len  是每个  HTTP/2  数据帧的首部长度, 在  HTTP/2  的协议标准  RFC 7540  中被指定为  9 B.
                     N H2  指承载一个  CDU  的  HTTP/2 DATA  帧的个数. 由于  HTTP/2  数据帧被  TLS  协议加密, 无法通过分组数据

                 获得. 本文利用机器学习模型, 用承载           CDU  数据的  TLS  记录的加密有效负载长度序列作为特征, 所有承载               CDU
                 数据的   DATA  帧的数量作为标签, 训练机器学习模型. 当需要对一个                CDU  进行修正复原时, 提取承载该        CDU  的
                 TLS  记录的加密有效负载长度序列, 就可以利用训练出的机器学习模型预测.
                    上述  N H2  预测模型的训练过程中, 需要提取出每个加密            CDU  对应的  TLS  记录长度序列作为特征. 在第        5.2  节
                 划分出每个加密      CDU, 并提取出每个加密       CDU  对应的多个    TLS  记录长度序列, 在第    5.3  节利用线性回归模型拟
                 合出每个   TLS  记录对其所承载的数据的长度干扰量为+22 B, 因此将序列中每个                   TLS  记录长度减   22  后就是每个
                 TLS  记录内数据的原长度, 这些       TLS  记录数据原长度序列就是本文提取的           TLS  记录长度序列特征.
                     N H2  预测模型的目标是预测出每个        CDU                            N H2  值作为标签.  TLS _Load len  表
                                                     的参数   N H2 , 因此训练数据需要有
                 示     CDU  数据被  HTTP/2  和  TLS  协议封装后的有效载荷长度总和, 有:
                                                                                                      (3)
                                          TLS _Load len = TCP_Payload len −TLS _θ len × N TLS
                    将公式   (3) 代入公式  (1) 可得:

                                       ]
                                      CDU len = TCP_Load len − H2_HEADERS _Frame len −9× N H2         (4)
                    从公式                   N H2  的公式:
                          (4) 可得到计算参数
                                      N H2 = (TLS _Load len − H2_HEADERS _Frame len − ] )/9           (5)
                                                                           CDU len
                    利用公式    (5) 和  CDU  对应的明文指纹便可以计算出参数         N H2  的值, 将该值作为上述特征序列的标签.
                    通过上述提取方法, 从样本         CDU  提取出的   TLS  记录长度序列作为特征, 对应的        N H2  作为标签, 就可以训练出
                 预测模型.
                    为了提高模型预测的准确率, 本文对用于预测模型训练的特征向量做了进一步的处理. 在 HTTP/2 协议和
   462   463   464   465   466   467   468   469   470   471   472