CN101401090B - 深度包过滤器及深度包过滤方法 - Google Patents

深度包过滤器及深度包过滤方法 Download PDF

Info

Publication number
CN101401090B
CN101401090B CN2005800117423A CN200580011742A CN101401090B CN 101401090 B CN101401090 B CN 101401090B CN 2005800117423 A CN2005800117423 A CN 2005800117423A CN 200580011742 A CN200580011742 A CN 200580011742A CN 101401090 B CN101401090 B CN 101401090B
Authority
CN
China
Prior art keywords
prefix
suffix
pattern
data
deep packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2005800117423A
Other languages
English (en)
Other versions
CN101401090A (zh
Inventor
永·H·丘
威廉·H·曼吉奥尼-史密斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of California
Original Assignee
University of California
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of California filed Critical University of California
Publication of CN101401090A publication Critical patent/CN101401090A/zh
Application granted granted Critical
Publication of CN101401090B publication Critical patent/CN101401090B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及改进的深度包过滤器系统。其被设计成优化用于高速网络业务量的动态模式的搜索。该改进的深度包过滤器系统是具有优化的逻辑区域的基于硬件的系统。一种优化技术是在硬件设计中共享公用子逻辑以便减小所需的门数量。另一优化技术是使用内置存储器来存储部分模式集,也会导致减少门。逻辑区域的减少允许在单个现场可编程阵列芯片上实现深度包过滤器系统。

Description

深度包过滤器及深度包过滤方法
有关联邦政府主办的研究/开发的声明
本发明是在由国家科学基金会授予的许可No.0220100下,在政府支持下做出的。政府对本发明具有一定的权利。
背景技术
盛行的网络病毒表明仅检查网络包报头的传统的防火墙不足以防止入侵计算机。许多新的攻击以各种动态位置隐藏在包的有效载荷部分中,而不是静态报头部分中。例如,在互联网中发现的许多最新蠕虫病毒是嵌入未知位置的包有效载荷中的应用级攻击。这些攻击的包报头可以不表明该包是非法的,事实上,可能出现为合法包。因此,期望具有一种安全系统,包含深度包检查单元,也称为多层检查单元,不仅检查静态包报头,而且监听整个有效载荷以便搜索预定模式。
图1是典型的多层检查系统的框图。该系统包括多层检查单元10,其获得输入包20,以及相对于所有包过滤器模式30检查包的3-7层。如果模式30的任何一个与3-7层中的信息匹配,则不允许该包通过。否则,允许该包通过。
多层检查单元20可以实现为运行基于规则的包过滤软件的一个或多个通用处理器。然而,由于由软件系统使用的穷举模式检测算法,通常该软件难以过滤1Gbps或更高的高速网络业务。特别地,因为该模式的位置不是预定的,因此在检索过程期间,必须从有效载荷的每一字节对齐开始来比较这些模式。因此,基于规则的包过滤软件与这种高速网络一起使用是不实际的。
现有技术中存在支持更快网络的定制硬件芯片。尽管基于包的静态字段的搜索,这些芯片有效地用作包分类器,但对深度包过滤器所需的动态模式搜索来说,它们是不佳的候选。这主要由于在VonNeuman体系结构上运行的基本的按序算法,当所需模式校验的数量增加时,最终导致性能瓶颈。
因此,需要一种用于高速网络的改进的深度包过滤器系统。
发明内容
本发明涉及深度包过滤器,包括前缀搜索逻辑,其被配置成比较输入数据的第一非报头部分与前缀模式。该过滤器还包括存储多个后缀模式的存储器;以及基于输入数据的第一非报头部分与前缀模式的匹配,生成后缀索引的地址编码器。该过滤器进一步包括比较器逻辑,其被配置成比较输入数据的第二非报头部分与基于所生成的后缀索引识别的后缀模式。基于第二非报头部分的比较,允许输入数据通过或不允许输入数据通过。
根据一个实施例,前缀搜索逻辑同时比较输入数据的第一非报头部分和多个前缀模式。这可以通过同时比较输入数据的第一非报头部分的多个字节与多个前缀模式的每一个的多个字节来实现。
根据一个实施例,前缀搜索逻辑同时比较输入数据的第一非报头部分的多个字节与多个前缀模式的每一个的不同字节对齐。
根据一个实施例,前缀搜索逻辑包括用于检测前缀模式的特定子串的解码器链。为优化目的,用于检测特定子串的解码器链可以由配置成检测包括特定子串的不同前缀模式的多个前缀搜索逻辑单元共享。
根据一个实施例,在单个现场可编程门阵列上实现前缀搜索逻辑、存储器、用于生成后缀索引的装置以及比较器逻辑。
根据一个实施例,存储器存储排序后缀模式的列表,其中,将该列表的偶数项中的模式从存储器的第一项存储到最后一项,以及将该列表中的奇数项中的模式从存储器的最后一项存储到第一项。
根据一个实施例,地址编码器基于由耦合到前缀搜索逻辑的输出的OR门的二进制树导出的逻辑等式,生成后缀索引的每一位。
根据一个实施例,前缀搜索逻辑表示字节对齐,以及比较器逻辑包括用于根据所表示的字节对齐移位输入数据的第二非报头部分的移位器。
根据一个实施例,输入数据的第一和第二非报头部分是数据的有效载荷部分。
根据另一实施例,本发明涉及深度包过滤方法,包括将多个模式划分成前缀部分和后缀部分;将多个模式的每一个的后缀部分存储在存储器中;同时比较输入数据的第一非报头部分的至少一部分与多个模式的每一个的前缀部分的至少一部分;基于输入数据的第一非报头部分与特定模式的前缀部分的匹配,生成后缀索引;基于后缀索引,识别在存储器中存储的特定模式的后缀部分;比较输入数据的第二非报头部分与所识别的后缀部分;以及基于第二非报头部分与所识别的后缀部分的比较,转发输入数据或不转发输入数据。
当参考下述详细描述、附加权利要求和附图进行考虑时,将更全面地理解本发明的这些和其他特征、方面和优点。当然,本发明的实际范围由附加权利要求限定。
附图说明
图1是典型的多层检查系统的框图;
图2描述根据本发明的示例性实施例,采用改进的深度包过滤器系统的网络;
图3是根据本发明的一个实施例的图1的改进的深度包过滤器系统的示意框图;
图4是根据本发明的一个实施例的基于解码器的模式搜索引擎的操作图;
图5A示例说明根据本发明的一个实施例,分别配置成校验以不同字节对齐的模式“BABAB”和“ABAB”的两个基于解码器的模式搜索引擎;
图5B示例说明图5A的子串比较器组,但去除重复组;
图6A示例说明根据本发明的一个实施例,搜索去除重复比较器的模式“ABCDEF”、“ABCXXX”和“ABCYYY”的子串比较器组;
图6B示例说明用于搜索模式“ABCDEF”、“ABCXXX”和“ABCYYY”的比较器的崩溃的(collapse)流水线链;
图7A示例说明根据本发明的一个实施例,将15位输入编码成4位索引的OR门的示例性二进制树;
图7B示例说明根据本发明的一个实施例,在D-触发器后,具有由1个四输入门替代的2个双输入门的流水线OR树;
图8是根据本发明的一个实施例的基于存储器的模式搜索引擎的框图;
图9示例说明划分成前缀部分和后缀部分的输入数据,其中,由前缀搜索引擎匹配前缀部分以便生成存储输入数据的相应的前缀部分的只读存储器中的地址;
图10是根据本发明的一个实施例,包括在图8的基于存储器的模式搜索引擎中的前缀搜索引擎的更详细框图;
图11示例说明根据本发明的一个实施例,用于改进存储器利用率的机制;
图12是根据本发明的一个实施例,用于与图8的基于存储器的模式搜索引擎的存储器一起使用的包装器逻辑的示意框图;
图13是根据本发明的一个实施例,图8的基于存储器的模式搜索引擎的比较器模块的示意框图;以及
图14是根据本发明的一个实施例,结合图4-6的基于解码器的设计和图8-13的基于存储器的设计的模式搜索引擎的框图。
具体实施方式
本发明针对设计成优化用于高速网络业务,诸如例如1Gbps或更高的网络业务的动态模式的搜索的改进的深度包过滤器系统。根据一个实施例,经硬件实现改进的深度包过滤器系统。这种基于硬件的系统的设计的一个挑战是通常需要大量逻辑资源以便支持大的模式集。可以例如由通常称为Snort的开源网络入侵检测系统提供这种模式集。
根据一个实施例,该改进系统通过应用多个优化技术,降低硬件的所需逻辑区域。一种优化技术是在硬件设计中共享公共子逻辑以便降低所使用的门的数量。另一优化技术是使用内置存储器来存储也会导致门降低的模式集的部分。
降低逻辑区域允许通过单个芯片实现深度包过滤器系统。因为通过新病毒和蠕虫的出现,不断更新用于入侵检测的模式集,期望用来快速和容易重新编程的芯片。因此,在本发明的一个实施例中,所使用的芯片是单个现场可编程门阵列(FPGA)。然而,本领域的技术人员应当意识到本发明不限于FPGA,以及也可以使用允许快速和容易重新编程的其它类似的芯片。
图2描述根据本发明的示例性实施例,其中采用改进的深度包过滤器系统的网络。在所示的网络中,经不可靠介质40,诸如例如互联网传送包,以及由配置成防止设备50,诸如例如局域网中的设备的网络免受入侵的防火墙45接收和检查所述包。根据一个实施例,防火墙具有改进的深度包检查系统60,其不仅检查包的报头,而且检查用于确定该包应当被丢失还是允许通过的有效载荷部分。根据一个实施例,防火墙还具有其他传统的入侵检测和防止机制,用于补充改进的深度包检查系统60。
在本发明的一个实施例中,改进的深度包检查系统也可以包含在高速路由器或交换机中。通过将该系统包含在这种路由器或交换机中,可以过滤出许多已知的应用级攻击。
图3是根据本发明的一个实施例的改进的深度包过滤器系统60的示意性框图。示例性深度包过滤器系统由并行连接的各种检查模块100a-100n(统称为100)组成。用这种方式,每一检查模块在每一时钟周期,同时将输入数据的一部分与给定的目标模式集(也称为规则或特征)进行比较。根据一个实施例,每一检查模块包括用于实现单个Snort规则特征的逻辑。
经32位总线100,将输入包数据102传递到32位寄存器112。在寄存器中存储的数据然后同时转发到检查模块100a-100n,用于匹配。
根据本发明的一个实施例,每一检查模块100配置有动态模式搜索引擎104,其将输入数据的有效载荷部分与特定规则模式进行比较,并将结果提供给地址编码器108。根据本发明的一个实施例,搜索引擎104包括各种可配置离散逻辑的并行流水线系列。
地址编码器108从每一检查模块接收匹配表示,以及输出表示被检测模式的模式ID。另外,地址编码器108可以由简单地表示是否已经实现匹配的OR门代替。然后,使用匹配表示来修改用户和/或丢弃输入包。
动态模式搜索引擎104也可以与在输入数据的静态报头分中搜索特定类型的报头信息的一个或多个静态报头检测器106a-106d一起工作。基于所检测的报头信息,可以启动或禁止动态模式搜索引擎104的深度包检查。例如,静态报头检测器可以搜索特定物理地址、协议、IP地址、端口号等等。
根据本发明的一个实施例,动态模式搜索引擎104被实现为配置成以不同字节偏移量搜索特定模式的流水线检测器链。图4是根据本发明的一个实施例,基于解码器的模式搜索引擎104a的操作图。搜索引擎104a包括流水线子串比较器链200,子串比较器用于将输入数据与特定特征比较。根据一个实施例,由于使用可重构逻辑,可以用检测数据的一个字节的8-1解码器实现每个单独的比较器202。
配置所示的基于解码器的模式搜索引擎以便搜索串“PATTERNS”。在所示的例子中,在流水线的每一级/链中,匹配数据的四个字节以便增加其吞吐量。由于提供输入数据的多个字节的数据路径,必须以总线的不同字节对齐检查相同数据。因此,四组不同子串比较器204能用在每一流水线级中以便同时检查4字节输入数据的所有不同字节偏移量。然后,将每一匹配结果传给耦合到每组子串比较器200的1位寄存器206。
在所示例子中,组成32位寄存器112的每个8位寄存器存储输入数据流的ASCII字符。寄存器A示例说明在第一时钟周期期间的输入数据,寄存器B示例说明在第二时钟周期期间的输入数据,以及寄存器C示例说明在第三时钟周期期间的输入数据。同时,流水线寄存器A、B和C的内容表示串流“PATTERNS”。
在所示例子的第一周期期间,将子串“PAT”与行1中具有不同字节偏移量的四个不同子串进行比较。因为所有1位寄存器202初始化为0,即使在行2和3中存在匹配模式,也不锁存结果。在该例子中,与子串“PAT”匹配的行1、列2中的比较器组200a产生结果值“1”。通过相应的1位寄存器202a,锁存该值以便启动1位寄存器的下一行。
在第二周期期间,将寄存器B中的子串锁存到寄存器A中。然后,将子串与所有模式子集进行比较。然而,可以锁定的唯一比较器结果是行1中的所有比较器,以及行2、列2中的比较器组200b。期望启动所有行1寄存器,因为在第一周期期间,该模式可以通过寄存器B中的内容真正启动。比较器组200b中的匹配模式生成通过相应的1位寄存器202b锁存的值“1”以便启动1位寄存器的下一行。
在第三周期期间,将寄存器C中的子串锁存到寄存器A中。在行3、列2中的比较器组200c中配置的匹配模式将值“1”发送到地址编码器108。
如上所述,基于硬件的深度包过滤器系统的设计中的一个挑战是要求大量逻辑资源。例如,为实现Snort规则集中的2,207个特征,通常将需要超过12个最大FPGA。因此,根据本发明的一个实施例,使用各种优化技术来允许在单个FPGA上实现深度包过滤器系统60。一种这种优化技术是设计允许共享子串比较器的基于解码器的模式搜索引擎104a。再参考图4所示的设计,将用于相同字节对齐的所有子串比较器组连接到相同的输入管脚。这些子串比较器的一些校验相同子串。因此,可以安全地去除重复子串比较器组,而不丧失设计功能性。
根据一个实施例,用于消除重复子串比较器组的第一步骤的一个是将每一目标串划分成1至4字节段集。然后,从初始集提取一组唯一段。将所有唯一串段转化成唯一子串比较器组。最后,将子串比较器的输出转发到相应的动态模式搜索引擎104。
图5A示例说明根据本发明的一个实施例,被分别配置成校验不同字节对齐的模式“BABAB”和“ABAB”的两个基于解码器的模式搜索引擎104b,104c。为简化起见,仅示例说明每一子串比较器组中的相关8位比较器。
在所示的例子中,存在四对重复子串比较器组:校验子串“ABAB”的子串比较器组304a,304b、校验子串“BAB”的子串比较器组306a,306b、校验子串“AB”的子串比较器组308a,308b,以及校验子串“B”的子串比较器组310a,310b。因为用于相同字节对齐的每对重复子串比较器组连接到相同的数据输入管脚,可以安全地去除来自每对的一个子串比较器组并用AND门代替该子串比较器组。
图5B示例说明图5A的子串比较器组,但去除了重复组。在所示的例子中,用将来自子串比较器组304b的输出接收为输入的AND门356代替子串比较器组304a;用将来自子串比较器组304a的输出接收为输入的AND门354代替子串比较器组310b;用将来自子串比较器组308a的输出接收为输入的AND门352代替子串比较器组308b;以及用将来自子串比较器组306a的输出接收为输入的AND门350代替子串比较器组306b。
根据本发明的一个实施例,用来减小基于解码器的模式搜索引擎的逻辑区域的另一优化技术是将引擎设计成允许它共享相同字节对齐中的各个比较器。例如,在图5B的基于解码器的模式搜索引擎104b,104c中,可以将从特定输入管脚接收输入的第一流水线级中的“B”比较器360的输出再用于也从相同输入管脚接收输入的第二流水线级中的两个其他比较器304a,362。关于这一点,用将来自“B”比较器360的输出接收为输入的AND门代替冗余比较器304a,362。在消除图5B中所示的示例性搜索引擎104b,104c中的所有复制后,仅通过八个8位比较器,可以获得功能上等效的设计,其中,每一个8位比较器由两个4位、可重构查找表组成。因此,在该例子中,使整个逻辑需求减小25%。
根据本发明的一个实施例,用于减小改进的深度包过滤器系统60的逻辑区域的另一优化技术是将关键字树用于允许结合流水线链的模式搜索引擎104。例如,如果将搜索的模式是“ABCDEF”、“ABCXXX”,以及“ABCYYY”,可以以如图6A所示的消除复制的方式使用子串比较器。在所示的例子中,子串比较器400检测子串“ABC”,子串比较器402检测子串“DEF”,子串比较器404检测子串“XXX”,以及子串比较器406检测子串“YYY”。然后,使用每一子串比较器的输出来生成具有AND门的三个流水线链。根据一个实施例,使该链崩溃以便减少用于这些链的资源,如图6B所示。该转换不仅减少所需存储量,而且当程序遍历该树时,使潜在模式的数量缩小。根据一个实施例,构造如图4-5的实施例中所示的并行设计中的树要求比较器400-406的长度为数据路径宽度的倍数。
图3实施例中的检查模块100a-110n生成表示在那个时钟周期是否出现匹配的1位输出。在使用1519个唯一检查模块来表示规则集的情况下,检查模块的输出为1519位。在一些应用中,通过用软件实现匹配的模式的标识,来简化所有这些表示匹配的位的“或”运算是足够的。然而,通常更期望经硬件产生匹配的模式的索引号。
生成索引号的一个挑战是通常由相当大的输入,诸如例如1519位生成索引号。另一挑战是一个以上的检查模块可以在相同时钟周期期间表示匹配。
根据本发明的一个实施例,地址编码器108获得由检查模块生成的1519位,以及使用来自由地址编码器108提供的OR门的二进制树的输出的组合,生成匹配的模式的11位索引号。图7A示例说明根据将15位输入502编码成4位索引的示例性实施例的OR门500的示例性二进制树。基于二进制树的自然属性,可以确定如果断言树的相应级的奇数节点的任何一个,则应当断言索引的每一索引位。因此,如果假定在每一时钟周期,将断言仅一个输入管脚(即,在每一周期,检测仅一个模式),根据下述索引位等式(1)-(4),可以生成用于15-位输入的4-位索引编码器:
Index3=a1                                (1)
Index2=b1+b3                             (2)
Index1=c1+c3+c5+c7                       (3)
Index0=d1+d3+d5+d7+d9+d11+d13+d15        (4)
因此,在生成4位索引编码器中,可以将逻辑用于组合二进制树的各个节点的输入,如由等式所示。例如,用于生成索引的位0的逻辑包括在树级D获得奇数输入管脚的输出的多个OR门。用于生成索引的位1的逻辑包括在树级C获得奇数节点的输出的多个OR门等等。用于每一索引位的逻辑的输出的1位寄存器存储所编码的索引位。
如上所述,根据等式(1)-(4)生成的地址编码器是假定在特定时钟周期将断言超不过一个输入管脚的简单编码器。然而,如果将断言一个以上输入管脚,则简单地址编码器可能不足以适当地表示模式索引。对这种冲突的一种解决方案是将规则集划分成多个子集,每一子集包含不重叠的模式。然后,将简单地址编码器提供给每一子集模式搜索单元。然而,在一些情况下,有限输出管脚计数使得具有多个索引输出不可行。因此,在这种情况下,可以期望指定模式索引的优先级。
根据本发明的一个实施例,使用软件预处理来将优先级分配给索引号。根据另一实施例,直接修改硬件来分配索引优先级。
根据软件预处理方法,能同时断言编码器输入的所有模式根据等式5分配索引号:
In|In-1|I0=In        (5)
等式5将逐位OR应用于重叠模式的所有索引,其中,In是具有n的较高值的索引号,n的较高值表示较高优先级。只要根据所需优先级,将所有索引分配给重叠模式,那么可以将索引分配给剩余模式。
用于根据软件预处理实施例分配索引优先级的机制对优先级化的模式集的大小进行了限制。每一集的索引的最大数等于索引输出管脚的数量。在实际结构中,可以有几个独立的重叠模式集,但同时重叠模式的数量通常小于4。因此,对于大多数集,该技术是足够的。使用软件预处理机制的优点在于不需要另外的门。
对需要严格优先级的情形,基于硬件的优先级索引编码器可以用来使用用于地址编码器的另外的门,来构造基于优先级的索引。根据该基于硬件的优先级编码器,较高索引表示较高优先级。
可以基于图7A的二进制OR树的下述检查,设计基于硬件的优先级编码器。在所示的二进制OR树中,如果断言在A1节点504下的15位输入502(D节点)的任何一个,则最高有效索引位是“1”。由于较高编号的D节点具有比较低节点更高的优先级,因此不需要考虑A0节点512的输出。因此,基于硬件的优先级编码器将索引的最高有效位值分配给A1的输出。
对下一索引位,考虑具有A1和A0节点504,512的直接子节点的分支。这导致如果断言B3节点508的输出,则第二索引位为“1”的推论。然而,如果B1节点506的输出为“1”,同时无较高标志为“1”,则第二索引位也为“1”。在所示的二进制OR树中,仅需要校验A1节点504为“0”以便校验断言没有构成较高标志的子节点的任何一个。使用该推导过程,可以构造后续地址/索引位。因此,根据下述索引位等式(6)-(9),生成用于15位输入的4位优先级索引编码器。
Index3=a1                        (6)
Index 2 = b 1 · a 1 ‾ + b ; - - - ( 7 )
Index 1 = c 1 · b 1 ‾ · a 1 ‾ + c 3 · a 1 ‾ + c 5 · b 3 ‾ + c 7 - - - ( 8 )
Index 0 = d 1 · c 1 ‾ · b 1 ‾ · a 1 ‾ + d 3 · b 1 ‾ · a 1 ‾ + d 5 · c 3 ‾ · a 1 ‾ + d 7 · a 1 ‾ + - - - ( 9 )
d 9 · c 5 ‾ · b 3 ‾ + d 11 · b 3 ‾ + d 13 · · c 7 ‾ + d 15
因此,在生成基于硬件的优先级编码器中,使用另外的逻辑来结合如由等式表示的二进制树的各个节点的输入。例如,用于根据等式(7)生成优先级索引的位2的逻辑,与根据等式(2)的简单编码器的逻辑不同,其添加了用于校验A1节点504为“0”的另外的逻辑。
根据本发明的一个实施例,为最大化用于地址编码器的资源,删除不由等式中的任何一个使用的OR树的节点。因此,在图7A所示的例子中,从主根节点510开始,删除树510,512,514,516和518的左沿上的所有节点。通过输出编码地址位处的寄存器,关键路径具有最大值(logn)-1门延迟,其中,n是输入管脚的数量。由于在每一门后,流水线化模式搜索结构,这种长的门链变为关键路径。大多数FPGA中的每一查找表通常与D触发器配对。因此,编码器的硬件设计可以插入另外的流水线寄存器。
图7B示例说明具有在D触发器后,由1个四输入门代替的、具有最多2个两输入门的流水线OR树。进一步流水线化用于实现该索引等式的逻辑以便维持流水线寄存器间的单个门的电平。
根据本发明的另一实施例,通过将模式搜索引擎104实现为利用包括在FPGA芯片中的内置存储器,诸如只读存储器(ROM)的基于存储器的模式搜索引擎,减小用于实现改进的深度包过滤器系统60的逻辑区域。
图8是根据本发明的一个实施例,基于存储器的模式搜索引擎104d的框图。如图8所示,在调用与剩余数据,在下文中称为后缀的完全比较之前,通过前缀搜索引擎602预先筛分在下文中称为前缀的输入数据600的开始部分。前缀搜索引擎602将前缀部分与预定前缀模式集进行比较。对于具有多字节输入的数据路径,前缀搜索引擎602还生成匹配前缀的对齐信息。然后,将匹配前缀模式的索引直接映射为内置存储器604的地址,其中,存储不同的前缀模式,如图9所示。通过相应对齐处的比较器606模块,比较输入数据和后缀,以便确定是否出现精确匹配。
为了使基于存储器的设计正确地起作用,划分规则集中的模式并将模式映射到一个或多个ROM中。根据本发明的一个实施例,划分模式以便每一分区中的前缀是唯一的。关于这一点,对于不同长度的前缀,划分模式以便分区中的较长前缀的末端不与较短前缀匹配。否则,会出现一个以上的前缀匹配。如果存在一个以上的前缀检测,则前缀搜索引擎602可以不确定从存储器读取哪个前缀。
前缀宽度可以是任意大小。然而,根据本发明的一个实施例,将前缀设置成等于输入总线的宽度,诸如例如四字节。由于每一时钟可能产生用于检索后缀的有效索引,每一周期最多进行后缀比较。因此,能产生两个不同对齐的任何前缀被分配给单独的ROM。对于具有一字节输入的数据路径,该约束不产生任何问题,因为该数据总是处于零对齐。然而,如果数据路径提供多字节输入,某些前缀能与两个不同对齐匹配。
例如,假定在4字节数据路径中,前缀搜索引擎602由前缀“ABAB”构成。如果输入数据600以“ABAB”开始,用于前缀的对齐能是0或2。这是因为第二子串“AB”能是模式的实际开始点。因此,根据数据路径和前缀的长度,形成测试集合中的每一模式以便在每一周期仅允许一个索引检测的条件。
对于具有固定4字节前缀的4字节数据路径,使分区中的所有前缀配置成满足下述三个条件:(1)前缀的字节1不等于字节4;(2)字节1至2的子串不等于字节3至4的子串;以及(3)字节1至3的子串不等于字节2至4的子串。
图10是根据本发明的一个实施例,包括在基于存储器的模式搜索引擎104d中的前缀搜索引擎602的更详细框图。前缀搜索引擎602包括多个搜索模块610a-610n,根据一个实施例,所述模块实现为图4-6中所示的基于解码器的模式搜索引擎。每一搜索模块610a-610n比较预定前缀模式的以不同字节对齐的输入数据的前缀部分。耦合到每一搜索模块610a-610n的对齐模块612a-612n表示匹配前缀模式的对齐。然后,编码来自各个对齐模块612a-612n的匹配信号,以便提供对齐信息。此外,地址解码器614基于来自各个搜索模块610a-610n的匹配信号,生成后缀索引。地址编码器614可以例如类似于图3的地址编码器108。因为如上所述对前缀进行分区,在每一时钟周期,检测指定子集中的仅一个前缀。因此,对齐和地址编码不需要考虑匹配模式的优先级,由此,可以使逻辑简单和紧凑。
根据本发明的一个实施例,将存储器604内置在用来实现改进的深度包过滤器系统60的芯片中。例如,存储器604是在FPGA芯片中提供的ROM。根据一个实施例,使存储器的宽度固定到与集合中的最长后缀项一样宽。由于后缀的变动长度,具有这种固定宽度的存储器利用率可能不够有效。
图11示例说明根据本发明的一个实施例,用于改进存储器利用率的机制。如图11所示,存储器604a以排序方式,存储变动长度的N个后缀项。然而,存储器604a的利用率不足,因为它剩余大约一半的存储器空间未用。根据本发明的一个实施例,通过用有效数据填充未用空间,实现存储器空间的更有效使用。关于这一点,根据待存储的后缀模式的长度,首先排序所述待存储的后缀模式。因此,将所有偶数项顺序地从存储器的第一项存储到最后一项。然后,根据它们的位序列,翻转将所有奇数项,从最后一项存储到第一项,如存储器604b的内容所示。该过程将奇数项有效地存储到换位存储器中。
为了正确地读取重排存储器项,使用少量包装器逻辑。图12是根据本发明的一个实施例的包装器逻辑的示意框图。在存储器的地址输入,将所有位,除最低有效位(LSB)700外,传送到存储器604。LSB700用来确定地址为奇还是偶。如果地址为偶数,则不改变剩余地址位,并将其传递为物理地址。否则,经反向器702,首先倒置地址位,然后传递到存储器604。类似地,将存储器604的输出连接到2-1复用器704,以及LSB连接到其选择管脚。当LSB表示偶数项时,选择正常输出706。如果表示奇数项,选择具有倒置位次序的输出708。
图13是根据本发明的一个实施例的比较器模块606的示意框图。只要从存储器604读取后缀模式,流水线化输入包数据802并经由比较器模块提供的移位器804,移位到适当的字节对齐。基于最长模式的长度和ROM等待时间,确定流水线级的数量。
经单级复用器可以实现移位器,或根据输入总线的宽度,可以将移位器流水线化到多级。一字节数据路径仅具有单个对齐,因此,不需要移位器。
除后缀模式外,存储器604还存储每一模式的长度,以及将这一长度808提供给逐位比较器806。通过逐位比较器806解码该长度以便仅启动所示长度的比较器。逐位比较器806然后将所接收的后缀模式810与字节对齐的包数据进行比较。当该数据与后缀模式匹配时,由前缀搜索引擎602生成的、用作后缀存储器地址的前缀索引,被转发为识别所检测的模式的输出。也可以丢弃输入数据包,和/或用户修改可疑包。
根据本发明的一个实施例,将逐位比较器806实现为1字节XOR比较器。与用在由两个查找表组成的、图4-6的基于解码器的设计中使用的解码器不同,XOR比较器由八个查找表组成。然而,由于由在ROM中存储的所有模式使用仅一组比较器,每一字节平均的门可以远小于全解码器实现。
根据本发明的一个实施例,改进的深度包过滤器系统60包含图4-6的基于解码器的设计以及图8-13的基于存储器的设计。图14是根据本发明的一个实施例,结合两种设计的模式搜索引擎104e的框图。因为在存储器中存储的、用于模式的前缀基本上是较短模式集,它们可以与剩余模式结合以便产生有效关键字树900。对较短模式,然后,基于解码器的搜索引擎906执行比较,以及将匹配表示传送到地址编码器902,其可以与图3的地址编码器108类似。地址编码器902然后输出相应的模式ID。
对较长模式,基于解码器的搜索引擎908执行前缀的比较,以及使用输出索引来选择基于存储器的搜索引擎904中的存储后缀。然后,将该索引输出作为相应的模式ID。
由于将大量模式存储在存储器中,图14的组合设计要求远少于基于解码器的过滤器的门。因此,可以将全过滤器成功地放置并布线为更小Spartan 3-XC3S400设备。在实验期间,该系统使用XC3S400设备中的200MHz的时钟速率,以及XC3S1000设备中的237MHz的总共4,415个查找表。XC3S1000设备中的加速是由于代替较大FPGA中的部件的较高自由度。
在模式检测率低的实例中,可以足以表示匹配信号,而不识别该模式。然后,软件可以进行数据库的全面搜索以便确定检测哪种模式。对于这一设计,可以用所有索引编码器902来代替OR门树以便减少门的数量。但是,由于我们的高效索引编码器设计,可以从基于解码器的设计回收仅755查找表,以及65个用于基于存储器实现的查找表。
尽管上面详细地描述以及在附图中示出了某些示例性实施例,应理解到这些实施例仅是示例性,以及不限制宽的发明。特别地,应意识到本发明的教导适合于各种系统和过程。因此,应意识到可以对上述本发明的示例性和其他实施例做出各种改进,而不背离其宽的发明范围。例如,尽管动态模式搜索引擎描述为搜索数据包的有效载荷部分,但本领域的技术人员应意识到可以将搜索引擎配置成搜索除或代替有效载荷部分的分组的其他部分。
鉴于上文,将理解到本发明不限于在此公开的具体实施例或对齐,相反,意图覆盖落在由附加权利要求和它们的等效定义的、本发明的范围和精神内的任何改变、适应或修改。

Claims (20)

1.一种深度包过滤器,包括:
前缀搜索逻辑电路,配置成比较输入数据的第一非报头部分与前缀模式;
耦合到所述前缀搜索逻辑电路的存储器,所述存储器存储多个后缀模式;
包括多个逻辑门的地址编码器,所述地址编码器被配置成基于输入数据的第一非报头部分与前缀模式的匹配,生成后缀索引,其中,所述地址编码器基于所述逻辑门的一个或多个输出的组合生成所述后缀索引;以及
比较器逻辑电路,配置成比较输入数据的第二非报头部分与基于所生成的后缀索引识别的后缀模式,其中,基于第二非报头部分与所识别的后缀模式的比较,允许输入数据通过或不允许输入数据通过。
2.如权利要求1所述的深度包过滤器,其中,所述前缀搜索逻辑电路同时比较输入数据的第一非报头部分和多个前缀模式。
3.如权利要求2所述的深度包过滤器,其中,所述前缀搜索逻辑电路同时比较输入数据的第一非报头部分的多个字节与多个前缀模式的每一个的多个字节。
4.如权利要求3所述的深度包过滤器,其中,所述前缀搜索逻辑电路同时比较输入数据的第一非报头部分的多个字节与多个前缀模式的每一个的不同字节对齐。
5.如权利要求1所述的深度包过滤器,其中,所述前缀搜索逻辑电路包括用于检测前缀模式的特定子串的解码器链。
6.如权利要求5所述的深度包过滤器,其中,用于检测特定子串的解码器链由配置成检测包括特定子串的不同前缀模式的多个前缀搜索逻辑单元共享。
7.如权利要求1所述的深度包过滤器,其中,在单个现场可编程门阵列上实现所述前缀搜索逻辑电路、存储器、地址编码器以及比较器逻辑电路。
8.如权利要求7所述的深度包过滤器,其中,所述存储器存储排序后缀模式的列表,其中,将该列表的偶数项中的模式从存储器的第一项存储到最后一项,以及将该列表中的奇数项中的模式从存储器的最后一项存储到第一项。
9.如权利要求1所述的深度包过滤器,其中,所述多个逻辑门形成OR门的二进制树,其中所述地址编码器基于由耦合到前缀搜索逻辑电路的输出的OR门的所述二进制树导出的逻辑等式,生成后缀索引的每一位。
10.如权利要求1所述的深度包过滤器,其中,所述前缀搜索逻辑电路表示字节对齐,以及所述比较器逻辑电路包括用于根据所表示的字节对齐,移位输入数据的第二非报头部分的移位器。
11.如权利要求1所述的深度包过滤器,其中,输入数据的第一和第二非报头部分是数据的有效载荷部分。
12.一种深度包过滤方法,包括:
将多个模式划分成前缀部分和后缀部分;
将多个模式的每一个的后缀部分存储在存储器中;
经由前缀搜索逻辑电路同时比较输入数据的第一非报头部分的至少一部分与多个模式的每一个的前缀部分的至少一部分;
基于输入数据的第一非报头部分与特定模式的前缀部分的匹配,经由地址编码器生成后缀索引,其中,基于形成所述地址编码器的一个或多个逻辑门的一个或多个输出的组合生成所述后缀索引;
基于后缀索引,识别在存储器中存储的特定模式的后缀部分;
比较输入数据的第二非报头部分与所识别的后缀部分;以及
基于第二非报头部分与所识别的后缀部分的比较,转发输入数据或不转发输入数据。
13.如权利要求12所述的方法,其中,同时比较包括同时比较输入数据的第一非报头部分的多个字节与多个模式的每一个的前缀部分的不同字节对齐。
14.如权利要求12所述的方法,其中经配置成检测特定子串的解码器链实现比较。
15.如权利要求14所述的方法,其中,由配置成检测包括特定子串的多个模式的不同前缀部分的多个前缀搜索逻辑单元共享用于检测特定子串的解码器链。
16.如权利要求12所述的方法,其中,存储器是内置在现场可编程门阵列中的只读存储器。
17.如权利要求12所述的方法,其中,所述存储器存储多个模式的排序后缀部分的列表,其中,将在该列表的偶数项中列出的后缀部分从存储器的第一项存储到最后一项,以及将在列表的奇数项中列出的后缀部分从存储器的最后一项存储到第一项。
18.如权利要求12所述的方法,其中,所述一个或多个逻辑门形成OR门的二进制树,其中生成后缀索引包括基于由耦合到前缀搜索逻辑电路的输出的OR门的所述二进制树导出的逻辑等式,生成后缀索引的每一位,所述前缀搜索逻辑电路同时比较输入数据的第一非报头部分的至少一部分与多个模式的每一个的前缀部分的至少一部分。
19.如权利要求12所述的方法,进一步包括:
识别与输入数据的第一非报头部分与特定模式的前缀部分的匹配有关的字节对齐;以及
根据所示的字节对齐,移位输入数据的第二非报头部分。
20.如权利要求12所述的方法,其中,输入数据的第一和第二非报头部分是数据的有效载荷部分。
CN2005800117423A 2004-04-19 2005-04-19 深度包过滤器及深度包过滤方法 Active CN101401090B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US56343504P 2004-04-19 2004-04-19
US60/563,435 2004-04-19
PCT/US2005/013629 WO2005104443A2 (en) 2004-04-19 2005-04-19 Programmable hardware for deep packet filtering

Publications (2)

Publication Number Publication Date
CN101401090A CN101401090A (zh) 2009-04-01
CN101401090B true CN101401090B (zh) 2010-08-25

Family

ID=35197644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800117423A Active CN101401090B (zh) 2004-04-19 2005-04-19 深度包过滤器及深度包过滤方法

Country Status (6)

Country Link
US (1) US7519995B2 (zh)
EP (1) EP1738531B1 (zh)
JP (1) JP4755175B2 (zh)
KR (1) KR100828038B1 (zh)
CN (1) CN101401090B (zh)
WO (1) WO2005104443A2 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7664879B2 (en) * 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7987272B2 (en) * 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US8082304B2 (en) * 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
US8266327B2 (en) * 2005-06-21 2012-09-11 Cisco Technology, Inc. Identity brokering in a network element
KR100981500B1 (ko) * 2006-02-07 2010-09-10 삼성전자주식회사 저밀도 패러티 검사 부호 기반의 하이브리드 재전송 방법
US7788719B1 (en) * 2006-03-23 2010-08-31 Symantec Corporation Graph buffering
US20070226483A1 (en) * 2006-03-24 2007-09-27 Dennis Cox System and method for storing and/or transmitting emulated network flows
US20090063747A1 (en) 2007-08-28 2009-03-05 Rohati Systems, Inc. Application network appliances with inter-module communications using a universal serial bus
US8677453B2 (en) 2008-05-19 2014-03-18 Cisco Technology, Inc. Highly parallel evaluation of XACML policies
US8667556B2 (en) 2008-05-19 2014-03-04 Cisco Technology, Inc. Method and apparatus for building and managing policies
US8094560B2 (en) 2008-05-19 2012-01-10 Cisco Technology, Inc. Multi-stage multi-core processing of network packets
KR101243298B1 (ko) * 2008-12-02 2013-03-13 한국전자통신연구원 전자 감시 시스템 및 방법
US20100212010A1 (en) * 2009-02-18 2010-08-19 Stringer John D Systems and methods that detect sensitive data leakages from applications
CN101599963B (zh) * 2009-06-10 2012-07-04 电子科技大学 网络疑似威胁信息筛选器及筛选处理方法
US9032517B2 (en) * 2009-10-31 2015-05-12 Hewlett-Packard Development Company, L.P. Malicious code detection
TWI424445B (zh) 2009-12-29 2014-01-21 Macronix Int Co Ltd 指令解碼電路及其方法
KR101201622B1 (ko) * 2010-08-19 2012-11-14 삼성에스디에스 주식회사 보안 기능을 가진 시스템 온 칩 및 이를 이용한 디바이스 및 스캔 방법
CN102014010B (zh) * 2010-12-31 2013-04-03 北京网康科技有限公司 一种网络行为管理系统及方法
US8458796B2 (en) * 2011-03-08 2013-06-04 Hewlett-Packard Development Company, L.P. Methods and systems for full pattern matching in hardware
JP5667009B2 (ja) * 2011-08-08 2015-02-12 日本電信電話株式会社 ルータ装置及びデータ解析方法
WO2013119173A2 (en) * 2012-02-07 2013-08-15 Oricane Ab Classification engine for data packet classification
US9154461B2 (en) 2012-05-16 2015-10-06 The Keyw Corporation Packet capture deep packet inspection sensor
US10824952B2 (en) 2014-09-22 2020-11-03 International Business Machines Corporation Reconfigurable array processor for pattern matching
US9891912B2 (en) 2014-10-31 2018-02-13 International Business Machines Corporation Comparison-based sort in a reconfigurable array processor having multiple processing elements for sorting array elements
JP6711000B2 (ja) * 2016-02-12 2020-06-17 日本電気株式会社 情報処理装置、ウィルス検出方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1319957A (zh) * 2000-03-31 2001-10-31 朗迅科技公司 用户可配置通信服务的方法和系统
CN1443411A (zh) * 2000-07-17 2003-09-17 先进微装置公司 用于具有多个最小项的封包数据字节的无缓冲器评估的装置和方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2880199B2 (ja) * 1989-10-18 1999-04-05 株式会社日立製作所 記号列検索方法および検索装置
JPH04169973A (ja) * 1990-11-02 1992-06-17 Hitachi Ltd 記号列検索方法および装置
JPH05282362A (ja) * 1992-03-31 1993-10-29 Sharp Corp データ検索回路
JPH07235878A (ja) * 1993-12-28 1995-09-05 Matsushita Electric Ind Co Ltd 可変長復号化器
JP3540109B2 (ja) * 1996-12-24 2004-07-07 富士通株式会社 データ圧縮方法及び装置
JPH11232279A (ja) * 1998-02-12 1999-08-27 Kawasaki Steel Corp 分割探索方法及び装置
JP3494028B2 (ja) * 1998-09-04 2004-02-03 三菱電機株式会社 検索方式
JP2001117929A (ja) * 1999-10-15 2001-04-27 Toshiba Corp データ検索方法、データ整列方法およびデータ検索装置
JP2001168911A (ja) * 1999-12-09 2001-06-22 Hitachi Cable Ltd パケットフィルタ装置
US6697363B1 (en) * 2000-06-28 2004-02-24 Alcatel Canada Inc. Method and apparatus for longest matching prefix determination in a communication network
JP2002016638A (ja) * 2000-06-29 2002-01-18 Mitsubishi Electric Corp ルーチング情報検索装置およびルーチング情報検索制御データを記録したコンピュータ読み取り可能な記録媒体
KR100686732B1 (ko) * 2000-08-26 2007-02-23 삼성전자주식회사 복수의 프리픽스로부터 데이터 패킷을 라우팅하기 위한데이터베이스 생성방법과 라우팅 방법 및 그 방법을이용한 라우터
AU2002322109A1 (en) * 2001-06-13 2002-12-23 Intruvert Networks, Inc. Method and apparatus for distributed network security
AU2002220130A1 (en) * 2001-09-12 2003-03-24 Raqia Networks, Inc. High speed data stream pattern recognition
JP2003099339A (ja) * 2001-09-25 2003-04-04 Toshiba Corp 侵入検知・防御装置及びプログラム
JP3829702B2 (ja) * 2001-11-29 2006-10-04 横河電機株式会社 フレーム同期装置及び方法
EP1548998A4 (en) * 2002-10-03 2008-02-27 In4S Inc BITKETTENPR FISHING PROCEDURE AND EQUIPMENT
US7454499B2 (en) * 2002-11-07 2008-11-18 Tippingpoint Technologies, Inc. Active network defense system and method
US7134143B2 (en) * 2003-02-04 2006-11-07 Stellenberg Gerald S Method and apparatus for data packet pattern matching
JP2004164435A (ja) * 2002-11-14 2004-06-10 Nec Software Kyushu Ltd 接続要求中継装置、フィルタリングシステム、方法、及びプログラム
JP2004192279A (ja) * 2002-12-10 2004-07-08 Matsushita Electric Ind Co Ltd Url管理装置及びurl管理方法並びにurl管理プログラム
US7584303B2 (en) * 2002-12-20 2009-09-01 Forte 10 Networks, Inc. Lossless, stateful, real-time pattern matching with deterministic memory resources
US7444515B2 (en) * 2003-08-14 2008-10-28 Washington University Method and apparatus for detecting predefined signatures in packet payload using Bloom filters

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1319957A (zh) * 2000-03-31 2001-10-31 朗迅科技公司 用户可配置通信服务的方法和系统
CN1443411A (zh) * 2000-07-17 2003-09-17 先进微装置公司 用于具有多个最小项的封包数据字节的无缓冲器评估的装置和方法

Also Published As

Publication number Publication date
JP2007537626A (ja) 2007-12-20
CN101401090A (zh) 2009-04-01
WO2005104443A2 (en) 2005-11-03
EP1738531B1 (en) 2014-06-11
WO2005104443A3 (en) 2008-10-23
EP1738531A4 (en) 2011-06-29
EP1738531A2 (en) 2007-01-03
US7519995B2 (en) 2009-04-14
KR100828038B1 (ko) 2008-05-08
JP4755175B2 (ja) 2011-08-24
US20080047008A1 (en) 2008-02-21
KR20070010064A (ko) 2007-01-19

Similar Documents

Publication Publication Date Title
CN101401090B (zh) 深度包过滤器及深度包过滤方法
US20210303819A1 (en) Fast signature scan
Dharmapurikar et al. Fast and scalable pattern matching for content filtering
Cho et al. Deep packet filter with dedicated logic and read only memories
US7454418B1 (en) Fast signature scan
Tan et al. Bit-split string-matching engines for intrusion detection and prevention
Le et al. A memory-efficient and modular approach for large-scale string pattern matching
US20100153420A1 (en) Dual-stage regular expression pattern matching method and system
US20060184556A1 (en) Compression algorithm for generating compressed databases
Yusuf et al. Bitwise optimised CAM for network intrusion detection systems
US7805393B1 (en) Assigning encoded state values to a search tree according to failure chains
Cho et al. Deep network packet filter design for reconfigurable devices
US7610269B1 (en) Method and apparatus for constructing a failure tree from a search tree
Li et al. The relationship between the construction and solution of the MILP models and applications
CN100530182C (zh) 一种通信系统中字符串匹配信息的处理方法
Liu et al. An overlay automata approach to regular expression matching
Weng et al. Deep packet pre-filtering and finite state encoding for adaptive intrusion detection system
Karimov et al. Application of the Aho-Corasick algorithm to create a network intrusion detection system
US20100138599A1 (en) System and method for matching patterns
Lee Hardware architecture for high-performance regular expression matching
Tang et al. RICS‐DFA: a space and time‐efficient signature matching algorithm with Reduced Input Character Set
Kastil et al. Methodology for fast pattern matching by deterministic finite automaton with perfect hashing
Sourdis Efficient and high-speed FPGA-based string matching for packet inspection
Wang High speed string matching for virus scanning-Quick Sampling and Verification
Gilbert et al. Location-Sensitive String Problems in MPC

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant