一种IPv6网络中的HTTPS应用识别方法与流程

文档序号:17375633发布日期:2019-04-12 23:16阅读:1194来源:国知局
一种IPv6网络中的HTTPS应用识别方法与流程

本发明涉及通讯技术领域,具体涉及一种ipv6网络中的https应用识别方法。



背景技术:

目前,国内电信运营商对主干网进行了ipv6改造,全面支持ipv4/ipv6双栈;国内大型互联网公司的主营业务全面支持ipv4/ipv6双栈;预计改造将在2019年年初全面开展,并将在2020年全面完成。从目前的ipv6改造情况来看,ipv6流量将在短时间内爆发。虽然ipv6协议内置ipsec加密协议,实际实现过程中不被采用,因为ipsec是网络层加密,而https是应用层加密,一条https流只需加解密一次,如果一条https流包含10个ip报文,需要加解密10次。因此,在ipv6网络中仍然存在大量的https加密应用流量,对这些加密流量进行分类管理是ipv6网络安全的重中之重。

近年来,随着ipv6、5g、物联网和工业互联网的飞速发展,新型网络应用不断涌现。互联网上各类网络应用在为用户提供便捷服务的同时,也给网络带来了安全隐患,比如网络上传输的用户信息存在被非法监听、劫持、窃取和修改的风险。ssl/tls协议在保证网络安全的大背景下应运而生,ssl/tls协议通过加密技术在客户端和服务器之间建立安全通道,被广泛应用于网上支付、社交等重要网络服务,预计到2020年ssl/tls流量占比将达到80%以上。

当前互联网上ssl/tls加密网络应用越来越多,且越来越复杂,由于传统的基于端口和基于载荷的方法无法对ssl/tls网络应用实现有效的精细化分类。ssl/tls协议在保护网络安全的同时,也隐藏着异常流量,异常流量可以轻松躲过dpi检测。为了在保障网络安全的同时提供更好的服务质量,需要对网络上的各类ssl/tls加密应用进行有效的监管。

由于ssl/tls加密应用的可用信息有限,为了有效识别ssl/tls加密应用,只能以ssl/tls握手过程中消息类型序列特征为基础。鉴于ssl/tls应用之间握手过程的消息类型序列是类似的,无法很好地识别较多的ssl/tls应用。



技术实现要素:

本发明的一个目的是解决至少上述问题,并提供至少后面将说明的优点。

本发明的目的是提供一种ipv6网络中的https应用识别方法,对ssl/tls加密应用分类问题进行处理,将机器学习方法用于ssl/tls加密应用分类,增强网络的可控性和安全性。

具体的,本发明提出一种加权集成分类方法wenc解决现有ssl/tls加密应用识别存在的不足。为了增强应用模型的可区分性,联合考虑握手过程中的消息类型和对应报文大小二维特征建立二阶markov链模型。此外,利用数据传输过程中的应用数据报文大小序列特征建立hmm,并根据相邻报文大小相关性改进发射概率。最后,加权集成分类器提高泛化性能。

为了实现根据本发明的这些目的和其他优点,提供了一种ipv6网络中的https应用识别方法,包括以下步骤:

步骤一、捕获ssl/tls数据包并形成流量样本,将同一个会话的数据包组流,获取流特征;

步骤二、基于ssl/tls流量样本建立二阶markov链模型;

步骤三、基于ssl/tls流量样本建立hmm模型;

步骤四、根据二阶markov链模型和hmm模型构建加权集成分类器;

步骤五、通过加权集成分类器对新到的ssl/tls加密流进行识别分类。

优选的,所述步骤二中,利用ssl/tls交互的消息类型和报文大小形成的二维特征序列建立应用的指纹模型,即二阶markov链模型。

优选的,用xt表示二阶markov链模型,使用前两个状态来估计当前状态:

p(xt=it|xt-1=it-1,xt-2=it-2,...,x1=i1)=p(xt=it|xt-1=it-1,xt-2=it-2)(1)

