首页> 中国专利> IPv6下IPSec协议外出处理硬件实现系统

IPv6下IPSec协议外出处理硬件实现系统

摘要

本发明提供了一种IPv6下IPSec协议外出处理硬件实现系统,包括:内网GMAC模块、数据进入缓存模块、IPSec协议封装处理模块、SA匹配模块、加密模块、认证模块、报文分片模块、数据外出缓存模块、外网GMAC模块。本发明通过一种硬件来实现对在IPv6环境下的网络层IP数据报进行IPSec协议外出处理,提供了IP数据报源点鉴别、数据完整性和保密性,有效的提高了基于软件的IPSec协议外出处理速率,将CPU在处理过程中完全释放出来。

著录项

  • 公开/公告号CN104394148A

    专利类型发明专利

  • 公开/公告日2015-03-04

    原文格式PDF

  • 申请/专利权人 东南大学;

    申请/专利号CN201410697250.5

  • 申请日2014-11-26

  • 分类号H04L29/06(20060101);

  • 代理机构32250 江苏永衡昭辉律师事务所;

  • 代理人王斌

  • 地址 214135 江苏省无锡市新区菱湖大道99号

  • 入库时间 2023-12-17 04:40:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-30

    授权

    授权

  • 2015-04-01

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20141126

    实质审查的生效

  • 2015-03-04

    公开

    公开

说明书

技术领域

本发明涉及网络安全数据处理技术领域,特别涉及一种IPv6下IPSec协议外出处理硬件实现系统。 

背景技术

随着因特网的飞速发展,人们对它的依赖程度也越来越高,网络信息可以便宜和快速地传递。从而在如此一个信息化的时代,网络信息的安全问题成为人们关注的焦点,这不仅仅涉及到人们的个人隐私和财物信息,也关系到各类公司的机密信息,最为重要的是关系到一个国家的主权、安全和发展。“信息战”已经成为现代战争中一种重要的手段,因此,网络信息安全已经成为各国、各部门以及各行业必须得到保证的领域。目前互联网建立在IP协议(Internet protocol)基础上,而IP包本身不继承任何安全措施,外界很容易伪造出IP包的地址、修改其内容,重播以及拦截并查看IP包的内容。为了保证IP数据报的安全,因特网工程部(IETF)设计了一组协议?——IPSec(IP Security)。IPSec提供了一种标准的、健壮的以及包容广泛的机制,为上层协议提供安全保证。它定义了一套默认的、强制实施的算法,以确保不同的实施方案相互可以共通,提供了IP数据报源点鉴别、数据完整性和保密性等特点。IPSec协议涉及大量数据的安全计算,随着计算机网络带宽的不断提高,采用软件实现 IPSec协议处理占用大量的CPU资源,使得网络设备负载明显提高和吞吐量的显著下降,导致服务器、网关、路由器和交换机等关键网络设备的处理性能大大下降。而且在更大地址空间的新版本的IPv6环境下数据量的处理更为巨大。因此,针对目前基于软件的IPSec协议外出处理,有必要提出一种IPv6下IPSec协议外出处理硬件实现系统,以有效提高数据的处理效率,更大空间释放CPU资源。  

发明内容

针对上述技术问题,本发明提供一种IPv6下IPSec协议外出处理硬件实现系统,以有效提高数据的处理效率,更大空间释放CPU资源。

为了解决上述技术问题,本发明提供了一种IPv6下IPSec协议外出处理硬件实现系统,内网GMAC模块、数据进入缓存模块、IPSec协议封装处理模块、SA匹配模块、加密模块、认证模块、报文分片模块、数据外出缓存模块、外网GMAC模块。

本发明通过一种硬件来实现对在IPv6环境下的网络层IP数据报进行IPSec协议外出处理,提供了IP数据报源点鉴别、数据完整性和保密性,有效的提高了基于软件的IPSec协议外出处理速率,将CPU在处理过程中完全释放出来。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。 

附图说明

图1为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的结构示意图;

图2为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施方式的结构示意图;

图3为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中数据进入缓存模块的具体实施方式的结构示意图;

图4为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的另一个具体实施方式的结构示意图;

图5为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中IPSec协议封装处理模块的具体实施方式的结构示意图;

图6为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的另一个具体实施方式的结构示意图;

图7为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中SA匹配模块的具体实施方式的结构示意图;

图8为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的另一个具体实施方式的结构示意图;

图9为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中加密模块的具体实施方式的结构示意图;

图10为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的另一个具体实施方式的结构示意图;

图11为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中认证模块的具体实施方式的结构示意图;

图12为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的另一个具体实施方式的结构示意图;

图13为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中报文分片模块的具体实施方式的结构示意图;

图14为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的另一个具体实施方式的结构示意图;

图15为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中IPSec封装处理控制子模块的具体实施方式的结构示意图。 

具体实施方式

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

