Page 472 - 《软件学报》2025年第7期
P. 472
吴桦 等: 面向 HTTP/2 流量多路复用特征的加密视频识别方法 3393
ID, 从大型指纹库中提取出对应的视频明文指纹, 组成一个小型的候选视频明文指纹库.
C m+1 ,C m+2 ,...,C n 在由小型候选视频明文指纹库生成的内存键值对数据
快速匹配阶段. 将修正指纹的剩余分片
库中进行匹配, 从而获取剩余修正指纹分片的匹配结果及匹配概率. 在该阶段, 由于修正指纹分片只在小型的指纹
库中进行匹配, 在很大程度上缩小了指纹匹配的规模, 从而实现了快速匹配.
需要注意的是, 图 10 中滑动窗口 P 的窗口上限 n 与视频平台的内容分发机制有关, 需要根据实际测定获得.
为此, 本文分别从 4 个地区采集了 Facebook 和 Instagram 相同视频的加密传输数据, 并结合在代理软件中的观察
和与视频明文指纹的对比来对 n 进行设置. 在客户端前期加载视频过程中, 一个 HTTP 请求的连续音视频片段数
量 n 较小, 通常为 1–3, 在视频播放的后续过程中, n 会根据网络状况进行调整, 并逐渐趋于稳定. 当网络环境较差
时, n 通常为 1 或 2; 当网络环境较好时, n 通常为 6 或 7. 通过对不同地区以及不同分辨率的视频传输数据的分析,
测定 n 的范围为 1≤n≤7. 后续在本节的匹配和识别阶段也证实了上述观察的真实性. 因此本文设置滑动窗口 P 的
窗口上限为 7.
6.2 基于 HMM 构建分辨率自适应视频识别模型
通过第 6.1 节的视频修正指纹滑动匹配算法, 获得了各修正指纹分片与视频明文指纹库中视频片段的所有可
能的匹配结果, 接下来以音视频片段序列传输顺序和片段间的理论切换概率为准则, 以实际匹配到的音视频序列
片段数量和顺序为基础, 构建合适的识别模型, 将识别模型输出的概率最大的识别结果作为最终加密视频内容识
别的结果. 根据调研, 常用于语音识别领域的隐马尔可夫模型 (hidden Markov model, HMM) [40] 的使用场景与本文
的识别场景非常符合, 因此本文选择以 HMM 模型为基础构建视频识别模型, 进而利用维特比算法求解 HMM 模
型达到识别视频的目的.
隐马尔可夫模型是马尔可夫链的一个拓展 (如图 13 所示), 隐马尔可夫模型中的任一时刻的状态 S t 是不可见
S 1 ,S 2 ,S 3 ,...,S t 来推测模型中的转移概率等参数, 但在隐马尔可夫模型中, 每个
的, 观察者无法通过观察状态序列
时刻都会输出一个状态 O t , 且这个状态 O t 仅和与之对应的状态 S t 相关, 这也被称为独立输出假设. 在隐马尔可夫
O 1 ,O 2 ,O 3 ,...,O t 被称为输出状态序列或可观测状态
模型中, 状态序列 S 1 ,S 2 ,S 3 ,...,S t 被称为隐含状态序列, 状态序列
序列.
0.4 O 1 O 2 O 3 O 4
1.0 0.6 0.3
S 1 S 2 S 3 S 4
S 1 S 2 S 3 S 4
0.7
(a) ઔغॖڏ৽ (b) ႅઔغॖڏଆ
图 13 马尔可夫链和隐马尔可夫模型
S 1 ,S 2 ,S 3 ,...,S t 产生输出状态序列
基于马尔可夫假设和独立输出假设, 可以计算出某个特定的状态序列
O 1 ,O 2 ,O 3 ,...,O t 的概率:
∏
P(S 1 ,S 2 ,S 3 ,...,O 1 ,O 2 ,O 3 ,...) = P(S t |S t−1 )·P(O t |O t−1 ) (6)
t
解码问题是隐马尔可夫模型的一个主要应用场景. 解码问题是指给定一个模型和某个特定的输出序列, 如何
找到最可能产生这个输出的状态序列, 即根据模型和可观测序列寻找隐含状态序列. 解码问题与本研究根据加密
视频修正指纹识别加密视频问题非常相似, 从加密视频传输数据中修正还原出的视频修正指纹序列可以看作是隐
马尔可夫模型中的输出状态序列, 而视频明文指纹序列可以看作是隐含状态序列, 至于模型中各个状态之间的转
移概率也可以根据不同视频片段之间的切换概率计算, 因此, 加密视频识别过程就可以看作根据隐马尔可夫模型
和输出状态序列 O 1 ,O 2 ,O 3 ,...,O t (视频修正指纹序列) 寻找最有可能产生该输出序列的隐含状态序列 S 1 ,S 2 ,
S 3 ,...,S t (视频明文指纹序列), 即:
S 1 ,S 2 ,S 3 ,... = argmax P(S 1 ,S 2 ,S 3 ,...|O 1 ,O 2 ,O 3 ,...) (7)
all S 1 ,S 2 ,S 3 ,...