假设二阶马尔可夫链是齐次的,从时间t-2和t-1转移到时间t是时间不变,则可得到:

p(xt=it|xt-1=it-1,xt-2=it-2)=p(xt=k|xt-1=j,xt-2=i)=pi-j-k(2)

其中,中间状态之间的转移矩阵表示如下:

其中,集合p'={p1,p2,...,pn}表示识别概率,t=t0,t1,...,tn∈t,it∈{1,2,...,s},it是一个联合特征或联合特征序列,消息类型mt和分组长度pt构成所述联合特征<mt,pt>,联合特征表示markov链的状态。

优选的,进入二阶markov链的前两个状态的概率分布enpd为:

q=[q1-1,...,q1-s,q2-1,...,q2-s,...,qs-s](4)

其中qi-j=p(xt+1=j,xt=i);

退出二阶markov链的最后两个状态的概率分布expd为:

w=[w1-1,...,w1-s,w2-1,...,w2-s,...,ws-s](5)

wi-j=p(xt+1=j,xt=i)表示当处于状态i、时间tn结束会话的概率;

ssl/tls会话的概率表示如下:

所得到的概率表示ssl/tls会话的特征序列接近应用模型的程度,值越大表示当前ssl/tls会话越接近对应的应用模型。

优选的,所述步骤三中,所述hmm模型用一个五元组表示:λ=(s,k,a,b,π),其中s为状态集合,k为观察集合,a为转移矩阵,b为观察概率矩阵,π为初始状态分布;

求观测序列o1,o2...ot出现的概率p(o|λ):

其中,o=(o1=o1,...,om=om)是输出的可观察状态,m是序列中的观测数,aij={aij}代表网络操作状态转移的概率矩阵,1≤i,j≤n,n是状态数,aij=p(uj/ui)表示从状态ui转移到uj的概率,1≤i≤n,b={bim}表示在给定时间从网络操作获得的相应adpt输出值的概率,adpt为应用数据包长度,bim=p(vm/ui)表示给定状态ui输出特征值vm的概率,随机生成π={πi,i=1,...n,,}是网络操作状态的初始概率分布,αt(i)=p(o1o2ot,qt=si|λ),βi(t)=p(ot+1...ot|qt=si,λ)。

优选的,给定ssl/tls会话的相应hmm模型为happ,用集合f={f1,f2,...,fl}表示应用的连续l条流,选择adpt特征构建训练模型happ,对于未知流量fi={g1,g2,...gr,...},采用λapp=p2(fi|happ)表示应用被标识为fi的概率。

优选的,所述步骤四中,按照时间顺序将新来的加密流分为一个数据块si,且将每个所述数据块si的大小设置为相同,将每个数据块si构建分类器ci,每个分类器ci的权重与误差成反比。

优选的,构建测试样本,计算测试样本在分类器ci上的识别错误率,并将测试样本在分类器ci上的识别错误率设置为分类器ci的权重。

优选的,测试样本(x,c)的识别错误率在分类器ci上是是分类器ci给出的准确率,x是c类应用的一个实例,分类器ci的均方差是:

假设随机猜测在整个类空间c={所有类}中,y的概率分布p(y)表示x被分类为y的概率,以这种方式分类实例的随机分类器的均方差如下:

对于确定的数据集,mser是固定值,分类器ci的权重wi计算如下:

wi=mser-msei(10)

如果分类器ci识别性能比随机猜测差,则将分类器ci的权重设置为0,使得分类器ci不被用于集成分类器,确保如果错误率较大,权重会更小;

二阶markov链模型和hmm模型集成的结果可以描述为:

其中,hi∈p1、p2。

与现有技术相比,本发明包含的有益效果在于:

1、通过本发明的识别方法有效对ssl/tls加密应用进行识别分类,增强网络的可控性和安全性。

2、本发明识别方法的分类准确率更高。

