Tor匿名通信流量应用分类的方法

文档序号:7810394阅读:830来源:国知局
Tor匿名通信流量应用分类的方法
【专利摘要】一种Tor匿名通信流量应用分类的方法,主要解决Tor匿名通信流量中上层应用类型信息获取的问题,涉及到特征选择、样本预处理以及流量建模等相关技术。该方法首先利用Tor的数据包调度机制,定义流突发段概念,并以流突发段的体积值和方向作为分类特征。然后基于K-均值聚类算法和多序列比对算法对数据样本进行预处理,通过数值符号化和插入空隙的方式来解决数据样本过拟合和长度不一致问题。最后,使用Profile隐马尔科夫模型对不同应用的上行和下行Tor匿名通信流量分别进行建模,提出一种启发式算法快速建立Profile隐马尔可夫模型。在具体分类时,将待分类网络流量的特征代入不同应用的Profile隐马尔可夫模型中,分别计算出上行和下行流量模型对应的概率,并以最大联合概率值来决定待分类的Tor匿名通信流量所包含的上层应用类型。
【专利说明】
Tor匿名通信流量应用分类的方法

【技术领域】
[0001]本发明是一种Tor匿名通信流量应用分类方法,利用了特征选择、样本预处理以及流量建模等相关技术,涉及网络安全特别是匿名通信和流量分析研究领域。

【背景技术】
[0002]随着Internet以及移动互联网的迅猛发展和广泛使用,网络已融入人们日常生活的方方面面。与此同时,网络通信所带来的安全与隐私问题也受到了越来越多的关注。为保护网络用户的隐私信息,研究人员设计了多种匿名通信方案如洋葱路由协议等,并在此基础上开发了一些实用匿名通信系统,如Tor、JAP、I2P等。但匿名通信系统的广泛使用也给网络监管带来了巨大挑战。用户可借助匿名通信系统突破现有的网络访问控制策略以获取非法网络资源、泄露机密信息以及实施匿名攻击等。由于匿名通信流量均为加密流量,为实现对其的有效监管,有必要对匿名通信流量的识别与分析技术展开深入研究。一方面可以有效地规范用户的网络行为,打击并阻止基于匿名通信系统进行的网络犯罪;另一方面随着匿名通信流量识别与分析技术的研究深入,可以揭示现有匿名通信协议和匿名通信系统实现上存在的漏洞,从而能够设计更完善的匿名通信协议以及其系统实现,为网络用户提供更好的隐私保护。
[0003]匿名通信技术是由Chaum于1981年首次提出,该技术通过在发送者和接收者的通信路径上插入一个或多个中间节点(Mix节点)来实现用户身份和通信关系的隐藏。用户在发送数据时,首先确定转发路径上Mix节点和接收者的地址信息,然后利用转发路径上各Mix节点的公钥对数据和地址信息进行层层加密,形成“洋葱包”,并将该“洋葱包”发送至转发路径上的第一个Mix节点。收到“洋葱包”后,该Mix节点对其进行解密操作以获得下一跳地址,并将解密后的“洋葱包”发送至下一跳节点,其它节点依次操作直至最后将原始数据转发至接收者。返回数据时则按对应的相反顺序进行,接收者将数据返回至与其直接相连的Mix节点(即转发路径上的最后一个Mix节点),然后路径上各Mix节点利用自己的私钥对数据进行层层加密并反方向转发,并最终由用户执行多次解密操作得出通信内容。
[0004]匿名通信系统的滥用给网络安全带来巨大威胁。例如德国政府在2007年陆续逮捕了多名Tor出口节点的提供者,而实际上这些Tor出口节点的提供者是非法浏览色情信息等此类网络犯罪的替罪羊。当匿名犯罪分子利用Tor网络获取儿童色情信息时,对应的网络流量将首先被发送到Tor出口节点,再由这些出口节点将相关数据经Tor网络转发给匿名罪犯。依据网络流量的IP地址信息仅能追查到这些Tor出口节点,而真正的网络罪犯却无法得知。此外,僵尸网络(Botnet)已开始使用Tor匿名通信网络来隐藏命令与控制(C&C)服务器,各Bot节点通过Tor与C&C服务器进行通信,隐藏了 C&C服务器的真实身份和Bot节点之间的关联性,使得对僵尸网络的检测更加困难。更为严重的是,一些流行的网络攻击工具,如针对Web服务器的DoS攻击工具torshammer、SQL注入攻击工具sqlmap等已提供配置选项使得攻击流量经过Tor匿名网络转发从而躲避检测和追踪。原本用于保护用户隐私信息的匿名通信系统正被攻击者滥用,给网络安全带来巨大威胁。因此,为阻止匿名网络犯罪和维护网络安全,有必要对Tor匿名通信流量中包含的上层应用类型进行分类,从而能够确定匿名用户的网络行为。
[0005]目前Tor匿名通信流量应用分类研究以提升Tor网络的整体性能为目标,因而应用分类工作是由Tor节点根据其可观察到的协议层信息完成,而并非在网络流中提取特征来进行应用分类。


