一种基于FPGA的IPsec抗重放方法技术

技术编号:37997563 阅读:6 留言:0更新日期:2023-06-30 10:11
本发明专利技术涉及一种基于FPGA的IPsec抗重放方法,包括:外网软件单元接收到IPsec数据报文后确定该IPsec数据报文唯一的SA信息;对SA信息对应的序列号进行抗重放判断;判断该序列号是重复的序列号时丢弃该IPsec数据报文,不是则将SA信息和IPsec数据报文封装成带有私有头部的第一数据报文,并将第一数据报文发送给FPGA硬件单元;FPGA硬件单元对第一数据报文中的IPsec数据报文进行数据完整性校验,并将校验结果封装在第二数据报文发送回外网软件单元;外网软件单元从接收到的第二数据报文提取出校验结果,校验结果为校验成功时则将所记录的序列号加入位图中;校验不成功则清除记录的序列号;解决现有隔离网关中IPsec抗重放机制的可靠性较差的问题。可靠性较差的问题。可靠性较差的问题。

【技术实现步骤摘要】
一种基于FPGA的IPsec抗重放方法


[0001]本专利技术涉及网络通信协议数据处理和数据通信领域,尤其涉及一种基于FPGA的IPsec抗重放方法。

技术介绍

[0002]随着计算机网络的不断发展与普及,网络攻击无处不在网络信息安全越来越受到人们的关注与重视。网络攻击者会对网络数据流进行修改或者伪造数据流,具体可分为假冒、重放、消息修改和拒绝服务等四类。重放攻击是指攻击者首先通过网络截取通信对等双方正常通信的数据包,然后将数据包原封不动或者修改后再发送给数据包的接收者,以此来冒充合法的一方来和另一方进行通信。遭受重放攻击企业用户往往会选择VPN(Virtual Private Network,虚拟专用网络)隔离网关,这是一种利用IPsec(Internet Protocol Security,互联网安全协议)技术实现网络数据加密传输并对可信网络(即内网)和不可信网络(即外网)进行安全隔离的设备,可有效防止非法数据进入可信网络,避免可信网络内的主机被非法控制以及内网的敏感数据泄露到外网。
[0003]IPsec抗重放技术是一种VPN隔离网关抵抗重放攻击的有效手段。传统隔离网关的FPGA单元与外网软件单元之间存在着数据包信息不同步的漏洞,当外网的抗重放检测模块检测通过了某数据包,但是FPGA单元没有通过,则会造成正常数据包的丢失与误判。这样当接收方外网软件单元抗重放模块更新已确认收到的IPsec数据包序列号,但该数据包未通过FPGA单元数据完整性校验时,重传的数据包会被外网软件单元更新后的抗重放窗口过滤丢弃,导致信息缺失。

技术实现思路

