[发明专利]基于两级存储的正则表达式匹配方法有效
申请号: | 201310207309.3 | 申请日: | 2013-05-30 |
公开(公告)号: | CN103312627A | 公开(公告)日: | 2013-09-18 |
发明(设计)人: | 陈曙晖;徐成成;唐勇;赵国鸿;陈一骄;孙一品 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | H04L12/883 | 分类号: | H04L12/883;H04L12/955;H04L29/06 |
代理公司: | 湖南兆弘专利事务所 43008 | 代理人: | 周长清 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 两级 存储 正则 表达式 匹配 方法 | ||
技术领域
本发明主要涉及到网络安全领域,特指一种基于两级存储的正则表达式匹配方法。
背景技术
传统的报文检测只检查报文头部,通过提取地址、端口号等信息,对报文的协议及特征进行分析。随着网络的发展,应用和攻击的特征更多地隐藏在报文负载中,因此需要对报文负载进行深度检测。检测的方法是使用预定义的规则对流级报文负载进行匹配,正则表达式表达能力强、表达方式灵活,已成为描述规则的主要工具。
匹配之前,首先要将正则表达式编译成有限状态自动机(FSM,finite state automata),然后将状态表配置到存储器中,每处理报文的一个字节,都需要进行查表操作,以获取下一步要转移到的状态。传统上有两种类型的FSM:确定性有限自动机(DFA,deterministic finite automata)和非确定性有限自动机(NFA,nondeterministic finite automata)。NFA的优点是空间复杂度低,因为NFA的状态数与正则表达式的长度成线性有关系。但是NFA可能同时有多个活跃状态,每处理一个字符可能需要多次访存,因此效率较低。而DFA处理一个字符只需要访存一次,匹配效率很高。但若将每条规则编译成单独的DFA,其时间复杂度会随规则数的增加而线性提高;而将所有规则编译成一个DFA时,可能会发生状态爆炸,导致内存需求大大增加,有时甚至无法编译成完整的自动机。因此在实用中必须降低处理一个字符所需要的时间复杂度或者对DFA的内存需求进行压缩。NFA的时间复杂度由其理论模型决定,在不改变系统结构的情况下很难对其改进。因此很多研究集中于对DFA的内存需求进行压缩。
随着网络应用的扩展,规则数越来越多,编译的DFA规模也越来越大。尽管将m条规则编译成一个自动机的时间复杂度只有O(1),但是大量状态存储在低速存储器中使其仍无法满足目前的带宽需求。另一方面,目前因特网的链路速率正每年40%到50%的速率继续增长。而正则表达式匹配中内存需求和匹配性能是一对相互制约的因素,内存和性能的矛盾将进一步加剧。目前的研究主要集中于性能的提升和内存需求的压缩。
为了打破正则表达式匹配引擎的性能瓶颈,很多研究人员研究了通过获得高效内容匹配来提高整体的吞吐量,主要是利用高速存储器件的并行能力来提高匹配性能,如使用FPGA,GPU或者TCAM来获得高效的内容匹配。上述研究中,FPGA的方法往往使用NFA存储状态表,而TCAM和GPU都是使用特定的器件来提高并行匹配的能力。上述方法中,只有GPU和FPGA方法可达到10G以上的性能,其他方法的性能都在10Gbps以下。而FPGA由于其特征升级能力及表达式可扩展问题,在网络安全设备中无法采用。GPU则由于其平台支持性,没有较好的办法解决输入输出问题,另外GPU匹配无法解决状态爆炸问题而导致的实用性比较差。
在压缩内存需求方面,Becchi提出合并状态进行压缩的方法,通过在输入输出的转换边上引入标记来合并不相等的状态。陈曙晖提出合并字符进行压缩的方法,在正则表达式转换成DFA之前,对输入符号进行集合交割的预编码,通过压缩输入,减少输入符号的种类,从而压缩状态表的空间。Kumar提出减少转换边进行压缩的方法D2FA,不断地将DFA的多条转换边用一条缺省转换边来代替,对状态表的压缩率可达到95%。杨毅夫提出通过簇分割,将DFA分割成三个部分存入三个矩阵中,并分别对三个矩阵进行压缩。
以上所有降低存储空间的方法本质上都是以时间换空间。无论是引入缺省边、合并状态、压缩输入字符,还是使用额外的结果辅助记录匹配过程,本质上都是通过增加计算量或访存的次数来减少内存空间的使用。随着网络带宽的高速增长,这种以性能换空间的策略发展空间会越来越小。
正则表达式匹配中内存需求和匹配性能是相互制约的因素。随着网络应用的日益丰富,更多的规则会加入到网络设备中,状态机的规模也会指数增长,价格昂贵的高速存储器已经远远无法满足大规模状态机制存储需求。即使使用较为成熟的压缩技术,也无法解决存储问题,因为状态机制规模是指数增长的,而内存压缩只能是线性的。大规模的状态表只能存储在大容量的低速存储器中,吞吐量严重受限于低速存储器的访存时延。而另一方面,近年来网络带宽急速提高,10G比特的网络已经广泛部署于园区中,骨干网络的流量达数十吉或上百吉。安全设备中的内存需求和性能要求的矛盾进一步加剧,单一地只关注性能或内存无法根本解决问题。
现有的匹配技术存在的不足:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310207309.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:体温监测便捷婴儿服
- 下一篇:智能变电站压力测试装置及方法