图1为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的结构示意图。如图1所示,IPv6下IPSec协议外出处理硬件实现系统100包括:内网GMAC模块101、数据进入缓存模块102、IPSec协议封装处理模块103、SA匹配模块104、加密模块105、认证模块106、报文分片模块107、数据外出缓存模块108、外网GMAC模块109。内网GMAC模块101,其连接内部网络的PC机或路由等网络设备以进行通信,其中所述通信包括:接收从PC机或路由等网络设备发送过来的物理层比特数据流,在接收完一帧数据后,检查该帧是否有效,若有效则解封掉数据帧的头尾变成网络层IP报文,将IP报文发送至数据进入缓存模块102;数据进入缓存模块102,其连接所述内网GMAC模块101,用于将从所述内网GMAC模块101发送过来的IP报文,用乒乓操作方式将报文写入数据存储单元,以缓存待IPSec协议处理的IP报文。例如,内网GMAC模块101发送过来的待IPSec协议安全处理的IP报文,数据进入缓存模块102用乒乓操作的方式将该IP报文写入数据存储单元,这样缓存IP报文数据,这样,可以实现减少IPSec协议封装处理模块读取待IPSec协议安全处理的IP报文时间,提高了数据处理速率。IPSec协议封装处理模块103,其连接所述数据进入缓存模块102、SA匹配模块104、加密模块105和验证证模块106,用于从数据进入缓存模块102读取一个完整的IP包存入存储装置、向SA匹配模块104发送IP头信息、从SA匹配模块104读取过来的SA相关参数信息并根据其中一部分信息判断选择IPSec协议处理方式、将明文数据发送给加密模块105并从其模块获取密文数据、将待验证数据发送给验证模块106并从其模块获取验证完的数据和产生与各个交互模块的相关控制信号,最后将待封装的数据封装在一个完整IP包中,发送至报文分片模块109。例如,IPSec协议封装处理模块103,接收到数据进入缓存模块102发送过了的一个完整的IP报文包,存入存储装置中,并提取IP报文中IP头信息数据,发送给SA匹配模块104,然后根据SA匹配模块104处理完回传回来的该IP报文需要IPSec协议安全处理对应的SA相关信息参数,并根据其中一部分信息判断选择:IPSec协议处理是采用AH协议还是ESP协议;处理模式是采用传输模式还是隧道模式;加密算法类型是采用AES-CBC算法、3DES算法还是NULL;验证算法类型是采用HMAC-SHA1-96算法、AES-XCBC-MAC-96算法还是NULL。根据加密算法密钥的长度和IP报文头中载荷长度的信息计算出符合加密模块105的数据位宽要求需要填充项的长度,载荷数据中填充项可以全部用0做为填充的数据。当采用ESP协议时,并根据处理模式,则将待加密的明文数据包封装好发送给加密模块105,加密完成后将密文和其他待验证数据封装好发送给认证模块106;当采用AH协议则将需要待认证数据封装好发送给认证模块106,最后将IP头、SA匹配模块发送过来的部分信息、加密完成的密文数据和认证模块得到的认证数据封装在一个完整IP包中,发送至报文分片模块109。这样,就实现了对该IP报文进行IPSec协议安全处理。SA匹配模块104,其连接所述IPSec协议封装处理模块103,用于接收IPSec协议封装处理模块103发送过来IP包中IP头的数据信息,根据其中部分信息选择该IP包需要进行安全保护的SA信息,并将其SA信息发送给IPSec协议封装处理模块103。例如,一个IP报文需要IPSec协议安全处理,则IPSec协议封装处理模块103提取出IPSec头部的信息发送给SA匹配模块104,SA匹配模块104将IP头部中<SPI,目的地址,协议>三元组信息提取出来与SA信息存储单元进行匹配,匹配成功后则将该IP报文需要IPSec协议安全处理所用的SA信息发送给IPSec协议封装处理模块103。加密模块105,其连接所述IPSec协议封装处理模块103,用于接收IPSec协议封装处理模块103发送过来的明文数据、加密算法模式和密钥数据,将明文进行加密,并将加密完的密文数据回传给IPSec协议封装处理模块103。例如,一个待加密的明文数据,根据IPSec协议封装处理模块103转发SA信息中加密类型和加密密钥以及加密密钥的长度,根据加密类型选择是AES加密算法还是3DES加密算法,以及根据处理后实际位宽的密钥对明文数据用加密算法进行处理,加密完将密文发送给IPSec协议封装处理模块103。认证模块106,其连接所述IPSec协议封装处理模块103,用于接收IPSec协议封装处理模块103发送过来的待认证处理数据、加密算法模式和密钥数据,将待认证处理的数据进行认证算法处理,并将认证处理后的数据回传给IPSec协议封装处理模块103。例如,一个待认证处理的数据,根据IPSec协议封装处理模块103转发SA信息中认证算法类型和认证算法密钥以及认证算法密钥的长度,根据认证算法类型选择是HMAC-SHA1-96认证算法和AES-XCBC-MAC-96认证算法,以及根据处理后实际位宽的认证算法密钥对待认证处理的数据进行用认证算法处理,处理完将哈希值发送给IPSec协议封装处理模块103。报文分片模块107,其连接所述IPSec协议封装处理模块103,用于接收IPSec协议封装处理模块103发送过来的IP数据报,根据MTU的值对IP数据报进行分片处理。例如,一个已经经过IPSec协议安全处理的IP报文,根据最大传送单元(MTU)将该报文包进行分片处理,将IP首部中的一些必要的部分提取出来复制到所有的分片中,IP报文中的载荷数据根据MTU值进行分片,最后将与一个数据报的分片有关的字段:标识、标志和分片偏移组装进各个分片。数据外出缓存模块108,其连接所述报文分片模块107,用于将报文分片模块107发送过来的分片后的IP报文,用乒乓操作方式将报文写入数据存储单元,以缓存发送给外网GMAC模块的IP报文。例如,分片模块107发送过来的已经分片完的IPSec协议安全处理后的IP报文,数据外出缓存模块108用乒乓操作的方式将该IP报文写入数据存储单元,这样缓存IP报文数据,这样,可以实现减少外网GMAC模块读取IP报文时间,提高了数据处理速率。外网GMAC模块109,其连接所述数据外出缓存模块108,用于接收数据外出缓存模块108发送过来的IP报文,在数据段头尾加上一些控制信息,组成一个以太网数据帧,并将该数据帧以比特数据流的形式发送到物理层。

图2为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施方式的结构示意图。如图2所示, IPv6下IPSec协议外出处理硬件实现系统200包括:内网GMAC模块201、数据进入缓存模块202、IPSec协议封装处理模块203、SA匹配模块204、加密模块205、认证模块206、报文分片模块207、数据外出缓存模块208、外网GMAC模块209;其中内网GMAC模块201、数据进入缓存模块202、IPSec协议封装处理模块203、SA匹配模块204、加密模块205、认证模块206、报文分片模块207、数据外出缓存模块208、外网GMAC模块209可以分别和图1中所示的内网GMAC模块101、数据进入缓存模块102、IPSec协议封装处理模块103、SA匹配模块104、加密模块105、认证模块106、报文分片模块107、数据外出缓存模块108、外网GMAC模块109具有相同的结构,这里不再过多的阐述其具体的技术内容。

