批处理包过滤防火墙的实现方法

文档序号:10515509阅读:234来源:国知局
批处理包过滤防火墙的实现方法
【专利摘要】本发明公开一种批处理包过滤防火墙的实现方法,包括:规则库的分类、规则的协议类型的压缩处理、规则的端口号的压缩处理、符号OBDD刻画、数据包头信息的预处理、数据包头信息与规则库的匹配。本发明通过对规则和传入数据包的预处理,使得二者可以节省存储空间并更高效和有针对性的进行匹配,使得防火墙在过滤数据包时花费更少的节点比较次数,达到节省内存和加快匹配的效果。
【专利说明】
批处理包过滤防火墙的实现方法
技术领域
[0001] 本发明设及网络安全技术领域,具体设及一种批处理包过滤防火墙的实现方法。
【背景技术】
[0002] 计算机防火墙是指在外部网络和用户计算机之间设置防火墙。计算机防火墙也可 W是用户计算机的一部分。计算机防火墙检测接口规程、传输协议、目的地址和/或被传输 的信息结构等,将不符合规定的进入信息剔除。计算机防火墙对用户计算机输出的信息进 行检查,并加上相应协议层的标志,用W将信息传送到接收用户计算机(或网络)中去。
[0003] 随着Internet的迅速发展和广泛应用,持续增加的网络攻击(包括无意识行为和 恶意行为)使得防火墙技术成为网络安全领域的研究热点之一。与其他类型的防火墙相比, 包过滤防火墙具有更易实现、过滤速度快、对用户和应用程序透明、开发成本低等优势,所 W包过滤防火墙的应用十分的广泛。包过滤技术实质上是一种数据包分类技术,通过传入 防火墙的数据包的包头信息和规则库的规则匹配进而决策接受或者拒绝该数据包。然而, 随着对网络安全的要求越来越高,防火墙的规则库条目的不断增多,对防火墙技术提出了 新的要求。目前包过滤防火墙的研究集中在优化规则库的结构和改进数据包的过滤方式 上。
[0004] 目前就包过滤防火墙的规则库结构有:
[0005] (1)基于线性列表方法:规则库中的规则按顺序的方式连续存储,对传入的数据包 过滤时规则库对传入的数据包头信息按照顺序依次匹配,直到匹配到对应的数据包并执行 相应的操作(接受或者拒绝)。若匹配完所有的规则没有与之匹配的规则,则采用默认操作 (一般为丢弃该数据包)。该方法存在不确定性,若数据包命中过多规则库排序靠后的规则 会导致匹配效率降低。
[0006] (2)基于动态线性列表方法:在基于线性列表方法的基础上加入了动态排序,按照 规则匹配的命中率对规则库重新排列,减少了规则的匹配时间,提高了匹配效率。该方法在 一定程度上缓解了基于线性列表方法的缺陷,但随着规则条目的增多,更新规则库也会带 来很大的开销。
[0007] (3)基于0BDD方法:使用符号技术重新设计了规则库的结构,在位级别消除了规则 的冗余,降低了存储空间,并减少了节点比较的次数,提高了匹配效率。该方法引入了0BDD, 但其104位的深度使得匹配的效率优待提高,并且单个数据包的过滤方式也限制的0BDD的 优势,进一步限制了匹配的效率。

【发明内容】

