首页> 中国专利> 基于时频分析的Skype语音流提取方法

基于时频分析的Skype语音流提取方法

摘要

本发明公开了一种基于时频分析的Skype语音流提取方法:从频率角度对包大小和包到达时间间隔做小波变换,以此提取Skype语音流的实验结果,不会受网络环境的影响而改变,具有一定的稳定性;针对Skype语音通信模型,对Skype的随机性进行解密,既降低了算法的复杂度,又能准确区分Skype与非Skype流;运用贝叶斯分类器,针对Skype的VoIP特点,能有效区分Skype语音流和Skype文件传输等非语音流,提高了算法的准确度。

著录项

  • 公开/公告号CN102833255A

    专利类型发明专利

  • 公开/公告日2012-12-19

    原文格式PDF

  • 申请/专利权人 电子科技大学;

    申请/专利号CN201210316839.7

  • 发明设计人 于富财;苏薇;蒋晴;胡光岷;

    申请日2012-08-31

  • 分类号

  • 代理机构成都行之专利代理事务所(普通合伙);

  • 代理人温利平

  • 地址 611731 四川省成都市高新区(西区)西源大道2006号

  • 入库时间 2023-12-18 07:46:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-16

    未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20150527 终止日期:20180831 申请日:20120831

    专利权的终止

  • 2015-05-27

    授权

    授权

  • 2013-02-06

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20120831

    实质审查的生效

  • 2012-12-19

    公开

    公开

说明书

技术领域

本发明涉及一种基于时频分析的Skype语音流提取方法。

背景技术

计算机对等网络P2P,作为目前改变现有Internet应用模式的主要技术之一,成为新一代互联网技术研究的热点问题。基于第三代P2P技术,Skype以其优质的语音质量和低廉的通话费用吸引着越来越多的用户。它的出现给传统的VoIP业务带来了巨大的冲击,其潜在颠覆性影响不容忽视。因此,准确描述Skype流量特征、构建相应的流量模型不仅可以提供有效的QoS调度策略,也对Skype应用的流量管理和控制提供依据。

早期研究的几种传统识别P2P流量的方法有:(1)IP地址识别,可以判断出集中式P2P中的目录服务器以及混合式P2P中的超级节点;(2)TCP/UDP端口识别,可以分类出采用固定端口的P2P应用,但是现有很多P2P软件使用了基于动态端口,如Skype;(3)数据包深度检测,由于P2P软件引入了动态端口,只能通过扫描高层协议来探知P2P数据包,虽然该方法对某些P2P软件的识别准确度很高,但是却无法识别加密的P2P数据流;(4)基于会话的分类,TCP/UDP端口存在于任何一个数据包中,而高层协议的特征代码却只能存在于一个会话包的头几个数据报中,因此,当在一个会话包的第一个数据报中发现包含有P2P的特征代码时,便可判断为P2P数据报,但无法判断是哪种P2P应用;(5)流统计状态和静荷统计特征的识别,在IP层通过统计流量特征的方式可以识别P2P流,P2P流具有长时间固定连接的特点,因此理论上基于流状态的统计识别方式可以识别所有大规模的P2P流量,但是此方法无法精确判断出该IP数据流所采用的P2P协议类型。

这些传统方法对基于P2P的Skype而言,检测其流量的效果并不理想。这是因为Skype使用了高强度的加密算法和专用通信协议系统。面对这种技术挑战,许多网络专家都希望找到一种实时、有效地识别其流量的方法。通过深入研究Skype通信机制及信令特点,以达到提高网络管理和防止其可能造成的网络安全,网络性能等各方面问题的目的。

首先,文献“Traffic identification and overlay measurement of Skype”(Procof IEEE International Conference on Computational Intelligence and Security.Guangzhou,China,2006:1043-1048)通过分析Skype使用的通讯协议及其重要功能进行全面的解析,指出在呼叫建立阶段采用TCP协议;语音传输阶段则多采用UDP协议,并给出了部分Skype协议的静态载荷特征码。

