针对压缩流量的多字符串匹配方法组成比例

技术编号:16431551 阅读:70 留言:0更新日期:2017-10-22 07:19
本发明专利技术公开一种针对压缩流量的多字符串匹配方法,核心部件是压缩流量字符串匹配引擎,它使用待匹配字符串进行构建,对压缩流量字节内容进行扫描、匹配,输出匹配结果;该引擎包括解码、匹配和字符串匹配自动机三个模块,以及处理过程所需的数据,即状态记录模块;本发明专利技术技术方案对压缩流量具有较高的多字符串匹配吞吐率,便于使用,且具有较好的扩展性。

Multi string matching method for compressed traffic

The invention discloses a method for multi string compression flow matching method, the core part is the compression flow string matching engine, which uses the matching string construction, scanning, matching of compression flow byte content, the output matching results; the engine includes decoding, matching and string matching automaton of three modules, and the process required the data, namely state record module; the technical scheme of the invention has high compression rate multi string matching throughput, easy to use, and has good scalability.

【技术实现步骤摘要】
针对压缩流量的多字符串匹配方法
本专利技术属于网络
,涉及压缩流量的多模式匹配方法。
技术介绍
随着压缩技术在网络流量中的广泛应用,越来越多的Web服务器将HTTP页面内容压缩后发送给浏览器。文献[1]指出2010年7月AlexaTop1000的站点中有66%使用了HTTP压缩,而2016年10月的Top500站点中,该比例已增长为95%[2]。然而,许多基于深度包检测(DeepPacketInspection,DPI)的工具通常采用多模式匹配的方式,识别流量中的特征,例如入侵检测系统(IntrusionDetectionSystem,IDS)、入侵防御系统(IntrusionPreventionSystem,IPS)和防火墙等。这些工具面对压缩流量,通常有以下三种做法:(1)Lazy:对于压缩的数据,直接丢弃,不进行处理。然而由于越来越多的流量使用压缩技术,致使采用该方式的工具放弃太多的内容,难以有效地进行DPI。(2)Naive:也就是先将压缩流量进行完全解压,之后再对解压后的数据进行模式匹配。该方法技术成熟,实现简单,但是解压过程中对内存和CPU的需求无疑会成为整个匹配过程中的性能瓶颈。(3)Patch:通过修改客户端的请求,告知服务端自身不接收压缩数据,从而强制服务端发送原始数据。这种方式相较于Naive来说,避免了流量解压过程的开销。但是破坏了客户端与服务端之间通信数据的完整性;而且使用未压缩的流量,也抛弃了HTTP设计压缩流量的初衷,不能减少对网络带宽的使用。目前,有许多关于多模式匹配的相关专利,如文献[3,4,5,6],但它们均没有涉及针对压缩流量的多模式匹配。一些针对HTTP压缩流量进行DPI的工作,其中,ACCH[7,8]是较为完善的一种,它通过先解压流量,之后利用解压过程中所保存的信息,在匹配过程跳过部分扫描字符,以加速模式匹配的过程。ACCH实验结果表明:与Naive方式相比较,在多模式匹配算法性能上能够得到有效提升。然而,它没有充分利用HTTP压缩数据格式的特征,以至于压缩内容中出现完整匹配字符串之时,需要重复扫描。而且,算法需要人为指定部分参数,致使处理过程较为繁杂。为进一步说明本专利技术的具体内容,首先对专利技术所涉及的技术和定义的名词进行介绍:A)gzip/DEFLATEgzip是HTTP1.1推荐的一种常用的内容编码方法,其中,根据AleaxTop500列表获取的449个页面中,428个使用压缩编码的页面均采用gzip作为其编码方法。而DEFLATE则是gzip所使用的压缩方法,它基于LZ77和哈夫曼编码分别实现压缩和编码。图1显示的是gzip压缩过程示意图,原始文本为两行表示网页URL的字符串,经过LZ77压缩,将第二行中的“https://www.”编码为<12,25>。表示该压缩内容长度为12字节,可由当前位置向前偏移25字节(包括换行符)处拷贝得到。在这里,称<长度,距离>对,即<12,25>为编码字符串;称第一行中的“https://www.”为参考字符串,二者的位置关系示意图如图2所示。经LZ77压缩后的数据,包含原始文本和编码内容,之后使用哈夫曼编码方法对其编码,生成gzip所使用的DEFLATE数据格式。由于哈夫曼编码长度不等,且不全是8的倍数,因此DEFLATE数据为连续的位流,并且不会以字节为编码边界。这也是上文所说的Naive方法必须在解压之后才能进行字符串匹配的原因。B)多模式匹配按照所支持匹配模式的个数进行划分,模式匹配算法可以分为单模式匹配和多模式匹配算法两大类。当模式为字符串之时,也就分为单字符串匹配和多字符串匹配算法。对于单字符串匹配算法,例如KMP算法等,在文字处理、文件系统搜索等领域得到了广泛应用。而基于深度包检测的工具,通常采用多字符串匹配算法,以同时匹配多条规则。经典的多字符串匹配算法有AhoCorasick算法、WuManber算法和Piranha算法等。其中,AhoCorasick算法则是使用较为广泛的入侵检测系统Snort中的字符串匹配引擎算法。该算法在匹配前对字符串集合进行预处理,转换成树型有限自动机,然后只需对文本字符串进行一次扫描就可找出所有字符串,其时间复杂度是O(n)。[1]Afek,Yehuda,A.Bremler-Barr,andY.Koral."Spaceefficientdeeppacketinspectionofcompressedwebtraffic."ComputerCommunications35.7(2012):810-819.[2]AlexaTop500GlobalSites,Oct.2016.http://www.alexa.com/topsites.[3]北京理工大学.一种多字符串匹配方法[P].中国专利:CN201010232463.2,2010.12.01.[4]北京哲安科技有限公司.一种多字符串匹配方法和芯片[P].中国专利:CN200710099389.X,2007.10.10.[5]东北大学.基于后缀自动机正则引擎构造的深度包检测方法[P].中国专利:CN201310159057.1,2013.08.21.[6]北京启明星辰信息技术有限公司.一种自适应多模式匹配方法及系统[P].中国专利:CN200610089420.7,2006.11.29.[7]Bremler-Barr,A,andY.Koral."AcceleratingMulti-patternMatchingonCompressedHTTPTraffic."IEEE/ACMTransactionsonNetworking20.3(2009):970-983.[8]AnatBremler-Barr,YaronKoral,VictorZigdon.Multi-patternmatchingincompressedcommunicationtraffic[P].美国专利:US8458354B2,2013.06.04。
技术实现思路
为解决上述问题,本专利技术目的在于提出一种针对压缩流量的多字符串匹配方法,该方法通过对匹配过程中压缩内容与待匹配字符串之间的位置关系进行归类,以跳过扫描压缩流量中部分字节的方式,提升对压缩流量进行多字符串匹配时的吞吐率,并且无需任何用户指定的参数,使用方便,且具有较好的扩展性。为达到上述目的,本专利技术采用了以下技术方案:针对压缩流量的多字符串匹配方法,核心部件是压缩流量字符串匹配引擎,其包括解码模块、匹配模块和字符串匹配自动机)三个处理模块,以及处理过程所需的状态记录模块;解码模块对采用gzip或DEFLATE方法压缩的内容进行哈夫曼解码,解码使得不以字节为边界的原始压缩流量,变为以字节为边界的字符内容和编码字符串;匹配模块使用字符串匹配自动机直接扫描解码后的字符内容,对编码字符串则进行分类处理;字符串匹配自动机,使用现有的多字符串匹配算法,包括但不限于AhoCorasick算法,通过算法构建匹配自动机,以扫描文本字符串,输出结果;状态记录模块,保存该引擎工作过程所使用的状态、参数信息;压缩流量字符串匹配引擎使用待匹配字符串构建字符串匹配自动机,之后对压缩本文档来自技高网
...
针对压缩流量的多字符串匹配方法