本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。

附图说明

图1是ssl/tls协议的消息交换示意图;

图2是ssl/tls加密应用分类系统架构示意图;

图3是分类准确率柱状图;

图4是综合评价柱状图。

具体实施方式

下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明文字能够据以实施。

对于网络协议而言,从开始到结束的整个交互过程中,协议在不同的阶段有不同的动作,相应地表现为协议交互过程的不同“状态”,而网络协议的这种有先后顺序的“状态”序列就是网络流时序特征的准确反映。从开始到结束,ssl/tls协议经历着不同的“状态”,并相应地采取不同的操作。“状态”序列就ssl/tls协议的时序特征的准确反映。如图1所示,描述了ssl/tls会话期间客户端和服务器之间的消息交换示例。

客户端和服务器之间的初始clienthello消息包含了客户端产生的随机数、协议版本、密码套件等信息。serverkeyexchange密钥交换包含四个消息:服务器证书,服务器密钥交换,客户端证书和客户端密钥交换。然后,客户端发送更改密码规格changecipherspec,并使用新的算法和密钥对下一个消息进行加密。作为响应,服务器根据新的密码规范发送自己的更改密码规格消息和serverfinishedmessage消息完成ssl/tls协议握手,双方开始交换应用数据。服务器可以使用alert消息终止会话。ssl/tls握手期间大多数信息是明文传输的。ssl握手过程结束后,只有协议类型、记录长度和ssl/tls版本信息不加密,其余均加密传输,以保证双方通信的安全性。

虽然ssl/tls协议是加密协议,但ssl/tls流量的载荷中存在一些固定的格式,给ssl/tls加密应用识别提供了一些信息。ssl协议可以分为两个子层:上层包括ssl握手协议,ssl更改密码规范协议和ssl警报协议;下层是ssl记录协议。ssl记录结构的头部由内容类型、版本和长度组成。为了后续方便描述,根据协议消息类型信息对ssl/tls协议交互进行编码,编码方案如表1所示。

表1ssl/tls协议编码方案

“状态”特征使用明文字段表示,例如,applicationdata为23:,clienthello消息为22:02,因此,根据“状态”特征序列可以建立ssl/tls加密流的应用模型。本发明考虑ssl/tls会话中服务器-客户端的消息类型,将客户端和服务器端分开有助于解决不对称路由问题,只需观察一个方向的流量。根据配置不同,客户端特征略有不同,而服务器端特征在网络中具有代表性。

为了提高应用识别模式的可区分性,引入certificate包长特征结合消息类型序列特征以提高ssl/tls应用的特征多样性。然而,不同应用的certificate报文大小在有些情况下仍然会聚类到同一类中,特别是随着应用的增加。

现有技术中有采用ssl/tls协议交互过程中消息类型序列特征建立的一阶马尔可夫链模型识别ssl/tls加密应用。虽然这些消息类型特征有助于ssl/tls加密应用分类,但在某些情况下可能会失效。首先,这些模型只考虑两个离散的转移状态,这些状态不能完全描述ssl/tls应用之间的可区分性。第二,虽然ssl/tls应用的消息类型序列为状态转移提供了可见的指纹,但来自不同ssl/tls应用的指纹的重叠性可能很高,因此指纹匹配概率高仍可能导致错误分类。其次,基于单个变量,即ssl/tls会话的消息类型的状态表达能力有限,容易导致指纹的低区分度。由于来自不同应用的certificate报文大小可能聚类在一起,所以在最大似然准则下,错误分类是不可避免的。

针对上述问题,首先,考虑到当前状态不仅与先前状态有关,还与先前两个状态相关,引入二阶markov链解决一阶markov链在应用指纹上表现力不足的问题。第二,观察握手过程中分组长度与相应的应用之间的相关性,将消息类型mt和分组长度pt构成联合特征<mt,pt>,提高应用模型中状态的表达能力。第三,采用hmm将应用数据包长度adpt特征引入识别过程。显然,adpt与相应应用的行为是相关的。虽然单独使用adpt特征来识别应用具有不确定性,但可以结合adpt特征用于识别过程。该方法将二阶markov链模型与hmm结合,通过加权集成学习构建高泛化能力的ssl/tls加密应用分类模型。

