一种spd访问方法

文档序号:6403036阅读:257来源:国知局
专利名称:一种spd访问方法
技术领域
本发明属于因特网安全技术领域,尤其涉及一种SPD (Security PolicyDatabase,安全策略数据库)访问方法。
背景技术
IPSec (Internet协议安全性)是由ffiTF (Internet工程任务组)提出的基于密码学的安全的开放网络安全协议。它工作在IP层,提供访问控制、无连接的完整性、数据源认证、机密性保护、有限的数据流机密性保护以及抗重放攻击等安全服务,其在网络安全领域得到了广泛的应用。IPSec为了给需要受保护的数据流提供安全服务需要协商SA (SecurityAssociation,安全关联),而SA通过维护安全策略数据库(SF1D)和安全关联数据库(SAD)来实现对数据流的保护。其中sro指定了应用在到达或者来自某特定主机或者网络的数据流的策略。SAD包含每一个SA的参数消息。对于外出包,SPD决定对一个特定的数据包使用什么SA ;对于进入包,SAD决定怎样对特定的数据包做处理。SH)负责维护IPSec策略,区分通信流,确定哪些需要应用IPSec保护,哪些允许绕过IPSec,哪些是需要丢弃的。“保护”(protect)表示对外出或进入的包应用安全服务,同时要求进入的包已应用了安全服务;“绕过(bypass)”表示不对这个包应用安全服务;“丢弃”代表不让这个包进入或离开。sro中包含了一个策略条目的有序列表,对那些定义了“protect”行为的SH)条目,均会指向一个SA或SA集束。IPSec协议要求进入或离开IPSec协议栈的每个包都必须查询SPD。因此,在IPSec处理过程中需要进行大量的SH)查找工作,那么查找速度的快慢将成为IPSec处理数据流效率的瓶颈。目前IPSec安 全策略库的查找技术主要采用软件的方法实现,例如,在Linux2.6内核中,IPSec的sro采用了动态Hash (哈希)表的结构来实现,该算法将选择符作为Hash函数的关键字进行地址映射,采用链式方法解决冲突,该方法性能的优劣很大程度上取决与Hash函数的选取。实际上,这种Hash表的数据结构已经是软件方法所能实现的较高效率的SH)访问了,但是,其对SPD的处理速度也只能达到微妙级的水平,采用软件方法改进数据结构来提高Sro查找速度已经很难了。因此提供一种全新的sro访问方式,以提高查找SPD的速度成为本领域人员亟需解决的问题。

