CN100417150C - 访问控制列表和安全策略数据库的方法 - Google Patents

访问控制列表和安全策略数据库的方法 Download PDF

Info

Publication number
CN100417150C
CN100417150C CNB2003101035809A CN200310103580A CN100417150C CN 100417150 C CN100417150 C CN 100417150C CN B2003101035809 A CNB2003101035809 A CN B2003101035809A CN 200310103580 A CN200310103580 A CN 200310103580A CN 100417150 C CN100417150 C CN 100417150C
Authority
CN
China
Prior art keywords
mask
rule
leaf
access control
address
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.)
Expired - Lifetime
Application number
CNB2003101035809A
Other languages
English (en)
Other versions
CN1545285A (zh
Inventor
赵洁
陈开�
陈海彬
李亚晖
丁勇
彭志威
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CNB2003101035809A priority Critical patent/CN100417150C/zh
Publication of CN1545285A publication Critical patent/CN1545285A/zh
Application granted granted Critical
Publication of CN100417150C publication Critical patent/CN100417150C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种数据通讯领域中访问控制列表和安全策略数据库的方法,包括:1.对访问控制列表或安全策略数据库的Radix树进行初始化;2.构造规则条目;3.将规则插入Radix树;4.重复第二步和第三步,将所有规则插入到Radix树中,形成整个访问控制列表或安全策略数据库;5.查询匹配的规则。本发明克服了现有技术中存在的无法自动对访问控制列表的规则条目进行排序,而必须人为控制、查询规则速度慢、系统资源浪费严重、效率低下等缺点,能够自动对规则进行排序、提高查询效率、节省系统资源。

Description

访问控制列表和安全策略数据库的方法
技术领域:
本发明涉及信息技术领域中的信息安全技术,具体的讲,涉及IP网络中实现访问控制列表或安全策略数据库的方法.
背景技术:
在计算机网络,如互联网Internet或企业内部互联网Intranet中,很多机构和企业都利用防火墙或者虚拟私有网络(Virtual Private Network-VPN)技术保护自身的私有网络,防止外部网络的恶意攻击,其中,作为最主要的一类防火墙,包过滤防火墙的安全性主要基于对包的IP地址和端口号的校验.事实上,在互联网上所有信息都是以包的形式传输的,信息包中包含了发送方和接收方的IP地址等信息.包过滤防火墙将所有通过的信息包中的发送方IP地址、接收方IP地址、上层协议、TCP(TransmissionControl Protocol,传输控制协议,传输层协议的一种)或UDP(UserDatagram Protocol,用户数据报协议,传输层协议的一种)端口、ICMP(Internet Control Message Protocol,互联网控制报文协议,用于控制IP协议)类型等信息读出,并按照预先设定的过滤规则(所有设定的过滤规则被称为访问控制列表,Access Control List-ACL)过滤信息包.那些不符合规定的信息包会被包过滤防火墙过滤掉,从而保证网络系统的安全.IP网络安全协议(即IPsec协议)用来对IP包提供机密性、完整性、抗重放攻击等保护,是VPN技术中的一种,在应用IPsec前,必须设置一些安全策略,即设定对那些IP包采取什么形式的保护.安全策略的选择逻辑通常包括源IP地址、目的IP地址、上层协议类型和端口号等.可以看出,访问控制列表和安全策略很类似,只是访问控制列表通常只有丢弃和通过两种操作,而安全策略除了这两种操作外,还有对IP包应用安全保护.
现有的大多数访问控制列表和安全策略方法都是以单向或双向链表的形式进行组织.以这种方式组织的软件或设备有RedHat Linux公司的防火墙软件ipchains和iptables、IPv6协议栈软件KAME中的IPsec安全策略管理、CISCO公司PIX防火墙的ACL.一般情况下,所有的规则都是按照一定的优先级排列成一个表,每个数据包会首先和第一条规则相比较,如果匹配,则按照策略的规定对数据包进行相应处理,否则继续与第二条规则比较,以此类推一直到表的最后.因此这种方式在进行规则匹配时效率比较低,特别是如果不能找到匹配项或者匹配规则处于表的最后,需要遍历整个表。由于进行包过滤或安全策略查询时,需要对每个IP包都进行这种查询操作,因此当表非常大,如规则达到几千条以上时,这种操作非常耗时,严重影响网络的吞吐率,事实上这种链表组织形式不适合大型规则表的情况.另外,这种表的另一个缺点是,优先次序需要人为控制,比如当某个IP包与一个包含有主机地址和一个网络地址的条目同时匹配时,可能需要把包含主机地址的条目排在前面,但当条目很多时,管理起来将非常困难.
中国专利申请02117607.8“自动按序配置访问控制列表规则的方法及其应用”提出了一种自动按序配置访问控制列表规则的方法.该方法根据系统设定的排序原则,自动计算出ACL规则位于ACL中的顺序位置,并将ACL规则按照计算出的顺序位置配置到ACL中。该专利提出的方法虽然解决了排序的问题,但必须在配置完所有规则后执行某个操作完成排序工作,并不是在加入时自动排序.
事实上,这种规则查找和路由查找有相似之处,只是路由查找只以目的IP地址进行查询,而规则查找还以源IP地址、协议类型、端口号等进行查询,查找的条件更多.路由查询的方法很多,如G.R.Wright和W.R.Stevens在1995年Addison-Wesley Publishing Company的”TCP/IPIllustrated,vol.2,”中介绍了Radix树这一特殊的二叉树,已经在Net/3、FreeBSD以及大多数高端路由器中用于组织路由表.Radix树法将查找的地址和树中的地址都看成比特序列,搜索过程从地址比特序列中最重要的位置开始,与树中结点逐个比特进行比较.一个对应比特的值指引搜索过程向左子树或者右子树进行搜索,重复此过程直到搜索到对应的路由条目.Sklower,K.1991.“A Tree-Based Packet Routing Table forBerkeley Unix”Proceedings of the 1991 Winter USENIX Conference,pp.93-99,Dallas,Tex.给出的Radix树方法和Net/1散列表的比较结构表明,用Radix树方法构造 测试树比Net/1散列表快一倍,搜索速度快三倍.但是在控制列表访问中现有技术并未采用,对于安全策略的访问,虽然Linux操作系统中的IPsec实现软件FreeS/WAN使用了Radix树做为安全策略数据库的组织方式,但策略的选择逻辑只包含了源IP地址和目的IP地址,功能上不够完备。
发明内容:
本发明的目的是克服现有技术中存在的无法自动对访问控制列表的的规则条目进行排序、查询规则速度慢、系统资源浪费严重、效率低下等缺点,以期提出一种能够自动对规则进行排序、提高查询效率、节省系统资源的访问控制列表和安全策略数据库的方法.
为实现上述目的,本发明提出了一种访问控制列表和安全策略数据库的方法,其特征在于,包括以下步骤:
一、对访问控制列表或安全策略数据库的Radix树进行初始化;
1.确定Radix树中每个叶子键值的长度;
2.初始化规则Radix树,生成三个根结点;
3.初始化掩码Radix树,生成三个根结点;
二、构造规则条目
1.设置规则的源和目的IP地址、上层协议值、源和目的端口号,地址和端口均以网络字节排序;
2.设置规则的源和目的IP地址的掩码、上层协议的掩码、源和目的端口号的掩码,地址和端口的掩码也为网络序;
3.设置规则的处理方式,包括但不限于丢弃、允许通过或者安全保密处理;
4.将以上设置的各种数据组成一个完整的规则;
三、将规则插入Radix树
1.将规则和掩码的源和目的地址、上层协议以及端口号设置为一个连续的比特串,成为规则比特串和掩码比特串;
2.如果掩码比特串在掩码Radix树中不存在,则将新的掩码插入到掩码Radix树中;
3.将新规则插入到规则Radix树中,即向树中插入内部结点和叶子两个结点;
4.如果规则Radix树中已经存在和规则比特串相同的叶子,但掩码不同,则将这种称为重复键的规则也插到Radix树中;
四、重复第二步和第三步,将所有规则插入到Radix树中,形成整个访问控制列表或安全策略数据库;
五、查询匹配的规则
1.将IP包的源和目的IP地址、上层协议类型、TCP或UDP的源和目的端口或ICMP的类型和代码依照网络序提取出来,形成一个连续的比特串,称为查找键;
2.从Radix树的顶点开始,根据查找键的值向下搜索,如果查找键中在某个内部结点所设定的比特位的值是0,则沿左分支继续搜索,否则沿右分支继续搜索一直到某个叶子处停止;
3.比较查找键与叶子对应的比特串,如果叶子的键值相同则返回,否则继续;
4.将查找键包括地址、端口和上层协议的所有内容和叶子对应的掩码逐字节相与,得到的结果再和叶子的键值比较,如果相同则返回,否则继续;
5.沿树向上移动,每次移动一层,如果遇到的内部结点含有掩码,则对查找键和该掩码进行逻辑与运算,得到一个新键值,然后以这个键值做为新的查找键,在含该掩码的内部结点为顶点的子树中进行另一次查找,看是否能找到匹配的叶子,如果找不到,则回溯过程继续沿树上移,直到到达树的顶点;如果在整个回溯过程中都找不到匹配的叶子,则说明树中没有与该IP包匹配的规则.
采用本发明所述方法,与现有技术相比,解决了目前使用线性表组织的访问控制列表或安全策略数据库中存在的查询速度慢、必须人为对规则排序的缺点.每个规则的设置条件包括源和目的IP地址、上层协议、源和目的端口构成的五元组,并且端口也可设置范围.由于每次查找规则并不需要一条一条进行比较,而是根据IP包的条件直接搜索定位,因此平均查找时间和最坏条件下的查找时间相差很少.通过在CPU为1.8G,内存为1G的计算机上进行测试,当设置5000和1万条规则对数据进行过滤时,对吞吐量的影响很小.对于64字节的小包有一些影响,但对于512字节以上的包几乎没有影响.而使用以往的技术对吞吐率的影响非常大,相比较而言,本发明所述方法的优势十分明显.
附图说明:
图1是本发明所述方法的流程图.
图2是Radix路由表键值结构与本发明所述方法中Radix树键值结构对比图.
图3是某一条规则的组织结构图.
图4是包含有4条规则的Radix树示意图。
图5是增加规则的流程图.
图6是删除规则的流程图.
图7是初始化规则后Radix树示意图。
图8是增加规则1后的Radix树示意图.
图9是包含两条规则的访问控制策略图.
具体实施方式:
下面结合附图对技术方案的实施作进一步的详细描述:
本发明所提出的是一种基于Radix树实现访问控制列表或安全策略数据库的方法,每一个规则或策略的选择逻辑包括源和目的IP地址、上层协议类型、源和目的端口号,解决了现有技术中表的规模小、查找速度慢以及规则必须人为排序的问题.本发明中规则的IP地址可以是主机地址或网络地址,另外端口号可以是某个设定的值也可以是一段取值范围.
图2是Radix路由表使用的叶子的键值结构与本文规则Radix树中键值结构的对比图.可以看出路由表的键值只包括目的IP地址,而本文中的过滤规则的键值内容更丰富.其中长度设为17,族和类型可设为0,因为这两个值实际上没有使用.需要注意的的是键值的第一个比特记为第0比特,因此,源地址的第一个比特是第32比特.
图3是一条规则的组织结构.其中叶子结构和内部结点结构用于确定规则在Radix树中的位置;条件和条件掩码的结构如图1中下半部分所示的内容;而处理方式规定了对匹配这条规则的IP包的具体处理措施,如丢弃、允许通过、用密码算法保护等.
图4是包含有4条规则的Radix树示例.方角框表示内部结点,圆角框表示叶子.全0和全1的叶子以及顶点是初始化时加入的.其他4个叶子中的内容是设定的规则条件和条件的掩码.而除顶点以外的4个内部结点内部表示的值是指测试比特位置值.用来引导查询的方向.以标有50的内部结点举例,可以看出它下面的两个叶子正好是在第50比特的位置上不同(源地址的第一个比特的位置是32),左分支的为0(0-00000000二进制),右分支的为1(33-00110011二进制).
图5是增加规则的流程图.在插入规则过程中,将规则中叶子的键值,也就是地址和端口等构成的比特串与树中与它最接近的叶子的键值相比,找到发生不同的比特位置,这个位置的值也是内部结点的测试比特值,通过这个值确定了叶子和内部结点在树中的位置。规则Radix树的掩码链表与Radix路由表的掩码链表类型,基本按连续1多的位于表的前面,少的位于后面的规律排列.掩码链表的功能是为回溯查询提供搜速方向.另外,内部结点的测试比特值与其掩码链表也有一定的关系,如果一个内部结点有掩码链表,那么它第一个掩码项的索引值取正减1后小于该结点的测试比特值,但又大于这个内部结点父结点的测试比特值。调整掩码链表遵循的就是这个规律.
图6是删除规则的流程图.其中调整掩码链表也遵循前面所说明的规律.另外,删除规则也就是将规则的叶子和内部结点从树中剥离下来。当删除某个叶子时,如果它的父结点(内部结点)不是与它一起插入的内部结点,即不属于同一个规则,还必须将当前父结点和与叶子一同插入的内部结点互换,然后再将叶子和一同插入的内部结点删除,这种情况会经常出现.
具体说来,本发明所述的访问控制列表和安全策略数据库的方法包括以下步骤:(如图1所示)
一、对访问控制列表或安全策略数据库的Radix树进行初始化;
1、确定Radix树中每个叶子键值的长度,一般情况下为源IP地址、目的IP地址、上层协议类型、源和目的端口号的长度总和,即17个字节.这里的叶子、内部结点、键值等术语与Radix路由表中对应术语的概念相同,使用的数据结构也相同,具体含义可参见″TCP/IP Illustrated,vol.2″中的有关内容;
2、初始化规则Radix树,生成三个根结点,其中顶点的测试比特位置值为32,因为源地址是从第32比特开始的,源地址的前面有4个字节的辅助信息。最左端叶子的键值为全0,最右端叶子的键值为全1;
3、初始化掩码Radix树,与规则Radix树类似,只是顶点的测试比特位置值为0.
二、构造规则条目
1、设置规则的源和目的IP地址、上层协议值、源和目的端口号,地址和端口都是以网络字节序,也就是big endian方式保存.如果协议是ICMP,源端口号和目的端口号变为类型和代码;
2、设置规则的源和目的IP地址的掩码、上层协议的掩码、源和目的端口号的掩码,地址和端口的掩码也是网络序.上层协议的掩码有两个值,一个为0,表示该规则忽略上层协议值,另一个为255,表示上层协议值必须是步骤1中设定的值.而端口的掩码可以有多种选择,但与IP地址的掩码类似,区别只是它是两个字节长,可选的值例如,0.0、255.255、255.192等,0表示忽略端口值;255.255表示端口值必须与步骤1中设定的相同;其他值与端口值配合,用来实现对端口范围的控制,例如步骤1中的源端口值设为64,掩码设为255.192,表示该规则用来限定源端口为64~127范围的数据包,其他情况在表1中说明;
3、设置规则的处理方式,如丢弃、允许通过或者一些安全保密处理,如加密和认证等;
4、将以上设置的各种数据组成一个完整的规则.
表1
三、将规则插入Radix树
1、将规则的源和目的地址、上层协议以及端口号看成一个连续的比特串,类似地,掩码也可以看成一个连续的比特串;
2、如果掩码比特串在掩码Radix树中不存在,则将新的掩码插入到掩码Radix树中,插入的过程在附图中说明;
3、将新规则插入到规则Radix树中,具体的说就是往树中插入了两个结点,一个是内部结点,一个是叶子。内部结点包含了查找时使用的比特位置值,而叶子则包含了规则的地址和掩码等信息;
4、如果规则Radix树中已经存在和规则比特串相同的叶子,但掩码不同,则将这种称为重复键的规则也插到Radix树中;
5、规则Radix树中还包含了一个掩码链表,在搜索发生回溯时使用。掩码链表被内部结点和叶子共同使用.因此由于树中插入了新的结点,因此这个掩码链表可能需要发生调整,如增加新的掩码项,如果不需要调整跳过这一步.
此步骤与一般的向RADIX路由表插入一条路由的过程类似,其中叶子的键值不只是简单的目的IP地址,还包括了源IP地址、上层协议、端口号.另外掩码也复杂一些,还会出现不连续的情况,例如:255.255.255.0255.255.255.0 0 255.255 255(这些值依次代表了源IP地址、目的IP地址、源端口、目的端口和上层协议的掩码),但掩码的索引值的计算方法路由表相同,即第一个0比特出现的位置值.
四、重复第二和三步骤,将所有规则插入到Radix树,形成整个访问控制列表或安全策略数据库,所有规则可以以任何顺序插入;
五、查询匹配的规则
1、将IP包的源和目的IP地址、上层协议类型、TCP或UDP的源和目的端口或ICMP的类型和代码按网络序提取出来,形成一个连续的比特串,称为查找键;
2、从树的顶点开始,根据查找键的值向下搜索,如果查找键中在某个内部结点所设定的比特位的值是0,则沿左分支继续搜索,否则沿右分支继续搜索一直到某个叶子处停止;
3、比较查找键与叶子对应的比特串,即叶子的键值是否完全相同,如果相同说明该IP包与该叶子对应的规则相匹配,即地址、上层协议以及掩码都和规则完全吻合,返回,否则继续;
4、将查找键包括地址、端口和上层协议的所有内容和叶子对应的掩码逐字节相与,得到的结果再和叶子的键值比较,如果相同说明找到了对应的规则,即IP包的地址属于规则设定的网络地址,或者端口属于设定的范围之内,返回,否则继续;
5、沿树向上移动,每次移动一层.如果遇到的内部结点含有掩码,则对查找键和该掩码进行逻辑与运算,得到一个新键值,然后以这个键值做为新的查找键,在含该掩码的内部结点为顶点的子树中进行另一次查找,看是否能找到匹配的叶子.如果找不到,则回溯过程继续沿树上移,直到到达树的顶点.如果在整个回溯过程中都找不到匹配的叶子,则说明树中没有与该IP包匹配的规则.
下面对于插入规则作一举例说明,假设需要插入两条规则,其具体数据如下:
源地址           目的地址       源端口   目的端口    协议
处理方式
1.192.168.1.1    192.168.2.0    0        23          17
丢弃
255.255.255.255  255.255.255.0  0        255.255     255
2.192.168.1.1    192.168.2.0    0        21          17
加密
255.255.255.255  255.255.255.0  0        255.255     255
具体的插入步骤如下:
1.初始化规则Radix树,初始化后的树见附图6;
2.生成两条规则,规则中叶子和内部结点结构的值为空,规则条件及其掩码设成上面的数据,将规则条件等看成一个连续的比特串,类似地,所有掩码也视为一个比特串,比特串以big endian方式保存,例如192.168.1.1 192.168.2.0 0 23 17从低字节到高字节的十六进制为C0 A8 01 01 C0 A8 02 00 0 0 0 17 11;
3.插入规则1
1)因为该规则包含掩码,而且掩码Radix树为空,因此将该掩码插入树中,掩码的索引值为-89(掩码的第88比特为0,-88-1=-89);
2)从Radix树的顶点开始测试规则条件比特串,首先测试第32比特,也就是源地址的第1个比特,发现为1(192对应的二进制是11000000),因此沿树的右分支继续测试,但树的右分支为叶子,因此停止测试;
3)比较叶子的键值(全1)和规则比特串,可以发现它们在第34比特处不同(192的二进制为11000000,第32和33比特为1,34比特为0);
4)将规则中内部结点的测试比特值置为34,叶子的键值和掩码置为条件比特串和掩码比特串,并将叶子和内部结点插入树中,内部结点位于顶点的右分支,规则的叶子是内部结点的左分支,因为它在第34比特为0,而全1的叶子变成了内部结点的右分支,
5)由于34小于88(掩码索引取正值并减1),因此不需要增加掩码项,增加规则1后的Radix树参见附图7;
4.插入规则2
1)规则2也包含掩码,而且和规则1相同,经过在掩码Radix树中查询发现,该掩码已经存在,因此插入掩码的步骤跳过,掩码索引值仍为-89;
2)从Radix树的顶点开始测试规则条件比特串,首先测试第32比特,发现为1,因此沿树的右分支继续测试,第二次测试第34比特,发现为0,沿左分支继续测试,由于左分支为叶子,停止测试;
3)比较叶子的键值(规则1的条件)和规则比特串,可以发现它们在第118比特处不同(23的二进制为00010111,21的二进制为00010101,21的第118比特为0,23的为1);
4)将规则中内部结点的测试比特值置为118,叶子的键值和掩码置为条件比特串和掩码比特串,并将两者插入树中,内部结点位于测试比特值是34的内部结点的左分支,叶子是内部结点的左分支,因为它在第118比特为0,规则1的叶子变成了内部结点的右分支;
5)由于内部结点测试比特值为118,大于88(掩码索引取正值并减1),因此需要向掩码链表增加新的掩码项,掩码项的掩码就是规则2的掩码,并且内部结点和叶子都指向这个掩码项,增加规则2后的Radix树参见附图8.
对于查询规则,下面再进行进一步的举例说明,以前面示例中包含两条规则的访问控制策略表(参见附图8),针对以下条件的数据包进行规则查询:
源地址           目的地址       源端口  目的端口  协议
1.192.168.1.1    192.168.2.1    1000    23        17
2.192.168.1.1    192.168.2.2    2000    21        17
3.192.168.1.1    192.168.2.3    3000    23        6
具体的查询步骤如下:
1、IP包的源和目的IP地址、上层协议类型、源和目的端口或按网络序提取出来,形成一个连续的比特串,即查找键;
2、针对IP包1查询规则
1)从Radix树的顶点开始对由IP包1形成查找键进行测试,首先测试第32比特,发现为1,沿右分支继续测试,接着测试第118比特,发现为1,也沿右分支继续测试,然而当前这个右分支是叶子,所以停止向下搜索;
2)从源地址的第一个字节开始,比较叶子的键值和查找键,发现目的地址的最后一个字节不同,说明没有完全匹配的规则,需要继续查询;
3)将叶子的掩码与查找键相与,相与的结果是:192.168.1.1192.168.2.0 0 23 17,再次比较这个比特串和键值,结果完全相同,说明已找到匹配的规则,该规则为之前插入的规则2.
3.针对IP包2查询规则
查询的过程与IP包1基本类似,IP包2查找到的规则是之前插入的规则1。
4.针对IP包3查询规则
1)从Radix树的顶点开始对由IP包2形成查找键进行测试,首先测试第32比特,发现为1,沿右分支继续测试,接着测试第118比特,发现为1,也沿右分支继续测试,然而当前这个右分支是叶子,所以停止向下搜索;
2)从源地址的第一个字节开始,比较叶子的键值和查找键,发现目的地址的最后一个字节不同,说明没有完全匹配的规则,需要继续查询;
3)将叶子的掩码与查找键相与,相与的结果是:192.168.1.1192.168.2.0 0 23 6,再次比较这个比特串和键值,结果在最后一个字节发现两者不同,因此需要沿树向上回溯查询;
4)首先向上回溯到测试比特为118的内部结点,并发现这个内部结点指向的掩码链表不为空,因此将掩码项中的掩码(也就是规则1和2的掩码)与查找键从步骤2中发现不同的字节开始相与,得到的是0 0 236,以这个比特串为新的查找键,以内部结点为树的顶点再次搜索;
5)首先测试第118比特,发现为1,找到右分支,再次与叶子比较,但叶子对应的值是0 0 23 17,不同,另外,内部结点118指向的掩码项只有一个,因此在该内部结点的回溯结束;
6)在向上回溯到测试比特值为34的内部结点,但该内部结点没有掩码链表,所以继续向上回溯一层,可已经到达树的顶点,并且顶点也没有掩码链表,所以查找结束,说明没有对应的规则.