如图2所示,数据进入缓存模块202进一步地包括:输入数据选择器2021、数据存储单元2022、数据存储单元2023、输出数据选择器2024。

其中,输入数据选择器2021,用于根据选择信号将IP报文数据存入第一数据存储单元或第二数据存储单元;例如,根据选择信号在第一个缓冲周期,将内网GMAC模块201发送过来的IP报文数据缓存到第一数据存储单元,在第二个缓冲周期,将内网GMAC模块201发送过来的IP报文数据缓存到第二数据存储单元。

数据存储单元2022和数据存储单元2023,用于缓存内网GMAC模块201发送过的待IPSec处理的IP报文数据。例如,可以采用随机存取存储器RAM或先进先出存储器FIFO等数据存储单元,数据存储单元2022和数据存储单元2023的数据深度和数据宽度可以根据数据要求配置。

输出数据选择器2024,用于根据选择信号将IP报文数据输出到IPSec协议封装处理模块203。例如,根据选择信号,在第二个缓冲周期,将第一数据存储单元缓存的第一个周期的IP报文数据送到IPSec协议封装处理模块203被处理,在第三个缓冲周期,通过选择信号再次切换,将第二数据存储单元缓存的第二个周期的IP报文数据送到IPSec协议封装处理模块203被处理。

图3为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中数据进入缓存模块的具体实施方式的结构示意图;

如图3所示,数据进入缓存模块300进一步地包括:输入数据选择器301、数据存储单元302、数据存储单元303、输出数据选择器304。在实施实例中具体操作为,当IPv6下IPSec协议外出处理硬件实现系统初始化后,在第一个缓冲周期,将内网GMAC模块发送过来的IP报文数据缓存到第一数据存储单元302,在第二个缓冲周期,根据选择信号的切换,输入数据选择器301将内网GMAC模块发送过来的IP报文数据缓存到第二数据存储单元303,与此同时,将第一数据存储单元302缓存的第一个周期的IP报文数据通过输出数据选择器304的选择,送到IPSec协议封装处理模块被处理。在第三个缓冲周期,通过输入数据选择器301的选择信号再次切换,将内网GMAC模块发送过来的IP报文数据缓存到第一数据存储单元302,与此同时,将第二数据存储单元303缓存的第二个周期的IP报文数据通过输出数据选择器304的选择信号切换,送到IPSec协议封装处理模块被处理。如此循环,周而复始,根据选择信号,按节拍、相互配合地切换,将内网GMAC模块发送过来的IP报文数据没有时间停顿地送到IPSec协议很准处理模块被运算处理,从而实现对IP报文数据乒乓操作,从而提高数据的处理速率。

图4为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的另一个具体实施方式的结构示意图。如图4所示, IPv6下IPSec协议外出处理硬件实现系统400包括:内网GMAC模块401、数据进入缓存模块402、IPSec协议封装处理模块403、SA匹配模块404、加密模块405、认证模块406、报文分片模块407、数据外出缓存模块408、外网GMAC模块409;其中内网GMAC模块401、数据进入缓存模块402、IPSec协议封装处理模块403、SA匹配模块404、加密模块405、认证模块406、报文分片模块407、数据外出缓存模块408、外网GMAC模块409可以分别和图1中所示的内网GMAC模块101、数据进入缓存模块102、IPSec协议封装处理模块103、SA匹配模块104、加密模块105、认证模块106、报文分片模块107、数据外出缓存模块108、外网GMAC模块109具有相同的结构,这里不再过多的阐述其具体的技术内容。

如图4所示,IPSec协议封装处理模块403进一步地包括:IPSec处理前报文数据存储单元4031、SA信息存储单元4032、IPSec封装处理控制子模块4033、密文数据存储单元4034、认证后数据存储单元4035、IPSec处理后报文数据存储单元4036。

其中,IPSec处理前报文数据存储单元4031,用于存储待IPSec协议处理的整个IP包,可由IPSec封装处理控制子模块进行读取其中的数据。例如,IPSec处理前报文数据存储单元4031存储内网GMAC模块401发送过来经过数据进入数据缓存模块402缓存的一个完整的IP报文包,以待IPSec封装处理控制子模块403读取。

SA信息存储单元4032,用于存储待IPSec协议处理的IP包对应的SA信息,SA信息包括:安全参数索引SPI、IPSec协议类型、处理模式、目的IP地址、源IP地址、序列号、加密算法初始化向量IV、IV长度、加密算法类型、加密算法密钥、加密算法密钥长度、认证算法类型、认证算法密钥和认证算法密钥长度等信息。例如,SA信息存储单元4032存储SA匹配模块404模块发送过来待IPSec协议安全处理的IP报文所对应的SA参数信息,包括:安全参数索引SPI、IPSec协议类型、处理模式、目的IP地址、源IP地址、序列号、加密算法初始化向量IV、IV长度、加密算法类型、加密算法密钥、加密算法密钥长度、认证算法类型、认证算法密钥和认证算法密钥长度等信息。

