原文标题:Markov Chain Fingerprinting to Classify Encrypted Traffic原文作者:Maciej Korczynski, Andrzej Duda原文链接:https://doi.org/10.1109/INFOCOM.2014.6848005发表会议:IEEE笔记作者:宋坤书@安全学术圈主编:黄诚@安全学术圈编辑:张贝宁@安全学术圈
1、研究背景
网络流量分类在网络规划、基于策略的流量管理、应用优先级设置和安全控制中发挥着重要作用。传统的分类方法是基于端口和有效负载的,而新应用则是通过动态端口分配、隧道化或使用专有的有效负载加密方法来隐藏自身特征。这导致了基于流量特征和主机行为的新型识别方法的出现,这些方法能有效分类应用层协议或流量类别,但对基于特定协议之上的应用流量的识别效果较差。此外,传统方法在仅观察单向流量时的效果较差,尤其是在路由不对称的情况下。
传统的基于有效负载的分类方法对于加密流量分类是无效的,因为这些方法依赖于可访问的明文数据。因此,本文提出了一种新的基于有效负载的加密流量分类方法,主要用于识别通过SSL/TLS协议加密的应用流量。该方法通过利用SSL/TLS头部信息生成统计指纹,并基于这些指纹对应用流量进行分类。指纹是那些能够识别特定流量类别的特征,本文提出的指纹基于一阶同质马尔可夫链,反映了SSL/TLS会话的动态过程,模型通过对比加密流量的消息序列与指纹来实现分类。文中对12种代表性应用的SSL/TLS流量进行分析,通过加密应用流量的消息序列与指纹进行比较来对应用进行分类。结果表明,提出的指纹能够有效分类加密流量,并可用于检测通过异常通信方式试图利用SSL/TLS协议的入侵行为。
2、SSL/TLS协议概述
安全套接字层(Secure Sockets Layer, SSL)和传输层安全协议(Transport Layer Security, TLS)是加密协议,用于通过加密和封装应用层数据,在互联网上为通信双方提供安全通信。SSL/TLS协议主要由五个组件组成:记录协议(Record Protocol,负责压缩和加密上层数据)、应用数据协议(Application Data Protocol,向记录协议提供应用数据)、握手协议(Handshake Protocol,协商SSL/TLS会话参数)、密码套件更改协议(Change Cipher Spec Protocol,发出对密码套件修改的信号)和警报协议(Alert Protocol,报告错误情况或会话状态的变化)。SSL/TLS的组件结构如下:
在SSL/TLS会话中,客户端和服务器之间进行完整握手交换协商协议版本、会话ID、密码套件和压缩方法等参数。握手过程包括客户端和服务器之间的Hello消息、证书交换和密钥交换等,最终双方通过Change Cipher Spec协议切换到新的加密算法,并开始安全的数据交换。尽管握手过程中的信息是明文传输的,但在协议建立后,数据流量是加密传输的。SSL/TLS进行完整握手交换消息过程如下:
本文关注的是服务器端的消息类型,且假定客户端配置的差异可能会影响流量特征,但服务器端的消息可以代表所有网络流量。这种方法可以解决仅观察单向流量时非对称路由导致的问题。同时,本文使用紧凑的消息类型表示法:十进制协议类型,其具体编码如下:
3、马尔可夫链指纹
本文提出了一种基于马尔可夫链的方法,用于建模单向SSL/TLS会话中可能出现的消息类型序列,此处采用一阶齐次马尔可夫链模型。
3.1 马尔可夫链模型
模型采用离散时间随机变量,表示在任意时刻的SSL/TLS消息类型,这些消息类型代表SSL/TLS协议中的不同状态,它们的值构成消息序列。
-
一阶马尔可夫链假设:假设该随机变量是一个一阶马尔可夫链,即当前状态只与前一个状态相关。
-
齐次性假设:即状态转移概率与时间无关。
-
ENPD(进入概率分布):表示进入某状态的概率。
-
EXPD(退出概率分布):表示从某状态退出的概率。
3.2 指纹生成与计算
根据以上定义,此处计算了一个SSL/TLS会话中状态序列出现的概率,表示该会话与应用流的相似度。计算公式为:
这个概率表示给定的SSL/TLS消息序列与应用流模型的接近程度。较大的概率值表示该SSL/TLS会话更符合某一应用流的特征。
3.3 示例分析
通过一些训练数据集中的SSL/TLS会话,展示了不同应用程序的马尔可夫链指纹。每个应用程序具有不同的状态转移和概率分布特征:
-
PayPal:大部分会话从Server Hello消息开始,成功的会话中,客户端会验证服务器,且会话一般由Alert消息结束。 -
Twitter:大多数会话是由以前的会话恢复的,且会话较短,通常以Application Data消息和Alert消息结束。 -
Dropbox:大部分会话不是恢复的,Server Key Exchange消息较为常见。 -
Skype:具有独特的Heartbeat协议状态,且会话中使用的TLS消息相对少,状态转移概率均匀。
3.4 交叉验证
为了验证构建的马尔可夫链模型,使用了4折交叉验证。训练集用于构建模型,测试集则用于验证模型的效果。在验证过程中,应用最大似然准则进行决策,通过计算每个假设下的概率,选择最有可能的应用程序。此处采用经典的最大似然准则,选择数据序列在各个假设下最符合输入数据序列的假设模型:
这里的是每个假设下输入数据序列的可能性,这里的是在每个假设下计算的输入数据序列的概率。
通过马尔可夫链模型对SSL/TLS会话进行建模,能够捕捉到不同应用程序的独特流量特征。通过计算每个会话的指纹并与预先定义的应用模型进行比较,可以高效地识别和区分应用程序。通过交叉验证确保了模型的准确性和鲁棒性。
4、分类与交叉验证结果分析
本文展示了基于四个异构数据集的指纹交叉验证结果:
-
数据集与应用选择:本文使用了四个来自不同校园网络的SSL/TLS加密流量数据集,涵盖了Web、聊天、邮件、VoIP、文件传输等应用的数据。为了保护用户隐私,只分析了TCP负载的SSL/TLS头信息,实际负载部分被丢弃。同时,为了提高分类准确性,选择了可以进行域名解析的应用,并通过流量数量估算了创建可靠指纹所需的最小流量。
-
验证标准与方法:为了建立基准真值(Ground Truth),本文开发了一个域名系统分类器(DNSC)来根据域名提取SSL/TLS应用流。该分类器通过将主机名与签名字符串数组匹配来识别不同的应用程序。交叉验证使用DNSC分类器作为基准,主要通过真阳性率(TPR)和假阳性率(FPR)评估分类性能。TPR表示正确分类,FPR则为错误误分类。
-
交叉验证结果:本文使用Campus1-4数据集交替作为训练集和验证集,通过4折交叉验证,大多数应用指纹的TPR都比较高。但在一些数据集(Campus1和Campus2)上,部分应用验证结果存在较高的FPR。其中,Amazon S3和Dropbox的指纹表现良好,尤其是在最新数据集(Campus3和Campus4)上,指纹识别准确度高。Poczta的指纹在所有数据集上都稳定可靠,而Skype的流量具有独特的指纹特征。尽管大多数应用的指纹都能成功识别,但由于Amazon EC2会生成较高比例的相同转换链,而生成其他链的概率都非常低,因此它的FPR较高。
-
指纹的时间演化:本文还观察了指纹随时间的变化,发现一些应用(如Twitter和Gadu-Gadu)在不同时间段的数据集上存在指纹差异,这主要由SSL/TLS协议的变化引起。Mozilla和mBank也会因版本更新而发生指纹变化。
5、总结
本文提出了一种基于一阶齐次马尔可夫链的加密流量分类方法,通过从训练数据中提取SSL/TLS协议消息序列的统计指纹,实现了对加密应用流量的高精度分类,并能够检测异常SSL/TLS会话。作者通过多个数据集的交叉验证实验,验证了该方法的有效性,并指出应用指纹会随时间演变,需要定期更新以保持分类性能。这一研究为加密流量分析提供了新的视角,也为网络安全、流量管理和应用识别等领域提供了重要的技术支持。
安全学术圈招募队友-ing 有兴趣加入学术圈的请联系 secdr#qq.com
专题最新征文
-
期刊征文 | 暗网抑制前沿进展 (中文核心)
-
期刊征文 | 网络攻击分析与研判 (CCF T2)
-
期刊征文 | 域名安全评估与风险预警 (CCF T2)
原文始发于微信公众号(安全学术圈):罗格斯大学 | 利用马尔可夫链指纹分类加密流量
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论