【发明内容】

[0006]技术问题:应用分类的目标是获取匿名通信流量中隐藏的上层应用类型,即对于匿名通信流f,攻击者需确定其中包含的上层应用的类型T1, T2,, Tn,从而能够推断出目标用户Alice正进行哪项匿名网络活动,如匿名Web浏览、匿名P2P下载等。具体地,匿名通信流量的应用分类问题可表述如下:对于所有可能的应用类型T1, T2,, Tn,如何将匿名通信流f映射至其中的一类或几类?针对上述技术问题,本发明根据Tor的数据包调度机制,定义网络流突发段,并以段体积值和方向为分类特征,提出一种基于Profile隐马尔科夫模型(Profile HMM)的应用分类方法,并使用样本预处理技术对样本数据进行预先处理,便于最终模型的建立。
[0007]技术方案:
[0008]为解决上述技术问题,本发明在深入分析Tor匿名通信系统实现机制的基础上,提出了一种Tor匿名通信流量应用分类方法。该分类方法具体如下:
[0009]一种Tor匿名通信流量应用分类方法,包括步骤:
[0010]l)Tor匿名通信流量应用分类特征的获取:
[0011]2)样本数据预处理:
[0012]3) Tor匿名通信流量的流量模型建立:
[0013]4)联合不同模型计算出的概率值进行分类。
[0014]所述步骤I)中将网络流中相反方向报文间的数据长度大于O (即不包括报文头部字段)的连续报文定义为流突发段,并将流突发段体积值(Segment Volume)定义为段中所有报文长度的总和,突发段的方向定义为段中报文的方向,即入流方向或出流方向。特征选择为流突发段的体积值和方向。
[0015]所述步骤2)中,使用K-均值聚类算法将流突发段体积值进行聚类,并根据聚类的有效性确定最终的聚类数量,然后进行数值符号化。同时,使用多序列比对算法对符合化后的样本数据进行处理,通过插入空隙的方式使得样本数据长度保持一致,实现模型建立的通用性。
[0016]所述步骤3)中,使用启发式方法建立Tor匿名通信流量的Profile隐马尔可夫模型。如果一列中字母出现的数量超过一半,则为Match状态,否则为Insert状态。而Delete状态则由Match状态对应的列中的空位决定,空位越多,则表示从前一个状态转移到此Delete状态的概率越大。设Match状态共有N个字母和空位,其中空位数量为n,则前一个状态转移到Delete状态的概率为(n+l)/(N+l)。同时,转移概率计算为状态i转移到状态j的次数除以状态i转移的总次数,输出概率计算为第i个Match状态输出字符a的次数除以该状态输出的所有字符的总数量。
[0017]所述步骤4)中,使用单个参数α联合上行和下行流量模型产生的概率,且α值位于O和I之间。根据最大联合概率值来决定Tor匿名通信流量所包含的上层应用类型信肩、O
[0018]本发明针对Tor匿名通信流量应用分类问题,利用Tor的数据包调度机制,定义流突发段概念,并以流突发段的体积值和方向作为分类特征;基于K-均值聚类算法和多序列比对算法对数据样本进行预处理,通过数值符号化和插入空隙的方式来解决数据样本过拟合和长度不一致问题;使用Profile隐马尔科夫模型对不同应用的上行和下行Tor匿名通信流量分别进行建模,提出一种启发式算法快速建立Profile隐马尔可夫模型。
[0019]有益效果:本发明具有分类效果好,运行速度快,额外的网络负荷少(只需被动观察网络流量)等特点,能够在大规模网络环境下有效地实现Tor匿名通信流量的应用分类。