IPSec封装处理控制子模块4033,用于对整个IP报文的IPSec协议处理进行控制,计算IP报文填充项的长度,发送SA匹配模块IP报文头信息,根据SA匹配模块发送回来的SA信息判断IPSec处理所采用的协议和处理时模式,从而对需要加密的明文进行封装,对待认证处理的数据进行封装,对需要加密的明文进行协调IPSec处理前报文数据存储单元、SA信息存储单元、密文数据存储单元、认证后数据存储单元和IPSec处理后报文数据存储单元五个存储装置工作以及产生IPSec协议封装处理模块之外交互模块的相关控制信号。例如,一个待IPSec协议安全处理的IP报文,IPSec封装处理控制子模块4033从IPSec处理前报文数据存储单元4031中读取IP报文中IP头头信息,发送给SA匹配模块404,然后等SA匹配模块404处理完,从SA信息存储单元4032中读取该IP报文需要IPSec协议安全处理对应的SA相关信息参数,并根据其中一部分信息判断选择:IPSec协议处理是采用AH协议还是ESP协议;处理模式是采用传输模式还是隧道模式;加密算法类型是采用AES-CBC算法、3DES算法还是NULL;验证算法类型是采用HMAC-SHA1-96算法、AES-XCBC-MAC-96算法还是NULL。根据加密算法密钥的长度和IP报文头中载荷长度的信息计算出符合加密模块405的数据位宽要求需要填充项的长度,载荷数据中填充项可以全部用0做为填充的数据。当采用ESP协议时,并根据处理模式,则将待加密的明文数据包封装好发送给加密模块405,加密完成后将密文和其他待验证数据封装好发送给认证模块406;当采用AH协议则将需要待认证数据封装好发送给认证模块406,最后读取IPSec处理前报文数据存储单元4031中IP头信息、读取SA信息存储模块4032中SA部分信息包括:安全参数索引SPI,序列号,初始化向量、读取密文数据存储单元4034中加密完成的密文数据和读取认证后数据存储单元4035中认证数据封装在一个完整IP包存储到IPSec处理后报文数据存储单元4036中,并根据交互模块的控制信号适时地发送给报文分片模块407。

密文数据存储单元4034,用于存储加密模块发送过来的已经加密完成的密文包,可有IPSec封装处理控制子模块进行读取其中的数据。例如,密文数据存储单元4034存储待加密数据经过加密模块405加密完成后的密文数据,以待IPSec封装处理控制子模块4033读取。

认证后数据存储单元4035,用于缓存认证模块发送过来的已经认证处理后的哈希值,可由IPSec封装处理控制子模块进行读取其中的数据。例如,认证后数据存储单元4035存储待认证处理数据经过认证模块406认证处理完成后的认证数据,以待IPSec封装处理控制子模块4033读取。

IPSec处理后报文数据存储单元4036,用于存储IPSec封装处理后的完整的一个IP数据包,发送给报文分片模块。例如,IPSec处理后报文数据存储单元4036存储IPSec协议处理后的报文数据,以待IPSec封装处理控制子模块4033读取。

图5为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中IPSec协议封装处理模块的具体实施方式的结构示意图;

如图5所示,IPSec协议封装处理模块500进一步包括:IPSec处理前报文数据存储单元501、SA信息存储单元502、IPSec封装处理控制子模块503、密文数据存储单元504、认证后数据存储单元505、IPSec处理后报文数据存储单元506。在实施实例中具体操作为,IPSec协议封装处理模块500,一个待IPSec协议安全处理的IP报文,IPSec封装处理控制子模块503从IPSec处理前报文数据存储单元501中读取IP报文中IP头头信息,发送给SA匹配模块502,然后等SA匹配成功后,从SA信息存储单元502中读取该IP报文需要IPSec协议安全处理对应的SA相关信息参数,并根据其中一部分信息判断选择:IPSec协议处理是采用AH协议还是ESP协议;处理模式是采用传输模式还是隧道模式;加密算法类型是采用AES-CBC算法、3DES算法还是NULL;验证算法类型是采用HMAC-SHA1-96算法、AES-XCBC-MAC-96算法还是NULL。根据加密算法密钥的长度和IP报文头中载荷长度的信息计算出符合加密处理的数据位宽要求需要填充项的长度,载荷数据中填充项可以全部用0做为填充的数据。当采用ESP协议时,并根据处理模式,则将待加密的明文数据包封装好发送给加密模块,加密完成后将密文和其他待验证数据封装好发送给认证模块;当采用AH协议则将需要待认证数据封装好发送给认证模块,最后读取IPSec处理前报文数据存储单元501中IP头信息、读取SA信息存储模块502中SA部分信息包括:安全参数索引SPI,序列号,初始化向量、读取密文数据存储单元504中加密完成的密文数据和读取认证后数据存储单元505中认证数据封装在一个完整IP包存储到IPSec处理后报文数据存储单元506中,并根据交互模块的控制信号适时地发送给报文分片模块。这样,就实现了对该IP报文进行IPSec协议安全处理。

图6为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的另一个具体实施方式的结构示意图。如图4所示, IPv6下IPSec协议外出处理硬件实现系统600包括:内网GMAC模块601、数据进入缓存模块602、IPSec协议封装处理模块603、SA匹配模块604、加密模块605、认证模块606、报文分片模块607、数据外出缓存模块608、外网GMAC模块609;其中内网GMAC模块601、数据进入缓存模块602、IPSec协议封装处理模块603、SA匹配模块604、加密模块605、认证模块606、报文分片模块607、数据外出缓存模块608、外网GMAC模块609可以分别和图1中所示的内网GMAC模块101、数据进入缓存模块102、IPSec协议封装处理模块103、SA匹配模块104、加密模块105、认证模块106、报文分片模块107、数据外出缓存模块108、外网GMAC模块109具有相同的结构,这里不再过多的阐述其具体的技术内容。

如图6所示,SA匹配模块604进一步地包括:SA匹配控制子模块6041、SAD配置模块6042、SAD CAM子模块6043、SA参数信息存储子模块6044。

其中,SA匹配控制子模块6041,用于控制整个SA匹配模块604工作,接收IPSec协议封装处理模块603发送过来的IP报文头信息,并从IP头中提取出SPI、源地址和目的地址,将<SPI,目的地址,协议>组成的三元组信息发送给SAD CAM子模块6043。例如,接收到IPSec协议封装处理模块603发送过来的待IPSec协议安全处理的IP报文头信息,从IP头中提取出SPI、源地址和目的地址,将<SPI,目的地址,协议>组成的三元组信息发送给SAD CAM子模块6043进行匹配。