[0004]本专利技术针对现有技术中存在的技术问题,提供一种基于FPGA的IPsec抗重放方法,解决现有隔离网关中IPsec抗重放机制的可靠性较差的问题。
[0005]根据本专利技术的第一方面,提供了一种基于FPGA的IPsec抗重放方法,包括:
[0006]步骤1,外网软件单元接收到IPsec数据报文后确定该IPsec数据报文唯一的SA信息;对所述SA信息对应的序列号进行抗重放判断;判断该序列号是重复的序列号时丢弃该IPsec数据报文,不是则执行步骤2;
[0007]每个所述SA信息绑定有一个用来记录已确认收到的所述IPsec数据报文的序列号的位图;
[0008]步骤2,所述外网软件单元将所述SA信息和所述IPsec数据报文封装成带有私有头部的第一数据报文,并将所述第一数据报文发送给FPGA硬件单元;
[0009]步骤3,所述FPGA硬件单元对接收到的所述第一数据报文中的IPsec数据报文进行数据完整性校验,并将校验结果封装在只包含私有头部的第二数据报文发送回所述外网软件单元;
[0010]步骤4,所述外网软件单元从接收到的所述第二数据报文提取出校验结果,所述校
验结果为校验成功时则将所述步骤1中记录的序列号加入所述位图中;校验不成功则清除所述步骤1中记录的序列号。
[0011]在上述技术方案的基础上,本专利技术还可以作出如下改进。
[0012]可选的,所述步骤1包括:
[0013]步骤101,所述外网软件单元对接收到的所述IPsec数据报文进行缓存后进行解析,提取得到所述IPsec数据报文中的序列号、SPI、协议号和目的IP地址,根据所述SPI、协议号和目的IP在所述外网软件单元中的SA同步模块进行三元查找,确定所述IPsec数据报文唯一的所述SA信息。
[0014]可选的,所述步骤1包括:
[0015]步骤102,提取所述IPsec数据报文中的序列号字段,确定所述序列号的位置:
[0016]所述序列号在抗重放窗口左侧时,则判断该序列号是重复的序列号并丢弃该IPsec数据报文;
[0017]所述序列号在抗重放窗口右侧时,则判断该序列号是未收到的序列号并将该序列号的值进行保存,执行步骤2;
[0018]所述序列号在抗重放窗口内时,进一步判断对应的位图的比特位情况,比特位为1时,判断该序列号是重复的序列号并丢弃该IPsec数据报文;比特位为0时,则判断该序列号是未收到的序列号并将该序列号的值进行保存执行步骤2。
[0019]可选的,所述步骤2中生成的所述第一数据报文包括:包含所述SA信息的私有头部、中间的所述IPsec数据报文和位于尾部的FPGA数据完整性校验字段。
[0020]可选的,所述步骤3包括:
[0021]步骤301,所述FPGA硬件单元接收到所述第一数据报文后,从所述私有头部中提取SA映射序号,基于所述SA映射序号确定匹配的SA信息;
[0022]步骤302,对所述第一数据报文中的所述私有头部进行剥离后,定位到所述IPsec数据报文的加密数据部分,对所述加密数据部分包含的所述FPGA数据完整性校验字段进行CRC循环冗余校验;校验结果通过,则将反馈值R置为1;否则,将所述反馈值R置为0;
[0023]步骤303,将校验后的所述反馈值R填入所述私有头部的反馈结果字段中,封装成一个只包含所述私有头部的第二数据报文,将所述第二数据报文发送给所述外网软件单元。
[0024]可选的,所述步骤4中所述校验结果为成功时还包括:
[0025]所述序列号在所述抗重放窗口内时,将该序列号对应的比特位置1,并将所述抗重放窗口的下限移动到第一个比特位值为0的位置;
[0026]所述序列号在所述抗重放窗口右侧,将该序列号对应的比特位置1,并将所述抗重放窗口的上限移动到该比特位。
[0027]可选的,所述步骤4中所述外网软件单元设置有超时机制,超过设定的时间阈值没有收到所述第一数据报文对应的所述第二数据报文时,通知不进行抗重放窗口和位图的更新并清除所述步骤1中记录的序列号。
[0028]可选的,所述IPsec抗重放方法还包括:
[0029]步骤5,所述外网软件单元接收到从发送方发来的设定数量的所述IPsec数据报文时,根据已收到的所述序列号发送IPsec确认数据包给所述发送方;
[0030]步骤6,所述发送方根据所述IPsec确认数据包中的序列号信息判断是否有需要重传的未确认的IPsec数据报文的数据包,并且删除缓存中已确认的IPsec数据报文的数据包。
[0031]可选的,所述IPsec确认数据包的内容包括:标识序列号、ACK字段和SACK字段;
[0032]所述标识序列号用于标识特殊消息;
[0033]所述ACK字段表示用于确认的IPsec数据报文的序列号;
[0034]所述SACK字段表示已收到的IPsec数据报文的序列号的范围。
[0035]可选的,所述步骤5包括:
[0036]步骤501,所述外网软件单元对查找到对应SA的IPsec数据报文的数据包的个数进行统计,当计数达到设定数量时,遍历查询所述步骤4更新后的所述位图,返回第一个bit位为0的序列号N和之后bit位为1的序列号范围K,并将N和K发送给所述外网软件单元的数据包处理模块;
[0037]步本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的IPsec抗重放方法,其特征在于,所述IPsec抗重放方法包括:步骤1,外网软件单元接收到IPsec数据报文后确定该IPsec数据报文唯一的SA信息;对所述SA信息对应的序列号进行抗重放判断;判断该序列号是重复的序列号时丢弃该IPsec数据报文,不是则执行步骤2;每个所述SA信息绑定有一个用来记录已确认收到的所述IPsec数据报文的序列号的位图;步骤2,所述外网软件单元将所述SA信息和所述IPsec数据报文封装成带有私有头部的第一数据报文,并将所述第一数据报文发送给FPGA硬件单元;步骤3,所述FPGA硬件单元对接收到的所述第一数据报文中的IPsec数据报文进行数据完整性校验,并将校验结果封装在只包含私有头部的第二数据报文发送回所述外网软件单元;步骤4,所述外网软件单元从接收到的所述第二数据报文提取出校验结果,所述校验结果为校验成功时则将所述步骤1中记录的序列号加入所述位图中;校验不成功则清除所述步骤1中记录的序列号。2.根据权利要求1所述的IPsec抗重放方法,其特征在于,所述步骤1包括:步骤101,所述外网软件单元对接收到的所述IPsec数据报文进行缓存后进行解析,提取得到所述IPsec数据报文中的序列号、SPI、协议号和目的IP地址,根据所述SPI、协议号和目的IP在所述外网软件单元中的SA同步模块进行三元查找,确定所述IPsec数据报文唯一的所述SA信息。3.根据权利要求1所述的IPsec抗重放方法,其特征在于,所述步骤1包括:步骤102,提取所述IPsec数据报文中的序列号字段,确定所述序列号的位置:所述序列号在抗重放窗口左侧时,则判断该序列号是重复的序列号并丢弃该IPsec数据报文;所述序列号在抗重放窗口右侧时,则判断该序列号是未收到的序列号并将该序列号的值进行保存,执行步骤2;所述序列号在抗重放窗口内时,进一步判断对应的位图的比特位情况,比特位为1时,判断该序列号是重复的序列号并丢弃该IPsec数据报文;比特位为0时,则判断该序列号是未收到的序列号并将该序列号的值进行保存执行步骤2。4.根据权利要求1所述的IPsec抗重放方法,其特征在于,所述步骤2中生成的所述第一数据报文包括:包含所述SA信息的私有头部、中间的所述IPsec数据报文和位于尾部的FPGA数据完整性校验字段。5.根据权利要求4所述的IPsec抗重放方法,其特征在于,所述步骤3包括:步骤301,所述FPGA硬件单元接收到所述第一数据报文后,从所述私有头部中提取SA映射序号,基于所述SA映射序号确定匹配的SA信息;步骤302,对所述第一数据报文中的所述私有头部进行剥离后,定位到所述IPsec数据报文的加密数据部分,对所述加密数据部分包含的所述FPGA数据完整性校验字段进行CRC循环冗余校验;校验结果通过,则将反馈值R置为1;否则,将所述反馈值R置为0;步骤303,将校验后的...

【专利技术属性】
技术研发人员:刘锋李书胜沈永超彭凯李梦君李志康薛楠楠梅松
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1