Claims (10)

1. 一种访问控制列表和安全策略数据库的方法,其特征在于,包括以下步骤:
第一步:对访问控制列表或安全策略数据库的Radix树进行初始化;
第二步:构造规则条目;
第三步:将规则插入Radix树;
第四步:重复第二步和第三步,将所有规则插入到Radix树中,形成整个访问控制列表或安全策略数据库;
第五步:查询匹配的规则;
所述的第一步包括以下步骤:
(1.1)确定Radix树中每个叶子键值的长度;
(1.2)初始化规则Radix树,生成三个根结点;
(1.3)初始化掩码Radix树,生成三个根结点;
所述的第二步包括以下步骤:
(2.1)设置规则的源和目的IP地址、上层协议值、源和目的端口号,地址和端口均以网络字节排序;
(2.2)设置规则的源和目的IP地址的掩码、上层协议的掩码、源和目的端口号的掩码,地址和端口的掩码即为网络序;
(2.3)设置规则的处理方式,包括但不限于丢弃、允许通过或者安全保密处理;
(2.4)将以上设置的各种数据组成一个完整的规则;
所述的第三步包括以下步骤:
(3.1)将规则和掩码的源和目的地址、上层协议以及端口号设置为一个连续的比特串,成为规则比特串和掩码比特串;
(3.2)如果掩码比特串在掩码Radix树中不存在,则将新的掩码插入到掩码Radix树中;
(3.3)将新规则插入到规则Radix树中,即向树中插入内部结点和叶子两个结点;
(3.4)如果规则Radix树中已经存在和规则比特串相同的叶子,但掩码不同,则将这种称为重复键的规则也插到Radix树中;
所述的第五步进一步包括以下步骤:
(5.1)将IP包的源和目的IP地址、上层协议类型、TCP或UDP的源和目的端口或ICMP的类型和代码依照网络序提取出来,形成一个连续的比特串,称为查找键;
(5.2)从Radix树的顶点开始,根据查找键的值向下搜索,如果查找键中在某个内部结点所设定的比特位的值是0,则沿左分支继续搜索,否则沿右分支继续搜索一直到某个叶子处停止;
(5.3)比较查找键与叶子的键值,如果相同则返回,否则继续;
(5.4)将查找键包括地址、端口和上层协议的所有内容和叶子对应的掩码逐字节相与,得到的结果再和叶子的键值比较,如果相同则返回,否则继续;
(5.5)沿树向上移动,每次移动一层,如果遇到的内部结点含有掩码,则对查找键和该掩码进行逻辑与运算,得到一个新键值,然后以这个键值做为新的查找键,在含该掩码的内部结点为顶点的子树中进行另一次查找,看是否能找到匹配的叶子,如果找不到,则回溯过程继续沿树上移,直到到达树的顶点;如果在整个回溯过程中都找不到匹配的叶子,则说明树中没有与该IP包匹配的规则。
2. 根据权利要求1所述的访问控制列表和安全策略数据库的方法,其特征在于,所述的步骤(1.1)中叶子键值长度为源IP地址、目的IP地址、上层协议类型、源和目的端口号的长度总和。
3. 根据权利要求1所述的访问控制列表和安全策略数据库的方法,其特征在于,所述的步骤(1.2)三个根结点中,最左端叶子的键值为全0,最右端叶子的键值为全1。
4. 根据权利要求1所述的访问控制列表和安全策略数据库的方法,其特征在于,所述的步骤(1.3)中的三个根结点顶点的测试比特位置值为0。
5. 根据权利要求1所述的访问控制列表和安全策略数据库的方法,其特征在于,所述的步骤(2.1)中,如果规则采用的协议是ICMP协议,则源端口号和目的端口号相应更改为类型和代码。
6. 根据权利要求1所述的访问控制列表和安全策略数据库的方法,其特征在于,所述的步骤(2.2)中,上层协议的掩码有两个值,一个为0,表示该规则忽略上层协议值,另一个为255,表示上层协议值必须是步骤(2.1)中设定的值。
7. 根据权利要求1所述的访问控制列表和安全策略数据库的方法,其特征在于,所述的步骤(2.3)中的安全保密处理包括加密和认证两种方式。
8. 根据权利要求1所述的访问控制列表和安全策略数据库的方法,其特征在于,所述的步骤(3.3)中的内部结点包含查找时使用的比特位置值,叶子包含规则的地址和掩码信息。
9. 根据权利要求1所述的访问控制列表和安全策略数据库的方法,其特征在于,如增加新的掩码项,则还需要在规则Radix树中包含一个掩码链表,在搜索发生回溯时使用。
10. 根据权利要求1所述的访问控制列表和安全策略数据库的方法,其特征在于,所述第四步中,所有规则可以以任何顺序插入。
CNB2003101035809A 2003-11-11 2003-11-11 访问控制列表和安全策略数据库的方法 Expired - Lifetime CN100417150C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2003101035809A CN100417150C (zh) 2003-11-11 2003-11-11 访问控制列表和安全策略数据库的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2003101035809A CN100417150C (zh) 2003-11-11 2003-11-11 访问控制列表和安全策略数据库的方法