发明内容
有鉴于此,本发明实施例提供一种sro访问方法,以提高查找SPD的速度。为实现上述目的,本发明实施例提供如下技术方案:一种sro访问方法,包括:通过预先确定的规则匹配有限状态机FSA布置当前的规则匹配FSA查找引擎;所述规则匹配FSA为存储有若干段比特段的树形结构数据,一个树形结构数据的节点存储一段比特段;所述规则匹配FSA查找引擎包括比较器组合,状态编码器,缓存设备,sro存储器和多字节比较器,所述比较器组合的比较器组合结构与所述树形结构数据的树形结构对应,各比较器存储有一段比特段,比较器存储的比特段与对应树形结构数据的节点存储的比特段对应;获取IP数据流的选择符信息,所述IP数据流的选择符信息包括若干段的η位比特段,将IP数据流的选择符的各段比特段,依序与各比较器存储的比特段进行匹配,所比较的IP数据流的比特段和比较器存储的比特段的序数相同;若匹配结束后,比较器组合中存在任一末端比较器的匹配结果为,IP数据流的选择符的比特段与比较器存储的比特段相匹配,则将该末端比较器的端口输出作为状态编码器的输入;通过状态编码器将所述端口输出编码成地址信号指向安全策略数据库sro存储器;通过多字节比较器将指向的sro存储器中存储的sro条目与ip数据流进行比较,该IP数据流由缓存设备缓存后输入多字节比较器,若匹配,则将SPD中指向安全关联SA的地址信号输出,完成sro访问。其中,所述预先确定规则匹配FSA的过程包括:选取sro的选 择符的前m位,组成多组选择符字段,每组选择符字段包含有至少一段由η位比特组成的比特段;计算各选择符字段的唯一前缀,根据Ahojorasick算法利用各选择符字段的唯一前缀构建规则匹配FSA,所述唯一前缀为各选择符字段中由第一个比特段开始,至在相同的比特段序数上区别于其他选择符字段的比特段止的区间内所包含的比特段。其中,所述sro的选择符包括源地址和目的地址。其中,所述根据Ahojorasick算法利用各选择符字段的唯一前缀构建规则匹配FSA的过程包括:规则匹配FSA包括根节点和子节点,节点层数与sro的选择符字段的组数对应,在根节点承载各选择符字段的唯一前缀的第一个比特段,各选择符字段的唯一前缀的相同的第一个比特段承载在同一根节点上,各选择符字段的唯一前缀的不同的第一个比特段承载在不同的根节点上;依据各选择符字段的唯一前缀的比特段的递进关系,在各选择符字段的唯一前缀对应的根节点下的子节点上递进的承载各选择符字段的唯一前缀中的其他比特段,一个子节点承载一个序数的比特段,同属于一个根节点的各选择符字段的唯一前缀中的序数相同且内容相同的其他比特段承载在同一子节点上;其中,其他比特段为选择符字段的唯一前缀中除第一个比特段外的比特段,各层节点的最后一个节点称为叶节点,叶节点承载各选择符字段的唯一前缀中区别于其他选择符字段的唯一前缀的比特段。其中,所述比较器组合的比较器组合结构与所述树形结构数据的树形结构对应包括:比较器组合包括根比较器和子比较器,根比较器与子比较器的关系与规则匹配FSA中根节点与子节点的关系一致,子比较器中存在叶比较器,叶比较器与叶节点对应,且各比较器存储有对应规则匹配FSA节点上存入的比特段。其中,所述比较器包括:控制比较器是否可用的使能端ENABLE ;时钟CLK ;复位键RESET ;输入口 INPUT ;输出口 OUT。其中,所述比较器为星号比较器,所述星号比较器包括:控制比较器是否可用的使能端ENABLE ;时钟CLK ;复位键RESET ;输入口 INPUT ;输出口 OUT ;所述使能端ENABLE与输出口 OUT端作或运算。其中,所述将IP数据流的选择符的各段比特段,依序与各比较器存储的比特段进行匹配的过程包括:输入比较器的IP数据流的比特段的序数与比较器所存储的唯一前缀的比特段的序数对应,比较器所存储的比特段与输入的IP数据流的比特段进行匹配;若上级比较器匹配成功,则激活下级匹配路径,在下级比较器中进行比较器所存储的比特段与输入的IP数据流的比特段进行匹配,直至比较器组合中任一末端的比较器的匹配结果为,输入的IP数据流的比特段与比较器所存储的比特段匹配,或直至无法激活下一匹配路径时止。其中,所述输入比较器的IP数据流的比特段的序数与比较器所存储的唯一前缀的比特段的序数对应,比较器所存储的比特段与输入的IP数据流的比特段进行匹配的过程包括:将IP数据流的选择符的第一个比特段,输入存储有唯一前缀的第一个比特段的根比较器中,将IP数据流的选择符的第一个比特段与比较器中存储的唯一前缀的第一个比特段进行匹配;