SAD 配置子模块6042,用于手工配置SAD CAM子模块和SA参数信息存储子模块当中的数据,可以固化其中的一部分的默认信息和用随机数发生器产生其中一部分的随机信息。例如,SA匹配控制子模块604初始化时,SAD配置模块6042向SAD CAM 模块6043和SA参数信息存储子模块6044中写入一部分的默认SA信息和可以用随机数发生器产生其中的另一部分随机SA信息。

SAD CAM子模块6043,用于存储IP报文头信息中<SPI,目的地址,协议>组成的三元组信息,在写模式时,接收SAD 配置子模块6042对其中的RAM进行写操作,更新其三元组信息。在匹配模式时,根据SA匹配控制模6041块发送过来的<SPI,目的地址,协议>三元组信息进行匹配,发送其匹配成功的地址以及匹配成功标志。例如,一个待IPSec协议安全处理的IP报文,在初始化的时候,SAD CAM处于写模式,接收SAD配置模块6042对其中的存储装置进行写操作,写入三元组信息。初始化结束后,SAD CAM处于匹配模式,根据SA匹配控制子模块发送过来的<SPI,目的地址,协议>三元组信息进行匹配,发送其匹配成功的地址以及匹配成功标志。

SA参数信息存储子模块6044,用于存储一系列SA参数数据,在手工配置时,通过SAD配置模块6042把SA参数信息写入SA参数信息存储子模块。例如,存储一系列SA参数数据,在手工配置时,通过SAD配置模块6042把SA参数信息写入SA参数信息存储子模块。SA参数信息包括:安全参数索引SPI、IPSec协议类型、处理模式、目的IP地址、源IP地址、序列号、加密算法初始化向量IV、IV长度、加密算法类型、加密算法密钥、加密算法密钥长度、认证算法类型、认证算法密钥和认证算法密钥长度等信息。

图7为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中SA匹配模块的具体实施方式的结构示意图;

如图7所示,SA匹配模块700进一步包括:SA匹配控制子模块701、SAD配置模块702、SAD CAM子模块703、SA参数信息存储子模块704。在实施实例中具体操作为,在SA匹配模块700初始化的时候,SAD配置模块702向SAD CAM 模块703和SA参数信息存储子模块704中写入一部分的默认SA信息和可以用随机数发生器产生其中的另一部分随机SA信息。SA参数信息包括:安全参数索引SPI、IPSec协议类型、处理模式、目的IP地址、源IP地址、序列号、加密算法初始化向量IV、IV长度、加密算法类型、加密算法密钥、加密算法密钥长度、认证算法类型、认证算法密钥和认证算法密钥长度等信息。初始化后,SA匹配控制子模块701接收IPSec协议封装处理模块发送过来IP包中IP报文头数据,并将IP头部中<SPI,目的地址,协议>三元组信息提取出来发送给SAD CAM子模块703进行匹配,匹配成功后,SAD CAM子模块发送其匹配成功的地址以及匹配成功标志,SA参数信息存储子模块704根据SAD CAM子模块703发送过来匹配成功的标志和匹配地址,找到改地址中存储的SA信息以待IPSec协议封装处理模块读取,SA参数信息包括:安全参数索引SPI、IPSec协议类型、处理模式、目的IP地址、源IP地址、序列号、加密算法初始化向量IV、IV长度、加密算法类型、加密算法密钥、加密算法密钥长度、认证算法类型、认证算法密钥和认证算法密钥长度等信息。

图8为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的另一个具体实施方式的结构示意图。如图8所示, IPv6下IPSec协议外出处理硬件实现系统800包括:内网GMAC模块801、数据进入缓存模块802、IPSec协议封装处理模块803、SA匹配模块804、加密模块805、认证模块806、报文分片模块807、数据外出缓存模块808、外网GMAC模块809;其中内网GMAC模块801、数据进入缓存模块802、IPSec协议封装处理模块803、SA匹配模块804、加密模块805、认证模块806、报文分片模块807、数据外出缓存模块808、外网GMAC模块809可以分别和图1中所示的内网GMAC模块101、数据进入缓存模块102、IPSec协议封装处理模块103、SA匹配模块104、加密模块105、认证模块106、报文分片模块107、数据外出缓存模块108、外网GMAC模块109具有相同的结构,这里不再过多的阐述其具体的技术内容。

如图8所示,加密模块805进一步地包括:加密算法选择器8051、密钥处理子模块8052、拼接数据模块8053、拼接数据模块8054、AES子模块8055、3DES子模块8056、密文选择器8057、解拼接数据子模块8058。

其中,加密算法选择器8051,用于根据加密算法类型的控制信号选择AES子模块和3DES子模块两条通路中其中一条。例如,加密模块805接收到IPSec协议封装处理模块803发送过来的明文数据和加密算法类型的控制信号,加密算法选择器8051根据其加密算法类型的控制信号,将明文数据转发通向给AES子模块和3DES子模块两条通路其中一条。

密钥处理子模块8052,用于根据IPSec协议处理模块发送过来的定义好位宽格式的最大长度的加密密钥和实际该加密密钥的长度得出实际位宽的加密密钥。例如,根据接收到的SA参数信息中加密算法密钥和加密算法密钥长度,取出该长度位宽的加密密钥。

拼接数据模块8053和拼接数据模块8054,用于将按总线宽度的明文拼接成符合加密位宽的数据。例如,接收到总线位宽的明文数据先暂存下来等到符合加密算法需要的位宽明文数据,一起拼接成符合位宽的明文发送给AES子模块或3DES子模块。

AES子模块8055,用于对明文数据用AES算法处理,得出密文数据。例如,接收到一个待加密的明文数据,在该模块用AES算法对明文数据进行加密处理,处理结束将密文数据送出去。

3DES子模块8056,用于对明文数据用3DES算法处理,得出密文数据。例如,接收到一个待加密的明文数据,在该模块用3DES算法对明文数据进行加密处理,处理结束将密文数据送出去。