如图2所示的是基于加权集成学习的ssl/tls应用分类系统的架构,由以下功能模块组成:流量预处理,学习过程和分类过程。流量预处理模块捕获ssl/tls数据包,将同一个会话的数据包组流,然后获取流特征,为构建分类模型做准备。学习过程模块的主要功能是基于ssl/tls流样本建立集成分类模型,根据ssl/tls协议交互的握手过程和数据传输过程分别建立二阶markov链和hmm模型,然后构建加权集成分类器。分类模块就是基于构建的加权集合分类器识别新到的ssl/tls加密流。

根据上述系统,本发明提供了一种ipv6网络中的https应用识别方法,包括以下步骤:

步骤一、捕获ssl/tls数据包并形成流量样本,将同一个会话的数据包组流,获取流特征;

步骤二、基于ssl/tls流量样本建立二阶markov链模型,基于二阶markov链的ssl/tls加密流量识别方法只需要观察服务器到客户端的单向流,并且该方法通过引入一些新特性,增强ssl/tls应用之间的可区分性;利用ssl/tls交互的消息类型和报文大小形成的二维特征序列建立应用的指纹模型,即二阶markov链模型;当网络流si={f1,f2,...,fm}通过应用集合p={p1,p2,...,pn}的“指纹”模型时,依次计算出网络流si被识别为应用p1,p2,...,pn的概率,将最大概率对应的应用确定为该网络流属于的应用。

具体的,用离散型随机变量xt来表示二阶markov链模型,使用前两个状态来估计当前状态:

p(xt=it|xt-1=it-1,xt-2=it-2,...,x1=i1)=p(xt=it|xt-1=it-1,xt-2=it-2)(1)

假设二阶马尔可夫链是齐次的,从时间t-2和t-1转移到时间t是时间不变,则可得到:

p(xt=it|xt-1=it-1,xt-2=it-2)=p(xt=k|xt-1=j,xt-2=i)=pi-j-k(2)

其中,中间状态之间的转移矩阵表示如下:

其中,集合p'={p1,p2,...,pn}表示识别概率,t=t0,t1,...,tn∈t,it∈{1,2,...,s},it是一个联合特征或联合特征序列,消息类型mt和分组长度pt构成所述联合特征<mt,pt>,联合特征表示markov链的状态。

进入二阶markov链的前两个状态的概率分布enpd为:

q=[q1-1,...,q1-s,q2-1,...,q2-s,...,qs-s](4)

其中qi-j=p(xt+1=j,xt=i);

退出二阶markov链的最后两个状态的概率分布expd为:

w=[w1-1,...,w1-s,w2-1,...,w2-s,...,ws-s](5)

wi-j=p(xt+1=j,xt=i)表示当处于状态i、时间tn结束会话的概率;

ssl/tls会话的概率表示如下:

所得到的概率表示ssl/tls会话的特征序列接近应用模型的程度,值越大表示当前ssl/tls会话越接近对应的应用模型。

本发明中,基于联合特征<mt,pt>及其时间相关性建立二阶markov链模型,直接作用于二维变量<mt,pt>,而不需要矢量量化等任何预处理,处理过程更简便快捷。

步骤三、基于ssl/tls流量样本建立hmm模型,所述hmm模型用一个五元组表示:λ=(s,k,a,b,π),其中s为状态集合,k为观察集合,a为转移矩阵,b为观察概率矩阵,π为初始状态分布;

求观测序列o1,o2...ot出现的概率p(o|λ):

p(o|λ)=∑nip(qt=si,o|λ)=∑ni=1αi(t)βi(t)(7)