若匹配成功,激活根比较器下的子比较器,将IP数据流的选择符的第二个比特段,输入存储有唯一前缀的第二个比特段的各子比较器,将IP数据流的选择符的第二个比特段与比较器中存储的唯一前缀的第二个比特段进行匹配;若匹配成功,激活子比较器的下一子比较器,执行第三个比特段的匹配过程,以此类推,直至树形结构的任一层比较器的最后一个比较器匹配成功,或直至没有下一子比较器能够被激活。其中,所述m为64, η为8。基于上述技术方案,本发明实施例提供的sro访问方法,通过预先确定的规则匹配FSA布置当前的规则匹配FSA查找引擎,布置具有与规则匹配FSA的树形结构数据的树形结构对应的比较器组合,在比较器中存储对应的规则匹配FSA的节点所存储的比特段;在获取IP数据流后,获取IP数据流的选择符信息,将IP数据流的选择符的各段比特段,依序与各比较器存储的比特段进行匹配,所比较的IP数据流的比特段和比较器存储的比特段的序数相同;若匹配结束后,比较器组合中存在任一末端比较器的匹配结果为,IP数据流的选择符的比特段与比较器存储的比特段相匹配,则将该末端比较器的端口输出作为状态编码器的输入;通过状态编码器将所述端口输出编码成地址信号指向sro存储器;通过多字节比较器将指向的sro存储器中存储的sro条目与IP数据流进行比较,若匹配,则将SPD中指向SA的地址信号输出,完成sro访问。本发明实施例通过布置规则匹配FSA查找引擎,通过比较器与IP数据流的匹配,实现一种硬件电路形式的sro查找过程;相比现有技术提供的采用软件方法改进数据结构来提高sro查找速度的方式,本发明实施例提供的SPD访问方法采用硬件电路形式进行sro查找访问,进一步提升了 SPD的查找访问速度。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的SPD访问方法的流程图;图2为本发明实施例提供的确定规则匹配FSA的方法流程
图3为本发明实施例提供的规则匹配FSA的构建示意图;图4为本发明实施例提供的有效比较器的布置示意图;图5为本发明实施例提供的规则匹配FSA查找引擎的结构示意图;图6为本发明实施例提供的比较器的结构示意图;图7为本发明实施例提供的星号比较器的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明实施例提供的SPD访问方法的流程图,参照图1,该方法可以包括:步骤S100、通过预先确定的规则匹配FSA (finite state automata,有限状态机)布置当前的规则匹配FSA查找引擎;其中,规则匹配FSA是通过SH)确定的,因此只要确定SPD的数据内容,即可预先确定规则匹配FSA。可选的,本发明实施例确定规则匹配FSA的方法可参照图2,图2为本发明实施例提供的确定规则匹配FSA的方法流程图,该流程可以包括:步骤S110、选取SPD的选择符的前m位,组成多组选择符字段;一般地,SPD中包含一个策略条目的有序列表,通过使用一个或多个选择符来确定每一个条目。选择符通常包括:源IP地址,目的IP地址,源端口,目的端口和协议五元组等。表I示出了一个典型的IPSec安全策略数据库SPD的实例可一同参照。IPSec安全策略数据库实例
权利要求
1.一种SF1D访问方法,其特征在于,包括: 通过预先确定的规则匹配有限状态机FSA布置当前的规则匹配FSA查找引擎;所述规则匹配FSA为存储有若干段比特段的树形结构数据,一个树形结构数据的节点存储一段比特段;所述规则匹配FSA查找引擎包括比较器组合,状态编码器,缓存设备,SPD存储器和多字节比较器,所述比较器组合的比较器组合结构与所述树形结构数据的树形结构对应,各比较器存储有一段比特段,比较器存储的比特段与对应树形结构数据的节点存储的比特段对应; 获取IP数据流的选择符信息,所述IP数据流的选择符信息包括若干段的η位比特段,将IP数据流的选择符的各段比特段,依序与各比较器存储的比特段进行匹配,所比较的IP数据流的比特段和比较器存储的比特段的序数相同; 若匹配结束后,比较器组合中存在任一末端比较器的匹配结果为,IP数据流的选择符的比特段与比较器存储的比特段相匹配,则将该末端比较器的端口输出作为状态编码器的输入; 通过状态编码器将所述端口输出编码成地址信号指向安全策略数据库sro存储器; 通过多字节比较器将指向的sro存储器中存储的sro条目与ip数据流进行比较,该ip数据流由缓存设备缓存后输入多字节比较器,若匹配,则将SPD中指向安全关联SA的地址信号输出,完成sro访问。
2.根据权利要求1所述的方法,其特征在于,所述预先确定规则匹配FSA的过程包括: 选取sro的选择符的前m位,组成多组选择符字段,每组选择符字段包含有至少一段由 η位比特组成的比特段; 计算各选择符字段的唯一前缀,根据Aho_CoraSick算法利用各选择符字段的唯一前缀构建规则匹配FSA,所述唯一前缀为各选择符字段中由第一个比特段开始,至在相同的比特段序数上区别于其他选择符字段的比特段止的区间内所包含的比特段。
3.根据权利要求2所述的方法,其特征在于,所述SPD的选择符包括源地址和目的地址。
4.根据权利要求2所述的方法,其特征在于,所述根据Aho_CoraSick算法利用各选择符字段的唯一前缀构建规则匹配FSA的过程包括: 规则匹配FSA包括根节点和子节点,节点层数与sro的选择符字段的组数对应,在根节点承载各选择符字段的唯一前缀的第一个比特段,各选择符字段的唯一前缀的相同的第一个比特段承载在同一根节点上,各选择符字段的唯一前缀的不同的第一个比特段承载在不同的根节点上; 依据各选择符字段的唯一前缀的比特段的递进关系,在各选择符字段的唯一前缀对应的根节点下的子节点上递进的承载各选择符字段的唯一前缀中的其他比特段,一个子节点承载一个序数的比特段,同属于一个根节点的各选择符字段的唯一前缀中的序数相同且内容相同的其他比特段承载在同一子节点上; 其中,其他比特段为选择符字段的唯一前缀中除第一个比特段外的比特段,各层节点的最后一个节点称为叶节点,叶节点承载各选择符字段的唯一前缀中区别于其他选择符字段的唯一前缀的比特段。
5.根据权利要求4所述的方法,其特征在于,所述比较器组合的比较器组合结构与所述树形结构数据的树形结构对应包括: 比较器组合包括根比较器和子比较器,根比较器与子比较器的关系与规则匹配FSA中根节点与子节点的关系一致,子比较器中存在叶比较器,叶比较器与叶节点对应,且各比较器存储有对应规则匹配FSA节点上存入的比特段。
6.根据权利要求1所述的方法,其特征在于,所述比较器包括:控制比较器是否可用的使能端ENABLE ;时钟CLK ;复位键RESET ;输入口 INPUT ;输出口 OUT。
7.根据权利要求1所述的方法,其特征在于,所述比较器为星号比较器,所述星号比较器包括:控制比较器是否可用的使能端ENABLE ;时钟CLK ;复位键RESET ;输入口 INPUT ;输出口 OUT ;所述使能端ENABLE与输出口 OUT端作或运算。
8.根据权利要求2-5任一项所述的方法,其特征在于,所述将IP数据流的选择符的各段比特段,依序与各比较器存储的比特段进行匹配的过程包括: 输入比较器的IP数据流的比特段的序数与比较器所存储的唯一前缀的比特段的序数对应,比较器所存储的比特段与输入的IP数据流的比特段进行匹配; 若上级比较器匹配成功,则激活下级匹配路径,在下级比较器中进行比较器所存储的比特段与输入的IP数据流的比特段进行匹配,直至比较器组合中任一末端的比较器的匹配结果为,输入的IP数据流的比特段与比较器所存储的比特段匹配,或直至无法激活下一匹配路径时止。
9.根据权利要求8所述的方法,其特征在于,所述输入比较器的IP数据流的比特段的序数与比较器所存储的唯一前缀的比特段的序数对应,比较器所存储的比特段与输入的IP数据流的比特段进行匹配的过程包括: 将IP数据流的选择符的第一个比特段,输入存储有唯一前缀的第一个比特段的根比较器中,将IP数据流的选择符的第一个比特段与比较器中存储的唯一前缀的第一个比特段进行匹配; 若匹配成功,激活根比较器下的子比较器,将IP数据流的选择符的第二个比特段,输入存储有唯一前缀的第二个比特段的各子比较器,将IP数据流的选择符的第二个比特段与比较器中存储的唯一前缀的第二个比特段进行匹配; 若匹配成功,激活子比较器的下一子比较器,执行第三个比特段的匹配过程,以此类推,直至树形结构的任一层比较器的最后一个比较器匹配成功,或直至没有下一子比较器能够被激活。
10.根据权利要求2-5任一所述的方法,其特征在于,所述m为64,η为8。
全文摘要
本发明实施例提供一种SPD访问方法,包括通过预先确定的规则匹配FSA布置当前的规则匹配FSA查找引擎;获取IP数据流的选择符信息,将IP数据流的选择符的各段比特段,依序与各比较器存储的比特段进行匹配;若匹配结束后,比较器组合中存在任一末端比较器的匹配结果为,IP数据流的选择符的比特段与比较器存储的比特段相匹配,则将该末端比较器的端口输出作为状态编码器的输入;通过状态编码器将所述端口输出编码成地址信号指向SPD存储器;通过多字节比较器将指向的SPD存储器中存储的SPD条目与IP数据流进行比较,若匹配,则将SPD中指向SA的地址信号输出,完成SPD访问。本发明实施例提升了SPD的查找访问速度。
文档编号G06F17/30GK103226615SQ201310177338
公开日2013年7月31日 申请日期2013年5月14日 优先权日2013年5月14日
发明者陈性元, 杜学绘, 包义保, 肖玮, 曹利峰, 孙奕 申请人:中国人民解放军信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1