【技术保护点】
针对压缩流量的多字符串匹配方法,其特征在于:核心部件是压缩流量字符串匹配引擎(101),其包括解码模块(1011)、匹配模块(1012)和字符串匹配自动机(1013)三个处理模块,以及处理过程所需的状态记录模块(1014);解码模块(1011)对采用gzip或DEFLATE方法压缩的内容进行哈夫曼解码,解码使得不以字节为边界的原始压缩流量(102),变为以字节为边界的字符内容和编码字符串;匹配模块(1012)使用字符串匹配自动机(1013)直接扫描解码后的字符内容,对编码字符串则进行分类处理;字符串匹配自动机(1013),使用现有的多字符串匹配算法,包括但不限于Aho Corasick算法,通过算法构建匹配自动机,以扫描文本字符串,输出结果;状态记录模块(1014),保存该引擎工作过程所使用的状态、参数信息;压缩流量字符串匹配引擎(101)使用待匹配字符串(103)构建字符串匹配自动机(1013),之后对压缩流量(102)字节内容进行扫描、匹配,输出匹配结果(104)。

【技术特征摘要】
1.针对压缩流量的多字符串匹配方法,其特征在于:核心部件是压缩流量字符串匹配引擎(101),其包括解码模块(1011)、匹配模块(1012)和字符串匹配自动机(1013)三个处理模块,以及处理过程所需的状态记录模块(1014);解码模块(1011)对采用gzip或DEFLATE方法压缩的内容进行哈夫曼解码,解码使得不以字节为边界的原始压缩流量(102),变为以字节为边界的字符内容和编码字符串;匹配模块(1012)使用字符串匹配自动机(1013)直接扫描解码后的字符内容,对编码字符串则进行分类处理;字符串匹配自动机(1013),使用现有的多字符串匹配算法,包括但不限于AhoCorasick算法,通过算法构建匹配自动机,以扫描文本字符串,输出结果;状态记录模块(1014),保存该引擎工作过程所使用的状态、参数信息;压缩流量字符串匹配引擎(101)使用待匹配字符串(103)构建字符串匹配自动机(1013),之后对压缩流量(102)字节内容进行扫描、匹配,输出匹配结果(104)。2.根据权利要求1所述的针对压缩流量的多字符串匹配方法,其特征在于:匹配模块(1012)对编码字符串则进行分类处理,依据待匹配字符串(103)与编码字符串之间的位置关系,将编码字符串分为三种类别进行处理,分类规则为:前缀:待匹配字符串起始于编码字符串之前,而不限结束于何处;包含:待匹配字符串完全处于编码字符...

【专利技术属性】
技术研发人员:胡成臣孙秀文李昊
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1