Publications (2)

Publication Number Publication Date
CN1545285A CN1545285A (zh) 2004-11-10
CN100417150C true CN100417150C (zh) 2008-09-03

Family

ID=34333323

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101035809A Expired - Lifetime CN100417150C (zh) 2003-11-11 2003-11-11 访问控制列表和安全策略数据库的方法

Country Status (1)

Country Link
CN (1) CN100417150C (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE514267T1 (de) * 2004-12-22 2011-07-15 Ericsson Telefon Ab L M Mittel und verfahren zur steuerung persönlicher daten
CN100393071C (zh) * 2005-06-30 2008-06-04 杭州华三通信技术有限公司 配置访问控制列表的方法及其应用
CN1897564B (zh) * 2005-07-11 2010-04-14 中兴通讯股份有限公司 基于递归流分类算法的策略路由匹配方法
CN100433009C (zh) * 2005-11-24 2008-11-12 华为技术有限公司 静态范围匹配表的管理维护方法
CN1859384B (zh) * 2005-12-29 2011-02-02 华为技术有限公司 控制用户报文通过网络隔离设备的方法
CN101515874B (zh) * 2008-02-21 2011-07-27 卓望数码技术(深圳)有限公司 网络服务器的访问控制方法及控制系统
CN104361296B (zh) * 2014-11-14 2017-03-15 武汉烽火网络有限责任公司 一种并行的大容量访问控制列表的查找方法
CN105187436B (zh) * 2015-09-25 2019-03-08 中国航天科工集团第二研究院七〇六所 一种基于散列表的包过滤主机网络控制方法
CN109587117B (zh) * 2018-11-09 2021-03-30 杭州安恒信息技术股份有限公司 一种全网udp端口扫描的防重放攻击方法
CN109617927B (zh) * 2019-01-30 2021-04-16 新华三信息安全技术有限公司 一种匹配安全策略的方法及装置
CN116132187B (zh) * 2023-02-23 2024-05-14 北京京航计算通讯研究所 一种数据包过滤方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860011A (en) * 1996-02-29 1999-01-12 Parasoft Corporation Method and system for automatically checking computer source code quality based on rules
JP2001339436A (ja) * 2000-05-30 2001-12-07 Nippon Telegr & Teleph Corp <Ntt> プレフィックスを含む複数アドレスによる連想情報探索方法及び装置
US6493706B1 (en) * 1999-10-26 2002-12-10 Cisco Technology, Inc. Arrangement for enhancing weighted element searches in dynamically balanced trees
WO2003001318A2 (en) * 2001-06-26 2003-01-03 Allot Communications Ltd. Method for filter selection and array matching

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860011A (en) * 1996-02-29 1999-01-12 Parasoft Corporation Method and system for automatically checking computer source code quality based on rules
US6493706B1 (en) * 1999-10-26 2002-12-10 Cisco Technology, Inc. Arrangement for enhancing weighted element searches in dynamically balanced trees
JP2001339436A (ja) * 2000-05-30 2001-12-07 Nippon Telegr & Teleph Corp <Ntt> プレフィックスを含む複数アドレスによる連想情報探索方法及び装置
WO2003001318A2 (en) * 2001-06-26 2003-01-03 Allot Communications Ltd. Method for filter selection and array matching

Also Published As

Publication number Publication date
CN1545285A (zh) 2004-11-10

Similar Documents

Publication Publication Date Title
CN101345759B (zh) 关联存储器中的因特网协议安全性匹配值
CN100417150C (zh) 访问控制列表和安全策略数据库的方法
US7394809B2 (en) Method and apparatus for packet classification using a forest of hash tables data structure
US20200084141A1 (en) Methods and systems for network security universal control point
US6917946B2 (en) Method and system for partitioning filter rules for multi-search enforcement
US20130036102A1 (en) Incremental update
US20100088756A1 (en) Multi-pattern packet content inspection mechanisms employing tagged values
US20030212900A1 (en) Packet classifying network services
CN101494649A (zh) 包含安全性关联处理器的虚拟专用网络机制
EP1738543A1 (en) Apparatus and method for two-stage packet classification using most specific filter matching and transport level sharing
WO2008002590A2 (en) System, method and apparatus for protecting a network or device against high volume attacks
US20060137011A1 (en) System and method for coping with encrypted harmful traffic in hybrid IPv4/IPv6 networks
WO2006002220A2 (en) Security association configuration in virtual private networks
EP1357722A1 (en) Method for controlling network access for fragments
WO2010121249A2 (en) Methods, systems, and computer readable media for performing flow compilation packet processing
US8873555B1 (en) Privilege-based access admission table
Macián et al. An evaluation of the key design criteria to achieve high update rates in packet classifiers
US10205658B1 (en) Reducing size of policy databases using bidirectional rules
CN100477626C (zh) 全状态路由器及其实现方法
Lu et al. Packet classification using two-dimensional multibit tries
KR20190112918A (ko) 고성능 보안 라우터를 지원하기 위한 통합 패킷 분류 방법 및 시스템
JP3591426B2 (ja) プレフィックスを含む複数アドレスによる連想情報探索方法及び装置
Hsieh et al. A novel dynamic router-tables design for IP lookup and update
Jeong et al. A multi-dimension rule update in a tcam-based high-performance network security system
Blaho et al. Memory optimization for packet classification algorithms

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
CX01 Expiry of patent term

Granted publication date: 20080903

CX01 Expiry of patent term