[发明专利]基于AC自动机和后缀树的字符串匹配方法无效
申请号: | 201210488427.1 | 申请日: | 2012-11-26 |
公开(公告)号: | CN103023883A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 陈新明;李军 | 申请(专利权)人: | 清华大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;G06F17/30 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 100084 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 ac 自动机 后缀 字符串 匹配 方法 | ||
技术领域
本发明涉及网络过滤和监控技术领域,特别涉及一种基于AC自动机和后缀树的字符串匹配方法。
背景技术
随着网络安全要求的不断提高,入侵检测、防病毒、内容过滤等功能正越来越多地应用于网络安全设备中。而字符串匹配算法则是支撑这些功能的核心算法,也决定了网络安全设备的性能。目前最广泛应用于网络安全设备的字符串匹配算法是Aho-Corasick(AC)自动机算法,AC算法是一种基于自动机原理的字符串匹配算法,如图1所示,其基本工作原理为:首先将特征字符串(如病毒特征库、过滤关键字等)编译成自动机,从状态0开始,逐字读入待匹配内容,每次读入一个字符(例如a)时,检查当前状态是否有对应字符的跳转箭头,若有,则跳到此跳转对应的下一状态,若没有,则跳回到状态0。有一些状态被标记为匹配状态,如果进入这个状态代表匹配成功。
针对特征字符串可能分散于多个数据包的情况,目前业界普遍采用的是缓存数据包和重组数据包之后再进行字符串匹配,从而提升了网络安全设备的内存使用量。
然而缓存数据包和重组数据包存在以下缺点:首先,缓存数据包会使网络延迟变大;其次,在千兆级以上的高速网络中重组数据包需要大量的内存,容易使网络安全设备出现内存耗尽的情况;再次,在具备高速缓冲存储器的网络安全设备中,在内存中大量读写数据包数据还会使高速缓冲存储器的局部性降低,从而降低网络安全设备的性能。
发明内容
(一)解决的技术问题
本发明解决的技术问题是提出一种无需重组数据包就可以检测出跨包内容的字符串匹配方法。
(二)技术方案
本发明提出了一种基于AC自动机和后缀树的字符串匹配方法,所述方法包括:
S1、将特征字符串编译成AC自动机;
S2、将特征字符串的后缀集合编译成后缀树;
S3、每当有一个数据包进入网络安全设备时,根据所述AC自动机对所述数据包进行匹配,并利用所述后缀树保存匹配状态;
S4、若匹配成功,则丢弃所述数据包。
优选地,当所述数据包按序进入时,则步骤S3具体包括:
S31、当接收到当前按序数据包时,搜索所述当前按序数据包的前一个数据包的记录是否存在;
S32、根据所述当前按序数据包的前一个数据包的记录是否存在判定所述当前按序数据包的状态编号;
S33、根据所述AC自动机,从所述当前按序数据包的状态编号开始对所述当前按序数据包进行匹配。
优选地,步骤S32具体包括:
若所述当前按序数据包的前一个数据包的记录存在,则将所述当前按序数据包的前一个数据包的状态编号作为所述当前按序数据包的状态编号;
若所述当前按序数据包的前一个数据包的记录不存在,则所述当前按序数据包的状态编号为0。
优选地,当所述数据包乱序进入时,则步骤S3具体包括:
S31’、在接收当前乱序数据包之前,搜索所述当前乱序数据包的后一个数据包的后缀树记录是否存在,并检测所述当前乱序数据包的后一个数据包的头部是否为所述后缀树中的一个后缀;
S32’、若所述当前乱序数据包的后一个数据包的后缀树记录存在,且检测到所述当前乱序数据包的后一个数据包的头部是所述后缀树中的一个后缀时,则保存所述后缀树在所述后缀上的后缀树编号;
S33’、当接收到所述当前乱序数据包时,对所述后缀树在所述后缀上的后缀树编号上进行回溯;
S34’、将回溯得到的后缀添加到所述当前乱序数据包的尾部,根据所述AC自动机对重组后的所述当前乱序数据包进行匹配。
优选地,所述步骤S31’还包括搜索所述当前乱序数据包的前一个数据包的后缀树记录是否存在:
若所述当前乱序数据包的前一个数据包的后缀树记录存在,且所述当前乱序数据包的前一个数据包为所述后缀的一部分,则所述当前乱序数据包的后缀树编号为所述当前乱序数据包的前一个数据包的后缀树编号;
若所述当前乱序数据包的前一个数据包的后缀树记录存在,且所述当前乱序数据包的前一个数据包不是所述后缀的一部分,则所述当前乱序数据包的后缀树编号为所述当前乱序数据包的前一个数据包的后缀树编号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210488427.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于淀粉糖生产用降膜式蒸发装置
- 下一篇:恶意攻击防止方法和浏览器