密文选择器8057,用于根据加密算法类型的控制信号选择AES子模块和3DES子模块两条通路中其中一条的密文。例如,密文选择器8057根据其加密算法类型的控制信号,将AES子模块和3DES子模块两条通路其中一条通路的密文数据转发出去。

解拼接数据子模块8058,用于将密文数据解分为符合总线宽度的密文数据。例如,接收密文数据后,解拼接数据子模块8058将密文数据解拼接成符合总线宽度的密文数据发送给IPSec协议封装处理模块。

图9为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中加密模块的具体实施方式的结构示意图;

如图9所示,加密模块900包括:加密算法选择器901、密钥处理子模块902、拼接数据模块903、拼接数据模块904、AES子模块905、3DES子模块906、密文选择器907、解拼接数据子模块908。在实施实例中具体操作为,加密算法选择器901接收到按总线宽度的明文数据和加密算法类型的控制信号,根据其加密算法类型的控制信号,将按总线宽度的明文数据转发通向给AES子模块905和3DES子模块906两条通路其中一条,在到达AES子模块905或3DSE模块906之前先经过拼接数据模块903或拼接数据模块904,拼接数据模块将总线位宽的明文数据先暂存下来等到符合加密算法需要的位宽明文数据,一起拼接成符合位宽的明文发送给AES子模块905或3DES子模块906,用AES算法加密处理完或用3DES算法处理完,将密文数据发送给密文选择器907,密文选择器907根据其加密算法类型的控制信号,将AES子模块和3DES子模块两条通路其中一条通路的密文数据转发给解拼接数据子模块908,解拼接数据子模块908再将密文数据解拼接成符合总线宽度的密文数据发送给IPSec协议封装处理模块。

图10为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的另一个具体实施方式的结构示意图。如图10所示, IPv6下IPSec协议外出处理硬件实现系统1000包括:内网GMAC模块1001、数据进入缓存模块1002、IPSec协议封装处理模块1003、SA匹配模块1004、加密模块1005、认证模块1006、报文分片模块1007、数据外出缓存模块1008、外网GMAC模块1009;其中内网GMAC模块1001、数据进入缓存模块1002、IPSec协议封装处理模块1003、SA匹配模块1004、加密模块1005、认证模块1006、报文分片模块1007、数据外出缓存模块1008、外网GMAC模块1009可以分别和图1中所示的内网GMAC模块101、数据进入缓存模块102、IPSec协议封装处理模块103、SA匹配模块104、加密模块105、认证模块106、报文分片模块107、数据外出缓存模块108、外网GMAC模块109具有相同的结构,这里不再过多的阐述其具体的技术内容。

如图10所示,认证模块1006进一步地包括:哈希算法选择器10061、认证密钥处理子模块10062、拼接数据模块10063、拼接数据模块10064、HMAC-SHA1-96子模块10065、AES-XCBC-MAC-96子模块10066、哈希值选择器10067、哈希值处理子模块10068。

其中,哈希算法选择器10061,用于根据认证算法类型的控制信号选择HMAC-SHA1-96子模块和AES-XCBC-MAC-96子模块两条通路中其中一条。例如,认证模块1006接收到IPSec协议封装处理模块1003发送过来的待认证数据和哈希算法类型的控制信号,哈希算法选择器10061根据其哈希算法类型的控制信号,将待认证数据转发通向给HMAC-SHA1-96子模块和AES-XCBC-MAC-96子模块两条通路其中一条。

认证密钥处理子模块10062,用于根据IPSec协议处理模块发送过来的定义好位宽格式的最大长度的认证密钥和实际该认证密钥的长度得出实际位宽的认证密钥。根据接收到的SA参数信息中认证算法密钥和认证算法密钥长度,取出该长度位宽的认证处理密钥。

拼接数据模块10063和拼接数据模块10064,用于将按总线宽度的待认证数据拼接成符合认证算法模块的位宽数据。例如,接收到总线位宽的待认证数据先暂存下来等到符合哈希算法需要的位宽待认证数据,一起拼接成符合位宽的待认证数据发送给HMAC-SHA1-96子模块和AES-XCBC-MAC-96子模块。

HMAC-SHA1-96子模块10065,用于对待认证数据用HMAC-SHA1-96算法处理,得出认证算法出后的数据。例如,接收到一个待认证处理的数据,在该模块用HMAC-SHA1-96算法对待认证数据进行哈希处理,处理结束将哈希值送出去。

AES-XCBC-MAC-96子模块10066,用于对待认证数据用AES-XCBC-MAC-96算法处理,得出认证算法出后的数据。例如,接收到一个待认证处理的数据,在该模块用HMAC-SHA1-96算法对待认证数据进行哈希处理,处理结束将哈希值送出去。

哈希值选择器10067,用于根据哈希算法类型的控制信号选择HMAC-SHA1-96子模块和AES-XCBC-MAC-96子模块两条通路中其中一条的哈希值。例如,哈希值选择器10067根据其哈希算法类型的控制信号,将HMAC-SHA1-96子模块和AES-XCBC-MAC-96子模块两条通路其中一条通路的哈希值转发出去。

哈希值处理子模块10068,用于将哈希算法模块发送过来的160bit哈希值提取前96位bit作为最终的认证数据,并将该数据解分为符合总线宽度的认证数据。例如,接收到160bit的哈希值后,提取前96位bit的哈希值数据作为最终的认证数据,并将该哈希值数据解分为符合总线宽度的认证数据。

图11为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中认证模块的具体实施方式的结构示意图;

