一篇有方校长署名的一篇综述文章“网络流量分类研究进展与展望”,其中介绍了流量分类面临的挑战与技术手段,部分内容似乎与最近封锁OpenVPN有关:

4.2 加密流量分类

随着网络资源和带宽的逐渐完善,用户更注意保护隐私,加密应用被广泛使用,加密流分类成为流量 分类中的挑战性问题之一。

传统的基于熟知端口号的流分类方法在大多应用 端口随机可变和端口共用情况下已经失效,而基于有 效负载的流分类方法对加密流量也束手无策,并且存 在隐私侵犯的问题,耗费资源较大。

2006年以来,在流量分类领域,对加密流的分类 问题成为一个重要的研究方面,大多数研究都采用了 基于流特征的统计识别方法。目前研究的加密流量主 要包括四类典型流量:SSH隧道、IPSEC隧道、SSL, 以及P2P的加密流量。其中,对于SSH的研究较多, 主要侧重于对SSH隧道中的应用进行有效的分类识 别,使用的方法基本都是基于流特征的识别,主要使 用机器学习的方法,例如朴素贝叶斯、C4.5决策树、 SVM、k-means、k-nearest neighbor等算法,还有 基于高斯混合模型(Gaussian mixture models)、 隐马尔可夫模型(hidden Markov model, HMM)和 最大似然分类等,另外还有使用基于主机行为的分类 方法[37],主要基于协议连接模型,通过源IP、目的 IP和连接特征等特征值来识别,但这种方法自身具有 一定局限性,且不容易达到高精确度,因此研究者一 般较少使用。

对于SSL和SSH流量的分类通常分为两步[38][39], 第一步根据协议自身特性(如协议首部特定字节的特 征或密钥交换特征等)识别出SSL或SSH流量,第二步 对加密隧道中的不同应用数据流进行分类。Dusi[40] 等人使用高斯混合模型(GMM)和支持向量机(SVM) 技术,对运行在SSH隧道中的应用(假设同一时刻SSH 隧道中只有一种应用)进行分类(包括HTTP、POP3、 POP3S、EMULE、unknown)。实验选取包长度和数据 包方向(服务器到客户端或客户端到服务器)作为特 征值,结果显示两种分类方法对POP3和POP3S类的应 用识别效果最好,真正率均超过了98%,GMM对HTTP应 用的识别准确率高于SVM,对EMULE的识别准确率则低 于SVM。

一些研究者对多种分类方法进行比较,并通过 实验提取出用于识别加密流量的一般性流特征。2007 年,Alshammari[41]等人使用了两种有监督的机器学习 算法AdaBoost和PIPPER识别网络中的SSH流量,并进一 步对SSH应用类型(如ssh,scp,sftp,tunnel等)进

行分类,通过两种方法的对比,PIPPER的分类效果要 优于AdaBoost,其准确率达到99%,假正率为0.7%。 实验同时说明了,通过基于流统计特征的方法,而不 使用IP地址、端口、有效载荷等信息对SSH流量进行 精确识别是可行的。之后,Alshammari[42]等人又对以 SSH和Skype为代表的加密流量进行了进一步的研究, 并使用五种机器学习算法(AdaBoost、SVM、朴素贝叶 斯、RIPPER、C4.5决策树)进行对比,对比结果显示 基于C4.5决策树的分类器的分类效果最好。

单独的一种分类方法通常在某方面有优势,但 不可避免的在另一方面存在劣势,为了获得更好的 分类效果,一些研究者使用了一种或多种分类方法 结合的技术进行研究。Bar-Yanai[43]等人提出了一种 实时的加密流量分类方法,将k-means和k-nearest neighbor两种分类器相结合,使用17个流特征,分析 每个流的前100个包的统计信息,并进行分类。传统 的k-nearest neighbor分类算法分类准确率高,但分 类速度慢,而k-means算法则相反。实验将两种分类 器相结合,分类速度快、分类准确率高,比使用单独 一种分类算法的效果要好很多。

SSH隧道下可承载很多类型的应用,虽然识别隧 道应用的存在并不困难,但要识别出隧道中的具体应 用类型就有很大挑战。Tan[44]等人提出了一种利用最 大似然分类器对SSH隧道中的应用进行分类的方法, 该方法首先需要识别出SSH Tunnel流的建立边界,然 后丢弃该边界之前的数据包,只需要分析该边界之后 的连续L个数据包的统计信息,对SSH隧道中的HTTP、 POP3、FTP、SMTP四种类型的应用进行分类,分类的 真正率为90%左右。

为了提供更好的网络服务质量,需要及时识别出 网络中的延迟敏感应用(如VoIP、音视频等),并为 其提供高优先级。这些应用通常使用非标准端口号, 并且其数据被加密,或者被放入加密隧道中执行。 Yildirim[45]等人以包长作为特征值,采用了机器学习 的方法对IPSec隧道中的VoIP和非VoIP流量进行了分 类,并通过对比实验证实了及时识别出VoIP应用并给 予其高优先级对于提高QoS的重要性。

对P2P应用(如BT、Emule、Skype等)进行分类 的挑战主要集中于数据加密和混淆协议,目前使用较 多的方法是基于流特征的统计识别方法,也有一些研 究使用了有效负载和流特征相结合的方法,他们使 用的有效负载往往是一个连接的前几个包的靠前数 据,也是用于统计特征,而不是直接把某个特定字节

串作为分类依据。Hjelmvik[46]等人全面展示了利用 统计分析和统计协议识别(statistical protocol identification, SPID)算法对混淆协议进行分类 的有效性,并通过实验总结出了对一些特定模糊协 议(包括BT的MSE、eDonkey的模糊协议、Skype、 Spotify)进行分类的最有效统计属性。

总的说来,加密流量分类是流量分类中最具挑战 性的问题之一,目前的主要研究思路主要集中在各种 行为特征提取及统计分析的方法上。我们认为,基于 主机行为的关联分类方法,辅以主动验证等其它的技 术手段,也是较好的研究思路之一。