其中,o=(o1=o1,...,om=om)是输出的可观察状态,m是序列中的观测数,aij={aij}代表网络操作状态转移的概率矩阵,1≤i,j≤n,n是状态数,aij=p(uj/ui)表示从状态ui转移到uj的概率,1≤i≤n,b={bim}表示在给定时间从网络操作获得的相应adpt输出值的概率,adpt为应用数据包长度,bim=p(vm/ui)表示给定状态ui输出特征值vm的概率,vm表示在离散化情况下的adpt特征值,随机生成π={πi,i=1,...,n},是网络操作状态的初始概率分布,αt(i)=p(o1o2ot,qt=si|λ),βi(t)=p(ot+1...ot|qt=si,λ)。

由网络操作状态和adpt特征状态构建hmm模型,给定ssl/tls会话的相应hmm模型为happ,用集合f={f1,f2,...,fl}表示应用的连续l条流,选择adpt特征构建训练模型happ,对于未知流量fi={g1,g2,...gr,...},采用λapp=p2(fi|happ)表示应用被标识为fi的概率。

步骤四、根据二阶markov链模型和hmm模型构建加权集成分类器;具体的,首先按照时间顺序将新来的加密流分为一个数据块si,且将每个所述数据块si的大小设置为相同,将每个数据块si构建分类器ci,每个分类器ci的权重与误差成反比。

构建测试样本,计算测试样本在分类器ci上的识别错误率,并将测试样本在分类器ci上的识别错误率设置为分类器ci的权重。经测试,基于最新训练样本的分类结果接近当前测试样本的分布,因此,可以通过测量测试样本在分类器ci上的识别错误率近似地获得分类器的权重。

具体的,测试样本(x,c)的识别错误率在分类器ci上是是分类器ci给出的准确率,x是c类应用的一个实例,分类器ci的均方差是:

假设随机猜测在整个类空间c={所有类}中,y的概率分布p(y)表示x被分类为y的概率,以这种方式分类实例的随机分类器的均方差如下:

对于确定的数据集,mser是固定值,例如,均匀分布的二类分布,该分类任务的随机猜测的均方差将是0.25。分类器ci的权重wi计算如下:

wi=mser-msei(10)

如果分类器ci识别性能比随机猜测差,则将分类器ci的权重设置为0,使得分类器ci不被用于集成分类器,此设置可确保如果错误率较大,权重会更小;

二阶markov链模型和hmm模型集成的结果可以描述为:

其中,hi∈p1、p2。

由此二阶markov链模型和hmm模型的加权集成分类器。

步骤五、通过加权集成分类器对新到的ssl/tls加密流进行识别分类。

本发明的应用识别方法用wenc算法来体现,wenc算法流程伪代码如表2所示:

表2wenc算法伪代码

该算法分为两部分,第一部分是建立加权集成分类器(行1-6)。行2构建基于不同的特征集的分类器;行3计算hi的分类错误率;行4计算随机分类器的错误率;行5计算wi并确定加权分类器。第二部分描述了分类过程(行7-10),根据最大置信度输出最终分类结果。

本发明方法识别分类准确性的验证过程:

构建数据集:从校园网和internet之间几个选定的边界路由器捕获流量,并对数据预处理,如剔除非ssl/tls加密流量。campus1和campus2数据集来自位于同一校园网中不同站点的两个特定路由器。这两个数据集各收集一周的流量,2016年6月13-19日,campus1数据集包括139035条流,2144631数据包,campus2数据集包括124128条流,2004996数据包。

抓取15种常用的ssl/tls协议下的web应用,包括视频、网络直播、邮件、搜索、网络支付、社交、网络存储和社交网络等。taobao包括支付宝和淘宝网,facebook包括facebook和instagram,google包括谷歌搜索和gmail。如表3描述了每种ssl/tls应用的流数和包数。每种应用至少抓取数千条流,以确保分类模型可以涵盖相应应用的所有特性。