[000引本发明所要解决的技术问题是提供一种批处理包过滤防火墙的实现方法,其基于 0抓D-LIST(0rder Binary Decision Diagram-LIST,有序二叉决策图与列表的混合结构), 其能够压缩一般0BDD结构的规则库的深度,同时可W批处理进入防火墙的数据包。
[0009]为解决上述问题,本发明是通过W下技术方案实现的:
[0010] 批处理包过滤防火墙的实现方法,包括步骤:
[0011] 步骤A.将规则库中的规则使用布尔变量表示;
[0012] 步骤B.将规则库中的规则按照协议类型的不同分类;即
[0013] 步骤B1.将协议类型为通配符的规则,单独列出来;
[0014] 步骤B2.将协议类型为TCP、UDP和ICMP的规则,依据其协议类型分为TCP、UDP和 ICMP^ 类;
[0015] 步骤B3.将协议类型为其他类型的规则,使用线性列表列在一起;
[0016] 步骤B4.将步骤B1协议类型为通配符的规则同时归入TCP、UDP和ICMP类中,并同时 将其存入其他类型的线性列表中;
[0017] 步骤C.将协议类型为TCP、UDP、ICMP和通配符的规则的源端口和目的端口进行压 缩处理;
[0018] 步骤D.将压缩后的规则库刻画为有序二叉决策图和线性列表混合结构;即
[0019] 步骤D1.将协议类型为TCP、UDP、ICMP和通配符的规则刻画为有序二叉决策图;
[0020] 步骤D2.对步骤D1生成的所有有序二叉决策图,将其两两析取合成为1个新的有序 二叉决策图;
[0021] 步骤D3.将步骤D2生成的所有新的有序二叉决策图,将其两两析取合成为1个更新 的有序二叉决策图;
[0022] 步骤D4.反复执行步骤D3,直到将协议类型为TCP、UDP、ICMP和通配符的规则析取 合成为1个整的有序二叉决策图;
[0023] 步骤D5.将协议类型为TCP、UDP、ICMP和通配符的规则所形成的有序二叉决策图与 协议类型为其他类型的规则所形成的线性列表,共同组成有序二叉决策图和线性列表混合 结构;
[0024] 步骤E.依据步骤A-D相同的处理方式,让进入防火墙的数据的包头信息等同于规 则库中的规则,将进入防火墙的数据的包头信息批次地处理为有序二叉决策图和/或线性 列表;
[0025] 步骤F.将进入防火墙的数据的包头信息的有序二叉决策图和/或线性列表分别与 对应的规则库中的有序二叉决策图和线性列表混合结构进行合取和匹配,根据结果采取相 应的动作,即允许数据或拒绝数据通过防火墙。
[00%] 所述步骤E,包括步骤:
[0027]步骤E1.分批次缓存传入防火墙的数据的包头信息;
[00%]步骤E2.将包头信息使用布尔变量表示;
[0029] 步骤E3.将包头信息按照协议类型的不同分类;即
[0030] 步骤E31.将协议类型为通配符的包头信息,单独列出来;
[0031] 步骤E32.将协议类型为TCP、UDP和ICMP的包头信息,依据其协议类型分为TCP、UDP 和ICMPS类;
[0032] 步骤E33.将协议类型为其他类型的包头信息,使用线性列表列在一起;
[0033] 步骤E34.将步骤E31协议类型为通配符的包头信息同时归入TCP、UDP和ICMP类中, 并同时将其存入其他类型的线性列表中;
[0034] 步骤E4.将协议类型为TCP、UDP、ICMP和通配符的包头信息的源端口和目的端口进 行压缩处理;
[0035] 步骤E5.将压缩后的包头信息库刻画为有序二叉决策图和线性列表混合结构;即
[0036] 步骤E51.将协议类型为TCP、UDP、ICMP和通配符的包头信息刻画为有序二叉决策 图;
[0037] 步骤E52.对步骤E51生成的所有有序二叉决策图,将其两两析取合成为1个新的有 序二叉决策图;
[0038] 步骤E53.将步骤E52生成的所有新的有序二叉决策图,将其两两析取合成为1个更 新的有序二叉决策图;
[0039] 步骤E54.反复执行步骤E53,直到将协议类型为TCP、UDP、ICMP和通配符的包头信 息析取合成为1个整的有序二叉决策图。
[0040] 所述步骤A,包括步骤:
[0041] 步骤A1.将规则库中的每条规则中的元素即协议类型、源IP地址、源端口、目的IP 地址和目的端口进行排序;
[0042] 步骤A2.使用8位布尔变量表示协议类型,使用32位布尔变量表示源IP地址,使用 16位布尔变量表示源端口,使用32位布尔变量表示目的IP地址,使用16位布尔变量表示目 的端口。
[0043] 步骤A1中,每条规则的元素按照协议类型,源IP地址,源端口,目的IP地址和目的 端口进行依次排序。
[0044] 所述步骤C,包括步骤:
[0045] 步骤C1.当规则的协议类型为TCP、UDP和ICMP时,则将该规则的协议类型压缩为用 2位布尔变量表示;
[0046] 步骤C2.当规则的协议类型为通配符时,则将该规则的协议类型压缩为用2位通配 符表示;
[0047] 步骤C3.将协议类型为TCP、UDP、ICMP和通配符的规则的源端口和目的端口的布尔 变量使用11位布尔表达式表示。
[0048] 步骤D中,对协议类型为通配符的规则所对应的有序二叉决策图进行合成时,需要 跳过该规则的协议类型运一元素,直接从下一个元素开始析取合成。
[0049] 步骤D中,当上一次迭代的有序二叉决策图的个数为奇数时,则将上一次迭代余下 的那个有序二叉决策图与本次迭代的任意一个有序二叉决策图析取合成为1个新的有序二 叉决策图。
[(K)加]所述步骤F,包括步骤:
[0051] 步骤F1.将生成有序二叉决策图的包头信息与规则库中的有序二叉决策图和线性 列表混合结构中的有序二叉决策图部分进行合取操作;得到的结果中指向"Γ叶子节点的 数据为决策通过,即允许该数据通过防火墙;得到的结果中指向"0"叶子节点的数据为决策 拒绝,即拒绝该数据通过防火墙;
[0052] 步骤F2.将生成线性列表中的包头信息与规则库的有序二叉决策图和线性列表混 合结构中的线性列表部分进行匹配操作;如果有与之匹配的规则,根据规则的决策采取相 应动作,若决策为允许则允许该数据通过防火墙,若决策为拒绝则拒绝该数据通过防火墙; 如果没有与之匹配的规则,则直接拒绝该数据。
[0053] 与现有技术相比,本发明具有如下特点:
[0054] 1.利用规则库的特征将协议类型和端口号的位数压缩,有效降低了0BDD的深度, 降低了存储的空间;
[0055] 2.防火墙规则库的结构为符号0BDD与线性列表的混合结构(0抓D-LIST),优化了 规则库的结构,降低了 0BDD的宽度和深度,提高了匹配的效率;
[0056] 3.过滤方式采用了批处理的思想,将批量数据包刻画为0BDD-LIST再与规则库匹 配,有效降低了节点比较次数。
【附图说明】
[0057] 图1为基于0B孤-LIST的批处理包过滤算法的流程图。
[0058] 图2为本发明的基于符号0BDD的包过滤防火墙规则库的一个示例模型。
[0059] 图3为本发明的数据包头信息的预处理流程图。
【具体实施方式】
[0060] 为了使本发明的技术方案及优点更加清楚明白,结合附图及实施例,对本发明进 一步的详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定 本发明。
[0061 ] -种批处理包过滤防火墙的实现方法,包括步骤:
[0062] 阶段I.将规则库刻画为0B孤-LIST结构。
[0063] 步骤A.将规则库中的规则使用伪布尔函数表示;
[0064] 步骤B.将规则库中的规则按照协议类型的不同分类;
[0065] 步骤C.将协议类型和端口号进行压缩处理;
[0066] 步骤D.将压缩后的规则库刻画为有序二叉决策图和线性列表的混合结构(0抓D- LIST,0rder Bin曰ry Decision Di曰gram);
[0067] 阶段II.将传入的数据包批处理的刻画为OBDD-LIST结构。
[0068] 步骤E.将进入防火墙的数据包头信息批次地处理为0BDD-LIST结构;
[0069] 阶段III.将处理后的包头信息与规则库进行匹配,得出结果。
[0070] 步骤F.预处理后的包头信息与规则库进行匹配,得出相应的操作结果。
[0071 ]所述步骤A,具体包括步骤:
[0072] 步骤A1.将规则库中规则元素排序为<协议类型,源IP地址,源端口,目的IP地址, 目的端口〉;
[0073] 步骤A2.使用8位布尔变量表示协议类型,使用32位布尔变量表示源IP地址,使用 16位布尔变量表示源端口,使用32位布尔变量表示目的IP地址,使用16位布尔变量表示目 的端口;
[0074] 步骤A3.将处理过的规则库保存在相应文件中等待进一步处理。
[00巧]所述步骤B,具体包括步骤:
[0076] 步骤B1.依据协议类型为TCP,UDP,ICMP将相应的规则分类;
[0077] 步骤B2.协议类型为通配符(Wild化rd)的规则单独列出来;
[0078] 步骤B3.协议类型为其他类型的使用线性列表列在一起;
[0079] 步骤B4.将协议类型为通配符的规则分别放入存放TCP,UDP,ICMP和其他类型的线 性列表。
[0080] 所述步骤C,具体包括步骤:
[0081 ]步骤C1.将协议类型为TCP,UDP,ICMP的布尔变量压缩为两位布尔变量表示;
[0082] 步骤C2.将协议类型为通配符的使用**表示,在生成0B孤-LIST结构时直接跳过前 两位,从第Ξ位开始析取合成;
[0083] 步骤C3.将源端口和目的端口的布尔变量使用11位布尔表达式表示,其中前十位 布尔表达式代表的范围表示公用端口,剩下的表示动态端口范围。
[0084] 所述步骤D,具体包括步骤:
[0085] 步骤D1.将协议类型为TCP,UDP,ICMP和通配符的规则刻画为0B孤结构;步骤D2.将 第1条规则与第2条规则析取生成0BDD结构,第3条规则与第4条规则析取生成0BDD结构,依 次类推;
[0086] 步骤D3 .在一次生成后,将第1个0B孤与第2个0BDD析取生成新的0BDD结构,第3个 0BDD与第4个0BDD析取生成新的0BDD结构,依次类推;
[0087] 步骤D4.反复执行步骤D3,直到将规则库析取为一个0BDD结构;
[00则步骤D5.线性列表中储存协议类型为其他类型(非TCP,UDP,ICMP)的规则,与步骤 D4生成的0B孤结构共同组成0B孤-LIST结构。
[0089] 所述步骤E,具体包括步骤:
[0090] 步骤E1.缓存传入防火墙的10000个数据包头信息(由<协议类型,源IP地址,源端 口,目的IP地址,目的端口〉组成);
[0091] 步骤E2.将传入的包头信息使用布尔表达式表示(参考步骤A);
[0092] 步骤E3.将包头信息按照协议类型的不同分类为TCP, UDP,ICMP,通配符 (Wild化rd)和其他类型(参考步骤B);
[0093] 步骤E4.将TCP,UDP,ICMP的布尔表达式进行压缩(参考步骤C);
[0094] 步骤E5.将源端口和目的端口的布尔表达式进行压缩(参考步骤C);
[00M]步骤E6.将处理好对应协议类型的信息生成0BDD结构(参考步骤D);
[0096] 步骤E7.将对应协议类型的包头信息储存在线性列表中(参考步骤D);
[0097] 所述步骤F,具体包括步骤:
[0098] 步骤F1.将生成的0BDD结构的包头信息与规则库中的0BDD部分进行合取操作,得 出结果;
[0099] 步骤F2.将线性列表中的包头信息与规则库的线性列表中的规则依次进行匹配, 得出结果。
[0100] 本发明公开了一种基于符号0BDD-LIST(有序二叉决策图和线性列表的混合结构) 的批处理包过滤防火墙的实现方法,包括:规则库的分类、规则的协议类型的压缩处理、规 则的端口号的压缩处理、符号0BDD刻画、数据包头信息的预处理、数据包头信息与规则库的 匹配。本发明通过对规则和传入数据包的预处理,使得二者可W节省存储空间并更高效和 有针对性的进行匹配,使得防火墙在过滤数据包时花费更少的节点比较次数,达到节省内 存和加快匹配的效果。
[0101 ]下面通过一个具体的实例对本发明进行进一步详细说明:
[0102] 本实例需输入规则列表<1。9,202.135.65.44,80,143.56.26.112,156〉…<udp, 165.212.36.5,1325,223.56.11.52,56〉,其中包含元素<协议类型,源IP地址,源端口,目的 IP地址,目的端口〉,将规则列表表示为布尔表达式,然后生成对应的0BDD-LIST结构,传入 防火墙的若干数据包头信息 < …〉采取同样的操作,最后与规则库匹配操作,输出过滤结果。
[0103] 图1为本发明基于符号0BDD-LIST的批处理包过滤防火墙的实现方法的实施例流 程图。参照图1,本发明提出的实现方法包括如下Ξ个阶段,具体步骤为:
[0104] 阶段I,将规则库刻画为0BDD-LIST结构。
[0105] 表1为本发明的基于符号0BDD的包过滤防火墙规则库使用布尔变量表示的一个示 例模型。图2为表1所对应的0BDD图。
[0106] 表1使用布尔变量表示
[0107]
[0108] 步骤1,对于规则各域重新排序,变量序重排为<协议类型,源IP地址,源端口,目的 IP地址,目的端口〉;
[0109] 步骤2,使用布尔变量表示规则,第一条规则中TCP协议号为6,整条规则表示为布 尔表达式为P〇 = X〇' · XI' · X2' · X3' · X4' · X已· X6 · X"/ · X8 · X9 · ΧΙΟ' · Xll' · Xl2 · Xl3' · X14 · XI已/ · X16 · Xl?/ · Χ18^ · Xl/ · X2(/ · X21 · X22 · X23 · X24/ · X2已· X2s/ · X2?/ · Χ28^ · X29' · X30' · X31 · X32' · X33' · X34 · X3已'· X36 · X37 · X38' · X39' · X40' · X41' · X42' · X43' · X44' · X4己'· X46' · X47' · X48' · X49 · X己0' · X己 1 · X己2' · X己3' · X己4' · X己己'· X己6 · X己7' · X己8' · X已9^ · X60 · X61 · X62 · X63 · X64/ · X6已/ · X66 · X67 · X68 · Xsg/ · X7(/ · X?/ · X72/ · X73/ · X74/ · X7已· X76 · X77/ · X78 · X79/ · X8(/ · X81 · X82 · X83 · X84/ · X8已/ · XSS^ · X87/ · Χ88^ · Χ89^ · X9(/ · X9/ · X92^ · X93^ · X9/ · X9已/ · X96 · X9?/ · Χ98^ · X99 · XlOO · XlOl · X102' · X103' 或<00000110110010101000011101000001001011000000000001010000100011110011100000 011010011100000000000010011100〉,其他规则^此方式表示;
[0110] 步骤3,读取规则的前八位布尔变量,查看是否为Ptgp = X(/ · x/ · ·村/ · x/ · X5 · X6 · X7/ (TCP),若是则将其压缩为00表示,并将该规则存储到OBDD的文件中;
[0111] 步骤4,读取规则的前八位布尔变量,查看是否为P〇 = X(/ · x/ · · X3 · x/ · X5/ *站/ -X7(UDP),若是则将其压缩为01表示,并将该规则存储到OBDD的文件中;
[0112] 步骤5,读取规则的前八位布尔变量,查看是否为P〇 = X(/ · x/ · X2^ · · X4^ · Χ5/ · · X7(ICMP),若是则将其压缩为10表示,并将该规则存储到OBDD的文件中;
[0113] 步骤6,读取规则的前八位布尔变量,查看是否为********(通配符),若是则将其 压缩为**表示,并将该规则存储到0BDD的文件中;
[0114] 步骤7,读取规则的前八位布尔变量,查看是否为X(/ · x/ · · X3^ · X4^ · X5 · X6 · X7' (TCP)或者X〇' · XI' · X2' · X3 · X4' · X5' · X6' · X7(UDP)或者X〇' · XI' · X2' · X3' · x/ ·Χ7(ΚΜΡ),若都不是则将其存储到线性列表的文件中;
[0115] 步骤8,读取规则的源端口的布尔变量,将其从16个压缩到11个,即使用11个布尔 变量表示原来的端口号;
[0116] 步骤9,读取规则的目的端口的布尔变量,将其从16个压缩到11个;
[0117] 步骤10,将0BDD文件中的规则逐步刻画为0BDD结构,例如第一条规则刻画为0BDD 结构:第一个值为0,根节点指向左分支,第二个值为0则继续指向其左分支;若接下来值为 1,则指向其右分支,终结点指向决策,若该条规则决策为允许,则指向右分支的叶子节点1; 若该条规则决策为拒绝,在指向左分支的叶子节点0;
[0118] 步骤11,将规则库中的所有规则析取为一个整的0BDD结构。即:
[0119] 1)将所有规则逐步析取,第一条规则与第二条规则析取,第Ξ条规则与第四条规 则析取,依次类推,将第n-1条规则与第η条规则析取生成一个0BDD结构;其中η为规则库中 规则的条数;
[0120] 2)完成上一个过程后,新的第一个0BDD与第二个0BDD析取,依次类推,将第m-1个 0BDD结构与第m个0BDD结构析取生成1个新的0BDD结构;其中m为经过前一次迭代生成的新 的0BDD结构的个数;
[0121] 3)重复迭代步骤2),依次析取,直到将规则库析取为一个整的0BDD结构。
[0122] 步骤12,如此新的规则库就由0BDD文件中的0BDD图和列表文件中的线性列表组 成,称为0BDD-LIST规则库;至此,阶段I结束。
[0123] 阶段II,将传入的数据包批处理的刻画为0B孤-LIST结构。
[0124] 步骤13,将传入的数据包头信息缓存入缓存器;
[0125] 步骤14,将传入的数据包头信息进行预处理,参考步骤1-11,至此阶段II结束。 [01%]阶段III,预处理后的包头信息与规则库进行匹配,得出结果。
[0127] 步骤15,预处理的包头信息的0BDD模块与规则库中的0BDD模块合取操作,得到的 结果中指向"Γ叶子节点的为决策通过数据包,指向"0"叶子节点的为拒绝数据包;
[0128] 步骤16,预处理的数据包头信息的线性列表模块与防火墙规则库的线性列表模块 线性匹配,如果有与之匹配的规则,根据规则的决策采取相应动,若决策为允许则允许数据 包通过防火墙,若决策为拒绝则拒绝数据包;如果没有与之匹配的规则,则直接拒绝该数 据。
[0129] 图3为本发明实施例关于传入防火墙的数据包的预处理的流程图,其过程与阶段I 较为类似,本发明选取10000条数据包进行预处理,实际应用中不限于此数量,可参考实际 运算速度设置。
[0130] 本发明的基于0BDD-LIST的批处理包过滤防火墙的实现方法,可W降低规则库的 图形深度并简化节点存储,批处理数据包可W加快匹配速度,提高算法的性能。
[0131] 本说明书采用递进的方式描述,对每个方法及每个阶段依次详细地按步骤进行了 说明。专业人员可W进一步意识到,结合本文中所公开的实施例各个阶段的算法步骤,能够 W电子硬件、计算机软件或者二者结合的方式来实现。通过结合附图对本发明具体实施例 的描述,本发明的其他方面及特征对本领域的技术人员而言是显而易见的。
[0132] W上对本发明的具体实施例进行了描述和说明,运些实施例应被认为只是示例性 的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。
【主权项】
1. 批处理包过滤防火墙的实现方法,其特征在于,包括步骤: 步骤A.将规则库中的规则使用布尔变量表示; 步骤B.将规则库中的规则按照协议类型的不同分类;即 步骤B1.将协议类型为通配符的规则,单独列出来; 步骤B2.将协议类型为TCP、UDP和ICMP的规则,依据其协议类型分为TCP、UDP和ICMP三 类; 步骤B3.将协议类型为其他类型的规则,使用线性列表列在一起; 步骤Μ.将步骤B1协议类型为通配符的规则同时归入TCP、UDP和ICMP类中,并同时将其 存入其他类型的线性列表中; 步骤C.将协议类型为TCP、UDP、ICMP和通配符的规则的源端口和目的端口进行压缩处 理; 步骤D.将压缩后的规则库刻画为有序二叉决策图和线性列表混合结构;即 步骤D1.将协议类型为TCP、UDP、ICMP和通配符的规则刻画为有序二叉决策图; 步骤D2.对步骤D1生成的所有有序二叉决策图,将其两两析取合成为1个新的有序二叉 决策图; 步骤D3.将步骤D2生成的所有新的有序二叉决策图,将其两两析取合成为1个更新的有 序二叉决策图; 步骤D4.反复执行步骤D3,直到将协议类型为TCP、UDP、ICMP和通配符的规则析取合成 为1个整的有序二叉决策图; 步骤D5.将协议类型为TCP、UDP、ICMP和通配符的规则所形成的有序二叉决策图与协议 类型为其他类型的规则所形成的线性列表,共同组成有序二叉决策图和线性列表混合结 构; 步骤E.依据步骤A-D相同的处理方式,让进入防火墙的数据的包头信息等同于规则库 中的规则,将进入防火墙的数据的包头信息批次地处理为有序二叉决策图和/或线性列表; 步骤F.将进入防火墙的数据的包头信息的有序二叉决策图和/或线性列表分别与对应 的规则库中的有序二叉决策图和线性列表混合结构进行合取和匹配,根据结果采取相应的 动作,即允许数据或拒绝数据通过防火墙。2. 根据权利要求1所述的批处理包过滤防火墙的实现方法,其特征在于:步骤E具体包 括步骤: 步骤E1.分批次缓存传入防火墙的数据的包头信息; 步骤E2.将包头信息使用布尔变量表示; 步骤E3.将包头信息按照协议类型的不同分类;即 步骤E31.将协议类型为通配符的包头信息,单独列出来; 步骤E32.将协议类型为TCP、UDP和ICMP的包头信息,依据其协议类型分为TCP、UDP和 ICMP三类; 步骤E33.将协议类型为其他类型的包头信息,使用线性列表列在一起; 步骤E34.将步骤E31协议类型为通配符的包头信息同时归入TCP、UDP和ICMP类中,并同 时将其存入其他类型的线性列表中; 步骤E4.将协议类型为TCP、UDP、ICMP和通配符的包头信息的源端口和目的端口进行压 缩处理; 步骤E5.将压缩后的包头信息库刻画为有序二叉决策图和线性列表混合结构;即 步骤E51.将协议类型为TCP、UDP、ICMP和通配符的包头信息刻画为有序二叉决策图; 步骤E52.对步骤E51生成的所有有序二叉决策图,将其两两析取合成为1个新的有序二 叉决策图; 步骤E53.将步骤E52生成的所有新的有序二叉决策图,将其两两析取合成为1个更新的 有序二叉决策图; 步骤E54.反复执行步骤E53,直到将协议类型为TCP、UDP、ICMP和通配符的包头信息析 取合成为1个整的有序二叉决策图。3. 根据权利要求1或2所述的批处理包过滤防火墙的实现方法,其特征在于:步骤A具体 包括步骤: 步骤A1.将规则库中的每条规则中的元素即协议类型、源IP地址、源端口、目的IP地址 和目的端口进彳丁排序; 步骤A2.使用8位布尔变量表示协议类型,使用32位布尔变量表示源IP地址,使用16位 布尔变量表示源端口,使用32位布尔变量表示目的IP地址,使用16位布尔变量表示目的端 □ 〇4. 根据权利要求3所述的批处理包过滤防火墙的实现方法,其特征在于:步骤A1中,每 条规则的元素按照协议类型,源IP地址,源端口,目的IP地址和目的端口进行依次排序。5. 根据权利要求1或2所述的的批处理包过滤防火墙的实现方法,其特征在于:步骤C具 体包括步骤: 步骤C1.当规则的协议类型为TCP、UDP和ICMP时,则将该规则的协议类型压缩为用2位 布尔变量表示; 步骤C2.当规则的协议类型为通配符时,则将该规则的协议类型压缩为用2位通配符表 示; 步骤C3.将协议类型为TCP、UDP、ICMP和通配符的规则的源端口和目的端口的布尔变量 使用11位布尔表达式表不。6. 根据权利要求1或2所述的批处理包过滤防火墙的实现方法,其特征在于:步骤D中, 对协议类型为通配符的规则所对应的有序二叉决策图进行合成时,需要跳过该规则的协议 类型这一元素,直接从下一个元素开始析取合成。7. 根据权利要求1或2所述的批处理包过滤防火墙的实现方法,其特征在于:步骤D中, 当上一次迭代的有序二叉决策图的个数为奇数时,则将上一次迭代余下的那个有序二叉决 策图与本次迭代的任意一个有序二叉决策图析取合成为1个新的有序二叉决策图。8. 根据权利要求1或2所述的批处理包过滤防火墙的实现方法,其特征在于:步骤F具体 包括步骤: 步骤F1.将生成有序二叉决策图的包头信息与规则库中的有序二叉决策图和线性列表 混合结构中的有序二叉决策图部分进行合取操作;得到的结果中指向"Γ叶子节点的数据 为决策通过,即允许该数据通过防火墙;得到的结果中指向"0"叶子节点的数据为决策拒 绝,即拒绝该数据通过防火墙; 步骤F2.将生成线性列表中的包头信息与规则库的有序二叉决策图和线性列表混合结 构中的线性列表部分进行匹配操作;如果有与之匹配的规则,根据规则的决策采取相应动 作,若决策为允许则允许该数据通过防火墙,若决策为拒绝则拒绝该数据通过防火墙;如果 没有与之匹配的规则,则直接拒绝该数据。
【文档编号】H04L29/06GK105871856SQ201610224777
【公开日】2016年8月17日
【申请日】2016年4月12日
【发明人】徐周波, 陈帅, 常亮, 王亚南, 暴雨欣, 王敏
【申请人】桂林电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1