在此基础上,文献“Silver needle in the Skype”(Black Hat Europe'06.Amsterdam,The Netherlands,2006,1:25-47)分析了Skype报文在应用层的协议特征字和端口的某些规律,揭示了Skype不仅可以通过UDP和TCP进行通信而且通信端口不固定,指出其登陆过程可以分为UDP探测、TCP握手和TCP认证三个部分,分析了各个过程中存在的应用层特征字,提出了一种根据Skype用户和超级节点连接的特征字和报文长度、顺序来识别Skype的方法。

文献“Analysis and signature of Skype VoIP session traffic”([TechnicalReport:NGNI-SKYPE-06b]2006)研究了使用UDP的Skype报文结构,发现部分未加密的功能字段的特征,这为准确识别基于UDP的Skype流量提供了一种可能。虽然Skype在语音传输上首选是UDP协议,但是当UDP受限时,Skype还是会选择TCP协议,该方法对TCP协议的Skype流没有识别作用,这是局限所在。

文献“Skype security evaluation”(CA USA:AnagramLaboratorie,ALR-2005-031,2005)提出了一种独特的模型来量化VoIP用户满意度,其中使用了两阶段过滤方法来识别Skype VoIP会话,即先用一种启发式算法过滤出可能的Skype流量并存储在磁盘,再用离线识别算法提取Skype通信流量,该离线方法计算复杂度较高。

从Skype流量识别的方法演进过程可以看到,虽然Skype运用了私有协议和加密传输,但我们仍然能够找到一些Skype流的特征,把这些特征作为切入点,便可以准确识别出Skype流。对于Skype流的特征提取,前面已经介绍了很多提取出的各种Skype流的特征,但由于各种局限性导致了效果并不明显。目前比较显著的Skype流特征主要集中在Skype数据包大小、数据包到达时间间隔以及数据包比率等的统计特征,并结合P2P的数据流特征,如流的源/目的端口号、流大小以及流持续时间。

与本发明相关的现有技术包括:

在对Skype的特征分析的研究中,发现虽然Skype使用专用的通信协议并用高强度手段加密负载,但是仍然可以找到一些Skype特有的性质。

Dario Bonfglio等人在文献“Revealing Skype Traffic:When RandomnessPlays with You”(presented at SIGCOMM'07,Kyoto,Japan.,2007)通过对Skype语音信号的建立模型的研究,发现语音源先通过语音编码器将语音的PCM(脉冲编码调制)样值编码成少量的比特(帧),在帧被创建好之前会加入一些头部,存档器和加密功能是通过一些算法对数据进行压缩和加密,最后帧在被发送出去之前在其头部会加上未加密的开始信息特殊字段SoM。

他们利用未加密的开始信息特殊字段SoM,提出了一种Chi-Square分类器,此方法是首次被提出运用在流量识别领域。Chi-Square分类器主要通过分析信息包帧结构,而不是从语音特点的角度去识别。当TCP协议被用作传输层的协议时,整个Skype信息的内容都是加密的,所以信息比特都是随机分布的。当传输层使用UDP协议时,信息的一些固定部分是随机分布的,而其他部分的信息展现了确定数据的统计特性。基于这个特征就可以通过Skype客户端从其他的语音信号中分离出Skype信息。

此方法思路简单、计算复杂度低。局限性在于:Chi-Square分类器并没有从语音流的特点来识别,导致了将Skype的信令流,以及文件传输流等误判为Skype的语音流。

为了弥补上述方法带来的问题,该文献还提出了另外一种基于朴素贝叶斯分类器的算法。该算法主要针对语音编码特有的特性,根据数据包长度和数据包平均到达时间间隔,结合开发者的语音编码进行分离。

该算法对每条流进行分窗处理,考虑一段窗口中ω个数据包,然后对数据包大小x=[s1,s2,…,sω],这里si是窗口中ω个信息第i个数据包的长度,做可信度分析,可信度公式:

>BS(C)=1wΣi=1wlogP(si|C)>

结合考虑数据包平均到达时间间隔,对每个窗口中的第一个数据包到第ω个数据包的时间间隔估计为1/ω总时间的倍数。即y=[τ]=[(tω-t1)/ω],得到数据包平均到达时间间隔的可信度:

Bτ(C)=log P(τ|C)

最后对每个窗口中的可信度进行比较得到可信度较小值,与统计得到的Skype流的阈值进行比较,从而判定是否为Skype流。

算法可以有效地排除掉Chi-Square分离器误判的信令流和文件传输流等Skype的非语音流。但是由于贝叶斯分离器没有考虑Skype的P2P特征,很多非P2P的流可能导致了贝叶斯分离器的误判率,并且从实验分析的Skype语音流发现,包大小和包平均到达时间间隔在开始的前1000个包并不满足贝叶斯分类器的判定规则,因为前面有很多信令包,从而影响判定结果。

从上述文献中受到启发,发现Skype数据包大小呈现一定平稳性,包大小在一个非常小的范围内波动,并且发现Skype数据包到达时间间隔也有一定的稳定性。于是阅读了Ingrid Daubechies关于小波处理的文章“Ten Lectures onWavelets”(Copyright 1992 by the Society for Industrial Applied Mathematics),发现对Skype的这一特点确实可以用小波处理,得到直观的频域信息来有效区分Skype流。从数学中的函数逼近角度来看,小波本质上可以看成为在某个函数空间内的函数按照小波基函数展开与逼近,与三角基函数构成的傅里叶变换相比,小波基函数具有快速衰减、充分光滑、能量主要集中在一个局部区域的特性。因此,我们可以利用小波分析理论对信号实施时频分析,由于同时具有时间和频率的局部特性以及多分辨分析特性,使得该方法对非平稳信号和平稳信号具有良好的区分度。

信息熵能有效地表现出同一属性上对应数据的集中和分散情况,熵是热力学中微观状态多样性或均匀性的一种度量,反映了系统微观状态的分布几率,信息源可视为一组随机事件的集合,该集合所具有的随机性、不确定度与热力学中微观态的混乱度是类同的,将热力学几率扩展到系统各个信息源信号出现的几率就形成了信息熵。信息熵是信息论中用于度量信息量的一个概念,一个系统越有序,信息熵越低;反之,一个系统越混乱,信息熵越高。用信息熵来描述网络流量的表征信息,可以对网络流量进行分类。

综上所述,对Skype流的未加密开始信息特殊字段的检测属于启发式方法,而贝叶斯分类器的对深层数据分析属于精确匹配方法。

现有的对Skype流量识别的方法研究大多集中在协议分析、会话建立过程分析、负载分析或是流量分析上,这些分析结果虽然能够帮助识别Skype流,但是其过程复杂,识别准确率低。而且现有方法大多较为片面,没有完全考虑Skype同时作为P2P应用和VoIP应用所具有的多重特征。

针对这些现有的识别方法中存在的准确性不高、效率低的问题,目前较行之有效的方法是数据挖掘技术。数据挖掘技术就是从大量的、不完全的、有噪音的实际应用数据中提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程,简而言之就是一类深层次的数据分析方法。比如,对Skype的数据包特征和数据流特征进行提取,数据包特征主要统计单个流内数据包大小、数据包到达的间隔时间、数据包比率(单位时间内传输数据包的个数)等。数据流特征主要包括流的源/目的端口号、流大小、流持续时间以及标志位(FIN,SYN,RST,PUSH,ACK,URG)被设置的TCP数据包数目等等。

发明内容

为了克服现有技术的上述缺点,本发明提供了一种基于时频特性和随机特性的Skype语音流提取方法:对频域特征的提取,主要是用基于小波变换的频域特征提取方法,根据P2P应用节点的上行流量与下行流量基本对称的特征,以及Skype的数据包特征,对Skype的包大小和包到达时间间隔进行小波变换得到频域下的小波参数值,以此来提取Skype流;对时域特征的提取,主要是运用贝叶斯分离器对Skype语音流的包大小和包到达时间间隔的可信度进行分析,以此对Skype流识别;另外,根据Skype加密技术使得应用层数据全部或部分具有随机性的特征,而采用x2统计算法对已识别出的P2P流中的Skype流进行提取,该算法思想新颖且复杂度低,对Skype流的识别有相当高的准确度。本发明提出的从时域和频域角度出发,结合Skype数据传输的随机性特点,可以准确提取出Skype语音流。

本发明解决其技术问题所采用的技术方案是:一种基于时频分析的Skype语音流提取方法,包括如下步骤:

步骤一、流分类:

对每个到达网络链路的数据包按照五元组原则进行流分类,若该五元组与已有记录的流的五元组不一致,则创建新的流;若该五元组的流已经存在,并且没有判断结果,则进入步骤二;

步骤二、频域特征的提取:

(1)对每条流上的数据包大小做小波变换;

(2)对每条流上的包到达时间间隔做小波变换;

步骤三、采用x2统计算法对步骤二识别出的P2P流中的Skype流进行提取;

步骤四、时域特征的提取:求得Skype语音流的数据包大小和数据包平均到达时间间隔的可信度,根据贝叶斯分离器得到最后的判断结果。

与现有技术相比,本发明的积极效果是:从频域分析、时域分析、随机性分析三个角度,对Skype语音流进行了全面解析,能有效提取网络流量中的Skype语音流,具体表现如下:

(1)从频率角度对包大小和包到达时间间隔做小波变换,以此提取Skype语音流的实验结果,不会受网络环境的影响而改变,具有一定的稳定性。

(2)针对Skype语音通信模型,对Skype的随机性进行解密,既降低了算法的复杂度,又能准确区分Skype与非Skype流。

(3)运用贝叶斯分类器,针对Skype的VoIP特点,能有效区分Skype语音流和Skype文件传输等非语音流,提高了算法的准确度。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1是本发明方法的流程图。

具体实施方式

一种基于时频分析的Skype语音流提取方法,如图1所示,包括如下步骤:

步骤一、流分类

首先对每个到达网络链路的数据包按照五元组原则{源IP地址,目的IP地址,源端口号,目的端口号,传输层协议}进行流分类,若该五元组与已有记录的流的五元组不一致,则创建新的流;若该五元组的流已经存在,并且没有判断结果,则进入步骤二。

步骤二、频域特征的提取

对每条流上的数据包大小和数据包到达时间间隔做小波变换,得到不同尺度下的一系列小波系数。小波变换的基本思想是用一组小波函数或者基函数表示一个函数或者信号,以此进行小波多分辨分析,即把流信号的数据分割成不同频率的成分,然后再用分解的方法去研究对应尺度下的信号频域特征。

关于小波函数的选取,本文采用Haar小波,其小波函数和尺度函数如下:

>φ(t)=10<t<10else>

由上公式可知,Haar小波频域衰减速度为o(1/|ω|),且时间局部化能力较强。根据数据量大小,分解的层次会增加,本文分解层次为5。多分辨分析得到的小波分解系数分为三个部分:低频、中频和高频部分。低频部分即尺度分量,中低频部分包含了3,4,5层的细节分量,有着大量对识别有用的信息;高频部分包含了1,2层的细节分量,这部分主要是噪音,对识别没有太多的作用。

(1)对每条流上的数据包大小做小波变换

将流上的每个信息包大小作为离散小波变换函数的输入信号signal,根据系数求解公式:

>Detail[i]=(signal[2*i]-signal[2*i+1])/2>

>Approx[i]=(signal[2*i]+signal[2*i+1])/2>

此处的Detail[i]是第i层的小波细节系数,Approx[i]是第i层的小波尺度系数。只需要知道最后一层的小波尺度系数Approx,和每层的小波细节系数Detail,便可以恢复原始信号,因此我们只分析第五层的小波尺度系数,和每层的小波细节系数。以此作为小波输入参数input,求得该信号流上小波尺度系数和细节系数的最小值min_packet_size,最大值max_packet_size,均值mean_packet_size和方差var_packet_size。根据对每层系数的统计值,为凸显Skype流的数据包大小的平稳性,我们选择中频的第三层的小波变换系数作为参考值。

通过统计各种信号流的特征发现,Skype流的数据包大小的小波方差在10~30范围内波动,而非Skype流的小波方差高达上百,这一明显特征可以作为我们提取Skype流的有力依据。

(2)对每条流上的包到达时间间隔做小波变换

为了使得小波变换理论分析具有较强的说服力,也为了防止部分非Skype流满足包大小的变化范围,我们发现Skype流的数据包到达时间间隔也可以通过小波变换加以区分。思路同上,将每条流上的数据包到达时间间隔作为离散小波变换函数的输入信号signal,得到第i层的小波细节系数,和第i层的小波尺度系数,通过计算数据包到达时间间隔的小波方差值来分离Skype流。

通过统计各种信号流的特征发现,Skype流的数据包到达时间间隔的小波方差在0~1范围内波动,而非Skype流的小波方差远远大于1。

本步骤针对P2P应用节点的上行流量与下行流量基本对称的特征,以及Skype的数据包特征,可以有效排除非P2P应用流。

步骤三、采用x2统计算法对步骤二识别出的P2P流中的Skype流进行提取

频域特征提取后排除了大部分非P2P应用流,通过对Skype语音信号建立模型的研究,发现Skype头部信息中的未加密的开始信息特殊字段。根据此特征字段运用Chi-Square分类器对Skype进行分类。

研究发现Skype流承载有两种不同模式传输VoIP应用数据:一种是端到端方式(end to end,E2E),两个端点之间传输VoIP数据;另外一种是端到电话方式(end to phone,E2O),端节点到传统PSTN电话之间传输VoIP数据。我们可以用x2来判断要分析的信号是否满足Skype信息的格式。在识别的过程中主要分为以下几类:

(1)运用UDP协议传输的E2E:其干扰信号,即负载的第三个字节是透明的,其它信号是加密的,相应的比特出现是随机的。

(2)运用UDP协议传输的E2O:其前四个字节均是透明的,其余字节全是加密的。

(3)运用TCP传输的Skype流:整个信息都是加密的,和前面两种情况不同的是它的整个信息出现全是随机的。

在实验中,对于每个属于这个流的信息包,将每个信息包的前G×b比特的数据流进行分析,即将每个信息包的前G×b比特分G个组,每个组有b比特。对于每个数据块g=1,…,G,变量表征第g个数据块中值i出现的次数。在流的末端,估计每个组的x2的值。

>χg2=Σi=02b-1(Oig-Ei)2Ei>

为了检测第g组是随机、混合还是透明的,假定x2分布是从平均分布中获得的。在这种情况下,对于所有可能的值i,Ei=n/2b,其中n为流中所有值的数量。然后用一些门限值和得出的值比较,门限值分别设置为分别代表随机、混合和透明。

表一、Skype的开始信息特征

从表1中可以看出,只需要对头部信息的前四个字节进行分析,所以可以选择b=4,G=16。根据下面标准来区分Skype:

(1)E2E/UDP

这里g≠5、6是E2E的随机部分,这个标准的依据是随机部分和均匀分布很类似,导致随机部分的x2分布的值较小。另外,g=5、6是E2E的混合部分,包括一些透明部分,故得出的x2值较大。

(2)E2O/UDP

>ming=1,...,8(χg2)>χ32>且>ming=9,...,16(χg2)>χ12>

这里g=1,…,8是E2O的透明部分,故得到的x2值较大,其他部分是E2O的随机部分,得到的x2值较小。

(3)E2E/TCP、E2O/TCP

>ming=1,...,16(χg2)>χ12>

对于TCP流,无论是E2E还是E2O,其数据流均是随机的,故其x2值很小。

本步骤思路简单、计算复杂度低。

步骤四、时域特征的提取

通过频域特征的提取,可以排除掉大部分非P2P应用流,但是无法确切的知道哪条流是Skype,而Chi-Square分类器专门针对Skype应用进行特征提取,但并没有从语音流的特点来进行判断,导致了将Skype的信令流,以及文件传输流等误判为Skype的语音流。针对这一问题,我们结合时域下的分析,运用贝叶斯分类器从VoIP特点着手进行流分类。

贝叶斯分离器起源于贝叶斯理论。假设观察一个对象,这个对象可以用一系列特征标量来描述,许多不同的标量被集合到一起,称为向量。如果用向量x=[xi]代表许多不同的向量,其中xi是特征X第i个观察值。现在要量化P{C|x}的值,其中对象是属于类C的,且x是属于集合X。贝叶斯分离器技术依赖于知道先验概率P{x|C}能够推导出后验概率P{C|x}。

>P{C|x}=P{C,x}P{x}=P{C,x}P{x}P{C}P{C}=P{x|C}P{x}P{C}>

贝叶斯分类器假设对象的所有特征xi是独立的,则有:

>P{x|C}=ΠiP{xi|C}>

通常不是计算P{C|x}的值,因为想得到的是属于类C的概率,也就是最大似然概率准则,P{x|C}的值可以作为Skype流识别的判断依据:P{x|C}的值越大,那么就可以说明属于类C的可能性越大。对Skype的语音通信系统本质进行分析,得知Skype客户端产生一个持续几十秒的低速率的流量,这些流是由多个数据包组成,数据包的大小依赖于编码速率和成帧时间ΔT。而其余的一些数据流具有很高的突发性,并且数据包的大小会更大一些,故可以以此来区分Skype流。

根据对数据包的分析,发现Skype语音流上的第1000个数据包之后,包大小和包平均到达时间间隔满足以下分析:

(1)数据包大小

指的是信息被封装在传输层协议中的长度。具体的说,就是考虑一段窗口中ω个信息,检测它们中的每一个信息包长度。这样有x=[s1,s2,…,sω],这里si是窗口中ω个信息第i个信息数据包的长度。信息长度对编解码方式有很强的依赖性,表2给出了每种编解码器的一些参数,可以作为贝叶斯分类器的提取特征参数。

表2、Skype的编解码器参数

由于流上的数据包大小属于离散信号,根据最大似然函数可以得到数据包大小的可信度:

>BS(C)=1ωΣi=1ωlogf(si|C)>

(2)数据包平均到达时间间隔

指的是从第一个数据包到第ω个数据包的每一个时间间隔估计为1/ω总时间的倍数。平均数据包到达时间间隔不依赖于编解码方式,平均数据包到达时间间隔的可信度为:

>Bτ(C)=logf(τ|C),>

根据贝叶斯分类器的原理,通过包大小的可信度和包到达时间间隔的可信度得到最后的判断结果。

本步骤针对语音流特点对信号流进行提取,故能够得到Skype的语音流。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号