表3ssl/tls加密应用统计信息

构建标准数据集:wenc方法在任何情况下都是普遍有效的,因为它只需要ssl/tls中不可或缺的握手会话信息和adpt特征。为了验证方法的有效性,需要提前准备标准数据集。通过两个步骤标记样本,第一步通过fiddler查找域名,在这个过程中,使用开放的web插件fiddler,用于搜索给定应用相应域名。第二步提取和分析一些特定的字符串,以便确定属于哪个应用的特定流。在评估过程中有限制的选择一些应用,因为该标准数据集构建方法不能适用于我们无法收集其域名签名的应用。如表4描述了特定应用域名中的特定字符串。

表4应用域名中的特定字符串

为了综合评估wenc方法,与以下三种方法进行对比。(1)一阶markov链方法(fom)。(2)二阶马尔可夫链(som),用二阶马尔可夫链代替fom中的一阶markov链。基于二维特征的二阶markov链(tsom),采用<mt,pt>特征代替som中的消息类型。而tfom是采用二维特征的一阶markov链。(3)考虑证书报文大小的二阶markov链方法(socrt),引入证书报文大小增加特征多样性。

为了验证wenc方法的应用指纹有效性,使用两个异构数据集campus1和campus2进行交叉验证。当使用campus1作为训练数据集时,campus2数据集用于验证。同样地,当campus2用作训练数据集时,campus1用于验证。

性能评估

准确率:为了验证wenc的准确性,将其与三种算法(socrt,som和fom)进行对比,如图3所示。采用campus1和campus2数据集相互作为训练和测试数据集进行验证。由于wenc集成了加权分类器的优点,具有更好的适用性和区分能力。3显示wenc算法在分类精度方面优于其他三种方法。此外,指纹方法som和fom的分类效果表现不佳,因为所选指纹的可区分性不足。虽然socrt考虑证书报文大小特征,优于som方法,但改进后的特征区分能力仍然不足。

分类准确率只能综合评价整个数据集的识别精度,查准率和查全率可以有效评价各类的分类情况,查准率、查全率如表5所示,综合评价f-measure如图4所示。

表5查准率和查全率

显然,wenc对每个应用都具有较好的f-measure,由于加权集成分类器具有较强的适用性。尽管wenc方法在大多数情况下对ssl/tls应用分类具有较好的准确性,但仍然存在小概率的错误分类。wenc方法引起误分类由于以下几种原因:(1)不规则的ssl/tls协议实现:许多ssl/tls协议的实现不遵循rfc规范且与常见的ssl/tls协议表现稍有不同。(2)服务器配置:一些ssl/tls协议消息是可选的。ssl/tls服务器的通信参数可以被配置且可能随着时间改变。(3)ssl/tls协议的滥用:ssl/tls隧道被越来越多地用于躲避由网络配置和安全检查的限制,而不是用于执行保障传输安全的ssl/tls应用。然而,与上述情况类似的错误分类概率较低。一般来说,wenc适用于大多数ssl/tls应用识别。

为了验证基于二维特征<mt,pt>与一维特征的二阶markov链的有效性,将tsom与som方法进行比较,并将二维特征的一阶markov链tfom与二阶markov链tsom进行对比,校园1作为训练集和校园2作为测试集,结果如表6所示。

表6二维特性的影响

由于二维特征的可区分性强,基于二维特征的tsom和tfom方法的精度明显优于一维特征方法som和fom。与som相比,tsom在各个应用上表现都更好,精度提高约20%,因为二维特征提高了应用的可区分性。与tfom比较,tsom几乎在各个应用上都表现更好,准确率提高约4%,因为二阶markov链可以更好地描绘ssl/tls会话的状态转移。

由上所述,通过本发明的识别方法有效对ssl/tls加密应用进行识别分类,增强网络的可控性和安全性,同时,本发明识别方法的分类准确率更高。

尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易的实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1