如图11所示,认证模块1100进一步地包括:哈希算法选择器1101、认证密钥处理子模块1102、拼接数据模块1103、拼接数据模块1104、HMAC-SHA1-96子模块1105、AES-XCBC-MAC-96子模块1106、哈希值选择器1107、哈希值处理子模块1108。在实施实例中具体操作为,哈希算法选择器1101接收到按总线宽度的待认证数据和哈希算法类型的控制信号,根据其哈希算法类型的控制信号,将按总线宽度的待认证数据转发通向给HMAC-SHA1-96子模块1105和AES-XCBC-MAC-96子模块1106两条通路其中一条,在到达HMAC-SHA1-96子模块1105和AES-XCBC-MAC-96子模块1106之前先经过拼接数据模块1103或拼接数据模块1104,拼接数据模块将总线位宽的待认证数据先暂存下来等到符合哈希算法需要的位宽待认证数据,一起拼接成符合位宽的待认证数据发送给HMAC-SHA1-96子模块1105和AES-XCBC-MAC-96子模块1106,用HMAC-SHA1-96哈希算法处理完或用AES-XCBC-MAC-96哈希算法处理完,将哈希值发送给哈希值选择器1107,哈希值选择器1107根据其哈希算法类型的控制信号,将HMAC-SHA1-96子模块1105和AES-XCBC-MAC-96子模块1106两条通路其中一条通路的哈希值数据转发给哈希值处理子模块1108,哈希值处理子模块1108接收到160bit的哈希值后,提取前96位bit的哈希值数据作为最终的认证数据,并将该哈希值数据解分为符合总线宽度的认证数据。

图12为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的另一个具体实施方式的结构示意图。如图12所示, IPv6下IPSec协议外出处理硬件实现系统1200包括:内网GMAC模块1201、数据进入缓存模块1202、IPSec协议封装处理模块1203、SA匹配模块1204、加密模块1205、认证模块1206、报文分片模块1207、数据外出缓存模块1208、外网GMAC模块1209;其中内网GMAC模块1201、数据进入缓存模块1202、IPSec协议封装处理模块1203、SA匹配模块1204、加密模块1205、认证模块1206、报文分片模块1207、数据外出缓存模块1208、外网GMAC模块1209可以分别和图1中所示的内网GMAC模块101、数据进入缓存模块102、IPSec协议封装处理模块103、SA匹配模块104、加密模块105、认证模块106、报文分片模块107、数据外出缓存模块108、外网GMAC模块109具有相同的结构,这里不再过多的阐述其具体的技术内容。

如图12所示,报文分片模块1207进一步地包括:报文数据存储子模块12071、分片模块12072。

其中,报文数据存储子模块12071,用于存储整个IPSec协议处理完成的IP报文包,以待分片模块读取。例如,报文数据存储子模块12071存储IPSec协议封装处理模块1203发送过来已经经过IPSec协议安全处理的一个完整的IP报文包,以待分片模块12072读取。

分片模块12072,用于根据最大传送单元(MTU)将IPSec协议处理完成的IP报文包进行分片处理,将IP首部中的一些必要的部分提取出来复制到所有的分片中,IP报文中的载荷数据根据MTU值进行分片,最后将与一个数据报的分片有关的字段:标识、标志和分片偏移组装进各个分片。例如,从报文数据存储子模块12071中读取已经经过IPSec协议安全处理的IP报文,根据最大传送单元(MTU)将该报文包进行分片处理,将IP首部中的一些必要的部分提取出来复制到所有的分片中,IP报文中的载荷数据根据MTU值进行分片,最后将与一个数据报的分片有关的字段:标识、标志和分片偏移组装进各个分片。

图13为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中报文分片模块的具体实施方式的结构示意图;

如图13所示,报文分片模块1300进一步地包括:报文数据存储子模块1301、分片模块1302。在实施实例中具体操作为,首先报文数据存储子模块1301将IPSec协议封装处理模块发送过来已经经过IPSec协议安全处理的一个完整的IP报文包存储下来,以待分片模块1307读取。分片模块1307根据最大传送单元(MTU)将该报文包进行分片处理,将IP首部中的一些必要的部分提取出来复制到所有的分片中,IP报文中的载荷数据根据MTU值进行分片,最后将与一个数据报的分片有关的字段:标识、标志和分片偏移组装进各个分片。

图14为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的另一个具体实施方式的结构示意图;

如图14所示, IPv6下IPSec协议外出处理硬件实现系统1200包括:内网GMAC模块1401、数据进入缓存模块1402、IPSec处理前报文数据存储单元14031、SA信息存储单元14032、IPSec封装处理控制子模块14033、密文数据存储单元14034、认证后数据存储单元14035、IPSec处理后报文数据存储单元14036、SA匹配模块1404、加密模块1405、认证模块1406、报文分片模块1407、数据外出缓存模块1408、外网GMAC模块1409;其中内网GMAC模块1401、数据进入缓存模块1402、IPSec处理前报文数据存储单元14031、SA信息存储单元14032、IPSec封装处理控制子模块14033、密文数据存储单元14034、认证后数据存储单元14035、IPSec处理后报文数据存储单元14036、SA匹配模块1404、加密模块1405、认证模块1206、报文分片模块1407、数据外出缓存模块1408、外网GMAC模块1409可以分别和图4中所示的内网GMAC模块401、数据进入缓存模块402、IPSec处理前报文数据存储单元4031、SA信息存储单元4032、IPSec封装处理控制子模块4033、密文数据存储单元4034、认证后数据存储单元4035、IPSec处理后报文数据存储单元4036、SA匹配模块404、加密模块405、认证模块406、报文分片模块407、数据外出缓存模块408、外网GMAC模块409具有相同的结构,这里不再过多的阐述其具体的技术内容。

如图14所示,IPSec封装处理控制子模块14033包括:IPSec协议处理主控子模块140331、计算填充项长度子模块140332、封装明文子模块140333、封装认证数据模块140334。