【专利附图】

【附图说明】
[0020]图1为本发明所述的Tor匿名通信系统架构图;
[0021]图2为本发明所述的Tor匿名节点的数据调度策略图;
[0022]图3为本发明中Profile隐马尔科夫模型示意图;
[0023]图4为本发明的具体实施流程图。

【具体实施方式】
[0024]本方法主要解决Tor匿名通信流量中上层应用类型信息获取的问题,涉及到特征选择、样本预处理以及流量建模等相关技术。本方法首先利用Tor的数据包调度机制,定义流突发段概念,并以流突发段的体积值和方向作为分类特征。然后基于K-均值聚类算法和多序列比对算法对数据样本进行预处理,通过数值符号化和插入空隙的方式来解决数据样本过拟合和长度不一致问题。最后,使用Profile隐马尔科夫模型对不同应用的上行和下行Tor匿名通信流量分别进行建模,提出一种启发式算法快速建立Profile隐马尔可夫模型。在具体分类时,将待分类网络流量的特征代入不同应用的Profile隐马尔可夫模型中,分别计算出上行和下行流量模型对应的概率,并以最大联合概率值来决定待分类的Tor匿名通信流量所包含的上层应用类型。
[0025]下面结合附图对本发明再作进一步详细的说明。
[0026]UTor匿名通信流量应用分类特征的获取
[0027]Tor匿名通信系统利用Iibevent事件实现输入缓冲区和输出缓冲区中数据的处理调度,可表示为隐式的轮询(Round Robin)调度。当Tor节点从TLS/Socks接口接收到信元数据后,将其存入相对应的输入缓冲区中(Input Buffer)。对于存在输入缓冲区中的信元,根据链路方向的不同,Tor采用轮询调度策略对其进行解密或加密处理。
[0028]轮询调度策略具体描述为:首先处理第一个输入缓冲区中的信元,处理完一定数量的信元后,接着处理第二个输入缓冲区中的信元,以此类推,直至最后一个输入缓冲区。然后再从第一个输入缓冲区开始,如此循环反复。对于输入缓冲区中的信元,处理完毕后,再存入相对应的输出缓冲区(Output Buffer)中。对于输出缓冲区队列,与输入缓冲区队列类似,Tor同样采用轮询策略来进行调度,将不同缓冲区中的信元通过TLS/Socks接口发送至网络。
[0029]根据Tor匿名通信系统的调度策略,本发明定义流突发段(FBS,Flow BurstSegmentat1n)为位于相反方向报文间的数据长度大于0 (不包括报文头部字段)的连续报文。设cl, c2, si, s2, s3, s4, c3, c4为客户端与服务器之间的交互报文且报文长度大于0,其中,ci代表客户端发出的报文,Si为服务器端返回的响应报文,i为自然数。根据上述流突发段的定义,{01,(:2}、{81,82,83,84}和{c3,c4}为三个不同流突发段。自然的,可将流突发段体积值(Segment Volume)定义为段中所有报文长度的总和,突发段的方向定义为段中报文的方向,即入流方向或出流方向。
[0030]2、样本数据预处理
[0031]本发明采用K-均值聚类算法对流突发段的体积值进行符号化,即将数值转化为字母符号,从而缩减流突发段体积值的取值范围,增加所建模型的通用性。
[0032]样本符号化的具体过程:(如表I所示)
[0033]首先确定合适的聚类数量kf。将聚类数量k从2递增至26,计算各类中距离intrak和类间距离interk,然后计算有效性vk = intrak/interk,并以最小Vk值所对应的k作为聚类数量,使得建立的流量模型具有较好泛化性。
[0034]确定聚类数量kf后,对于所有类型的应用,首先对其训练阶段采集的所有流突发段体积值进行K-均值聚类,然后对每一类中的数值都用同一字母表示。(例如,对于类1,其中的数值范围是16至676,则该段范围内的数值统一用字母A表示。)完成聚类后,对所有训练样本进行符号化,确定每一体积值所在的类,然后用该类对应的符号来替换数值,得到符号化后的特征向量(形如<A, A, B, B, D,C,C,...>)。
[0035]本发明采用多序列比对算法对特征向量进行比对,使同一类型应用的不同特征向量长度相同。
[0036]多序列比对算法的基本方法可表述为:通过加入空位(Gap)来使得特征向量长度相同,同时使得加入的空位数量最少,即代价最小。由于序列精确匹配需要大量的计算时间和内存空间,因此本发明主要考虑基于序列长度的渐进比对算法,其渐进比对由以下三个步骤完成:
[0037]步骤1:通过序列的两两比对,计算出每对序列间的距离,进而得到距离矩阵。序列的两两比对由动态规划算法完成,用迭代方法计算出两个序列的相似分值,存于一个得分矩阵中,然后根据这个得分矩阵,回溯寻找最优的比对序列。
[0038]步骤2:根据距离矩阵计算向导树。在这一步,根据步骤I中获得的距离矩阵,构建向导树(Guide Tree)。向导树表示的是后续多序列比对中每一对比对序列的顺序。
[0039]步骤3:沿着向导树中分枝的顺序,渐进比对新加入的序列。在此步骤中,同样通过渐进对比完成多序列的比对。根据向导树从叶子节点到根节点的顺序,对序列进行比对,首先比对关系最为接近的序列对,然后逐渐再将临近的序列引入并不断重新构建比对,直到所有序列都被加入为止。
[0040]与步骤I类似,序列间的比对仍然通过动态规划算法完成,但特别的是,在步骤3中会存在序列与组(Profile)以及组与组之间的比对。所有的序列根据距离被分为许多组,需要对不同组进行比对从而完成最终的序列比对。
[0041]表I是样本数据符号化的算法伪代码:
[0042] 算法样本数据符号化算法
输入:数值形式的样本数据输出:符号形式的样本数据
1:令S表示流突发段体积值,A表示聚类数量
2:for k=2 to 26
3: 对所有样本进行K-均值聚类,并产生k个聚类,标记类q的中心为Z,.4' 计算类间的平均距离为=,聚类中心点之间的距离计算为
N /二I SeC
inte。讀叫丨卜-?丨厂)
5: 计算有效性 VfintmiJinierk
6: end for
7: 选择具有最小&的聚类数量kf作为最终的聚类数量 8: fbr/=I,..., kf
9; 确定对第j个类对应的符号 10: end for 11: for i=.I η
12: 对第i个样本进行符号化 13: end for
[0043]3、Tor匿名通信流量的流量模型建立
[0044]Profile隐马尔可夫模型由Match、Insert、Delete三种状态组成。为确定Match、Insert、Delete状态,首先对学习样本进行排列,每一特征向量为一行,形成样本矩阵。值得注意的是此时的特征向量已经过样本预处理,由字母和空位(用短横线表示)组成,且长度是相同的。考察矩阵的每一列,每一列即对应Profile HMM模型中的一个Match或Insert状态。本发明采用如下启发式方法来确定每一列对应的具体的状态:如果该列中字母出现的数量超过一半,则为Match状态,否则为Insert状态。Delete状态则由Match状态对应的列中的空位决定。
[0045]确定Match、Insert和Delete状态后,还需要计算状态之间的转移概率以及Match状态的输出概率。由于Delete状态不产生输出,因而无需计算对应的输出概率,而Insert状态的输出为随机输出,其可观察字符集包括样本中所有出现的字符,且输出概率为等概率分布,即对于所有的可观察字符,其产生的概率均为1/C,C为字符集合大小。
[0046]为计算状态间的转移概率以及Match状态的输出概率,需首先统计状态间的转移次数和Match状态对应的列种各字符出现的数量。转移概率计算为状态i转移到状态j的次数除以状态i转移的总次数,输出概率计算为第i个Match状态输出字符a的次数除以该状态输出的所有字符的总数量。
[0047]4、联合不同模型计算出的概率值进行分类
[0048]应用分类流程为:
[0049]步骤1:从流f中提取入和出两个方向上的流突发段体积值,得到特征向量V1和VE。
[0050]步骤2:根据在训练阶段得到的聚类信息,对V1和Ve进行符号化。记符号化后的特征向量分别为S1和Se。
[0051]步骤3:对每一个Profile隐马尔可夫模型,计算SI由模纪产生的概率。记概率为 P;,P1i = Pr(57 \M;), i=\,…,N。
[0052]步骤4:与步骤3类似,对每一个Profile隐马尔可夫模型W 斤算Se由模型Mf
产生的概率。记概率为pfi=l,…,N。
[0053]步骤5:计算联合概率
[0054]Pi = ap\ + (1- Gr)μ.', ? = 1.....N.
[0055]其中,O ( α ( 1,用于调节入流和出流对分类的不同贡献以达到最优的分类结果O
[0056]步骤6:选择值最大的联合概率
[0057]pm = argmax {p1; p2,..., pN}
[0058]则流f的应用类型即确定为训练集中的第m个应用类型。
[0059]本发明还可有其他多种实施方式,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1.一种Tor匿名通信流量应用分类的方法,其特征是包括步骤: 1)利用Tor的数据包调度机制,定义流突发段概念,并以流突发段的体积值和方向作为分类特征; 2)基于K-均值聚类算法和多序列比对算法对分类特征的数据样本进行预处理,通过数值符号化和插入空隙的方式来解决数据样本过拟合和长度不一致问题;经过数据样本预处理,数值已经符号化,是由字母和空位组成,且长度是相同的; 3)使用Profile隐马尔科夫模型对不同应用的上行和下行Tor匿名通信流量分别进行建模; 4)最后,将待分类网络流量的特征代入不同应用的Profile隐马尔可夫模型中,分别计算出上行和下行流量模型对应的概率,并以最大联合概率值来决定待分类的Tor匿名通信流量所包含的上层应用类型; 所述步骤3)中,使用启发式方法建立Tor匿名通信流量的Profile隐马尔可夫模型,方法如下: Tor匿名通信流量的Profile隐马尔可夫模型由Match、Insert、Delete三种状态组成;为确定Match、Insert、Delete状态,首先对学习样本进行排列,分类特征的每一特征向量为一行,构成样本矩阵; 考察样本矩阵的每一列,每一列即对应Profile隐马尔可夫模型中的一个Match或Insert状态;确定每一列对应的具体的状态的方法为:如果该列中字母出现的数量超过一半,则为Match状态,如果该列中字母出现的数量没有超过一半,为Insert状态;Delete状态则由Match状态对应的列中的空位决定,空位越多,则表示从前一个状态转移到此Delete状态的概率越大; 由于Delete状态不产生输出,因而无需计算其对应的输出概率,而Insert状态的输出为随机输出,其可观察字符集包括样本中所有出现的字符,且输出概率为等概率分布,即对于所有的可观察字符,其产生的概率均为1/C,C为字符集合大小;所以确定Match、Insert和Delete状态后,仅计算状态间的转移概率以及Match状态的输出概率,方法为: 首先统计状态间的转移次数和Match状态对应的列中各字符出现的数量; 转移概率计算为:状态i转移到状态j的次数除以状态i转移的总次数; 输出概率计算为:第i个Match状态输出字符a的次数除以该状态输出的所有字符的总数量。
2.根据权利要求1所述的Tor匿名通信流量应用分类的方法,其特征是所述步骤I)中,将网络流中相反方向报文间的数据长度大于O即不包括报文头部字段的连续报文定义为流突发段,并将流突发段的体积值定义为该流突发段中所有报文长度的总和,流突发段的方向定义为流突发段中报文的方向,即入流方向或出流方向;分类特征选择为流突发段的体积值和方向。
3.根据权利要求2所述的Tor匿名通信流量应用分类的方法,其特征是所述步骤I)中, Tor匿名通信系统利用Iibevent事件实现输入缓冲区和输出缓冲区中数据的处理调度,表示为隐式的轮询调度;当Tor节点从TLS/Socks接口接收到信元数据后,将其存入相对应的输入缓冲区中;对于存在输入缓冲区中的信元,Tor采用轮询调度策略对其进行解密或加密处理; 轮询调度策略的方法为: 首先处理第一个输入缓冲区中的信元,处理完一定数量的信元后,接着处理第二个输入缓冲区中的信元,以此类推,直至最后一个输入缓冲区;然后再返回第一个输入缓冲区处理,如此循环反复; 对于输入缓冲区中的信元,处理完毕后,再存入相对应的输出缓冲区中;对于输出缓冲区队列,与输入缓冲区队列类似,Tor同样采用轮询策略来进行调度,将不同缓冲区中的信元通过TLS/Socks接口发送至网络; 对于流突发段,设Cl,c2, si, s2, s3, s4, c3, c4为客户端与服务器之间的交互报文且报文长度大于0,其中,ci代表客户端发出的报文,Si为服务器端返回的响应报文,i为自然数;则{cl, c2}、{si, s2, s3, s4}和{c3,c4}为三个不同流突发段;则将流突发段体积值定义为段中所有报文长度的总和,突发段的方向定义为段中报文的方向,即入流方向或出流方向。
4.根据权利要求1所述的Tor匿名通信流量应用分类的方法,其特征是所述步骤2)中,采用K-均值聚类算法对流突发段的体积值进行符号化,即将数值转化为字母符号,样本的符号化过程包括: 首先确定合适的聚类数量kf:将聚类数量k从2递增至26,计算各类中距离intrak和类间距离interk,然后计算有效性vk = intrak/interk,并以最小Vk值所对应的k作为聚类数量; 确定聚类数量kf后,对于所有类型的应用,首先对其训练阶段采集的所有流突发段体积值进行K-均值聚类,然后对每一类中的数值都用同一字母表示;完成聚类后,对所有训练样本进行符号化,确定每一体积值所在的类,然后用该类对应的符号来替换数值,得到符号化后的分类特征的特征向量; 采用多序列比对算法对特征向量进行比对,使同一类型应用的不同特征向量的长度相同,具体采用基于序列长度的渐进比对算法,其渐进比对由以下三个步骤完成: a:通过序列的两两比对,计算出每对序列间的距离,进而得到距离矩阵;序列的两两比对由动态规划算法完成,用迭代方法计算出两个序列的相似分值,存于一个得分矩阵中,然后根据这个得分矩阵,回溯寻找最优的比对序列; b:根据步骤a中获得的距离矩阵,构建向导树,向导树表示的是后续多序列比对中每一对比对序列的顺序; c:沿着向导树中分枝的顺序,渐进比对新加入的序列;在此步骤中,通过渐进对比完成多序列的比对;根据向导树从叶子节点到根节点的顺序,对序列进行比对,首先比对关系最为接近的序列对,然后逐渐再将临近的序列引入并不断重新构建比对,直到所有序列都被加入为止;与步骤a类似,序列间的比对仍然通过动态规划算法完成,但特别的是,本步骤c中会存在序列与组以及组与组之间的比对;所有的序列根据距离被分为许多组,需要对不同组进行比对从而完成最终的序列比对。
5.根据权利要求1所述的Tor匿名通信流量应用分类的方法,其特征是所述步骤4)中,应用分类流程为: .4.1:从流f中提取下行和上行两个方向上的流突发段体积值,得到特征向量分别记为V1和 Ve ; .4.2:根据在训练阶段得到的聚类信息,对V1和Ve进行符号化;记符号化后的特征向量分别为S1和Se ; . 4.3:下行方向上的流突发段的体积值的向量对应的Profile隐马尔可夫模型为;对每一个模型M;,计算S1由模型M/产生的概率,记概率力,P1i = VriS1 |M/), i=l,…,N' .4.4:上行方向上的流突发段的体积值的向量对应的Profile隐马尔可夫模型为Mf ;对每一个模型M 计算Se由模型产生的概率,记概率为P,, =Pr(&|Mf), .4.5:计算联合概率 P = a p..+.(1.....cc) p' , / = 1.....N.其中,OS a ^ I, α用于调节入流和出流对分类的不同贡献,以达到最优的分类结果; .4.6:选择值最大的联合概率 Pm = argmax {ρ1; P2,…,ρΝ} 则流f的应用类型即确定为训练集中的第m个应用类型。
【文档编号】H04L29/06GK104135385SQ201410370944
【公开日】2014年11月5日 申请日期:2014年7月30日 优先权日:2014年7月30日
【发明者】蒋平, 许勇, 赵琛, 史明文, 汪兆斌 申请人:南京市公安局
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1