其中,IPSec协议处理主控子模块140331,用于对IPSec协议封装处理控制模块14033中各个模块进行协调工作控制,发送SA匹配模块1404IP报文头信息,根据SA匹配模块1404发送回来的SA信息判断IPSec处理所采用的协议和处理时模式,将相关信息发送给计算填充项模块140332、封装明文子模块140333和封装待认证数据子模块140334,以及最后封装经过IPSec协议处理的报文。例如,一个待IPSec协议安全处理的IP报文,IPSec封装处理主控模块140331从IPSec处理前报文数据存储单元14031中读取IP报文中IP头头信息,发送给SA匹配模块1404,然后等SA匹配模块1404处理完,从SA信息存储单元14032中读取该IP报文需要IPSec协议安全处理对应的SA相关信息参数,并根据其中一部分信息判断选择:IPSec协议处理是采用AH协议还是ESP协议;处理模式是采用传输模式还是隧道模式;加密算法类型是采用AES-CBC算法、3DES算法还是NULL;验证算法类型是采用HMAC-SHA1-96算法、AES-XCBC-MAC-96算法还是NULL。IPSec协议处理主控子模块140331将从SA信息存储单元14032中读取该IP报文需要IPSec协议安全处理对应的SA相关信息参数中加密算法密钥的长度和从IPSec处理前报文数据存储单元14031中读取IP报文中IP头头信息中IP报文头中载荷长度的信息发送给计算填充项长度子模块140332,等计算填充项长度子模块140332处理完,接收该模块发送回来的符合加密模块1405的数据位宽要求需要填充项的长度,IPSec封装处理主控模块140331将该长度信息和SA信息中协议类型和处理模式转发给封装明文子模块140333。当加密完成后IPSec协议处理主控子模块140331将接收到的密文和其他待验证数据转发发送给封装待认证数据子模块140334。最后IPSec协议处理主控子模块140331读取IPSec处理前报文数据存储单元14031中IP头信息、读取SA信息存储模块14032中SA部分信息包括:安全参数索引SPI,序列号,初始化向量、读取密文数据存储单元14034中加密完成的密文数据和读取认证后数据存储单元14035中认证数据封装在一个完整IP包存储到IPSec处理后报文数据存储单元14036中,并根据交互模块的控制信号适时地发送给报文分片模块1407。

计算填充项长度子模块140332,用于根据IPSec协议处理主控子模块140331发送过来的IP头中载荷长度信息计算出需要填充数据的长度。例如,计算填充项长度子模块140332 接收IPSec协议处理主控子模块140331发送过来的IP头中载荷长度信息,根据其信息计算出需要填充数据的长度,然后再转发给IPSec协议处理主控子模块140331。

封装明文子模块140333,用于对需要加密的明文进行封装,发送给加密模块1405。例如,封装明文子模块140333接收IPSec协议处理主控子模块140331发送过来的待封装的明文数据进行封装,然后发送给加密模块1405。

封装待认证数据子模块140334,用于对待认证处理的数据进行封装,发送给认证模块1406。例如,封装明文子模块140334接收IPSec协议处理主控子模块140331发送过来的待认证的数据进行封装,然后发送给认证模块1406。

图15为本发明提供的IPv6下IPSec协议外出处理硬件实现系统的一个具体实施实例中IPSec封装处理控制子模块的具体实施方式的结构示意图;

如图15所示,IPSec封装处理控制子模块1500包括:IPSec协议处理主控子模块1501、计算填充项长度子模块1502、封装明文子模块1503、封装认证数据模块1504。在实施实例中具体操作为,一个待IPSec协议安全处理的IP报文,IPSec封装处理主控模块1501从IPSec处理前报文数据存储单元中读取IP报文中IP头头信息,发送给SA匹配模块,然后等SA匹配模块处理完,从SA信息存储单元中读取该IP报文需要IPSec协议安全处理对应的SA相关信息参数,并根据其中一部分信息判断选择:IPSec协议处理是采用AH协议还是ESP协议;处理模式是采用传输模式还是隧道模式;加密算法类型是采用AES-CBC算法、3DES算法还是NULL;验证算法类型是采用HMAC-SHA1-96算法、AES-XCBC-MAC-96算法还是NULL。IPSec协议处理主控子模块1501将从SA信息存储单元中读取该IP报文需要IPSec协议安全处理对应的SA相关信息参数中加密算法密钥的长度和从IPSec处理前报文数据存储单元中读取IP报文中IP头头信息中IP报文头中载荷长度的信息发送给计算填充项长度子模块1502,计算填充项长度子模块1502 接收IPSec协议处理主控子模块1501发送过来的IP头中载荷长度信息,根据其信息计算出需要填充数据的长度,然后再转发给IPSec协议处理主控子模块1501,IPSec封装处理主控模块1501将该长度信息和SA信息中协议类型和处理模式转发给封装明文子模块1503。封装明文子模块1503接收IPSec协议处理主控子模块1501发送过来的待封装的明文数据进行封装,然后发送给加密模块。当加密完成后IPSec协议处理主控子模块1501将接收到的密文和其他待验证数据转发发送给封装待认证数据子模块1504。最后IPSec协议处理主控子模块1501接收到认证数据,再读取IPSec处理前报文数据存储单元中IP头信息、读取SA信息存储模块中SA部分信息包括:安全参数索引SPI,序列号,初始化向量、读取密文数据存储单元中加密完成的密文数据和读取认证后数据存储单元中认证数据封装在一个完整IP包存储到IPSec处理后报文数据存储单元中,并根据交互模块的控制信号适时地发送给报文分片模块。

本发明提供了一种IPv6下IPSec协议外出处理硬件实现系统,通过采用数据进入缓存模块、数据外出缓存模块实现数据写入和读出的乒乓操作,提高硬件IPSec协议外出处理效率。本发明提供了一种IPv6下IPSec协议外出处理硬件实现系统,通过IPSec协议外出处理实现都采用硬件结构模块,包括:内网GMAC模块、数据进入缓存模块、IPSec协议封装处理模块、SA匹配模块、加密模块、认证模块、报文分片模块、数据外出缓存模块、外网GMAC模块,有效的提高了基于软件的IPSec协议外出处理速率,将CPU在处理过程中完全释放出来。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号