CN106656501A - 一种数据包验证方法及系统 - Google Patents

一种数据包验证方法及系统 Download PDF

Info

Publication number
CN106656501A
CN106656501A CN201610848350.2A CN201610848350A CN106656501A CN 106656501 A CN106656501 A CN 106656501A CN 201610848350 A CN201610848350 A CN 201610848350A CN 106656501 A CN106656501 A CN 106656501A
Authority
CN
China
Prior art keywords
packet
verified
regular expression
fpga
micronucleus
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.)
Pending
Application number
CN201610848350.2A
Other languages
English (en)
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.)
Shenzhen Pango Microsystems Co Ltd
Original Assignee
Shenzhen Pango Microsystems Co Ltd
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 Shenzhen Pango Microsystems Co Ltd filed Critical Shenzhen Pango Microsystems Co Ltd
Priority to CN201610848350.2A priority Critical patent/CN106656501A/zh
Publication of CN106656501A publication Critical patent/CN106656501A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种数据包验证方法及系统,该方法包括:服务器接收待验证数据包;FPGA从服务器接收待验证数据包及用于验证待验证数据包的正则表达式;FPGA并行调用多个微核执行正则表达式对待验证数据包进行验证;FPGA将各微核的检验结果合并后发送至服务器。本发明基于FPGA实现的并行正则表达式算法以更短的周期实现算法加速,支持高速实时数据包检查,FPGA可根据需要同时并行例化多个算法计算核,实现算法的倍数提升。

Description

一种数据包验证方法及系统
技术领域
本发明涉及信息安全领域,尤其涉及一种数据包验证方法及系统。
背景技术
为了保证信息的安全,现有技术提供了多种验证方式,其中,正则表达式因为其特殊的数据处理特点,已成为现在网络数据检测和识别的软件工具语言。
在服务器上,基于软件实现的正则表达式采用串行顺序方式执行指令,当今随着互联网发展与普及,服务器对海量网络数据包的检查变得越发困难,难以进一步提升检测速度。
发明内容
本发明提供了一种数据包验证方法及系统,以提供一种新的数据包验证方法。
本发明提供了一种数据包验证方法,包括:
服务器接收待验证数据包;
FPGA从服务器接收待验证数据包及用于验证待验证数据包的正则表达式;
FPGA并行调用多个微核执行正则表达式对待验证数据包进行验证;
FPGA将各微核的检验结果合并后发送至服务器。
进一步的,在FPGA并行调用多个微核之前,还包括:FPGA获取待验证数据包的所有取值,根据所有取值的数量,并行调用对应数量的微核。
进一步的,在并行调用对应数量的微核之后,还包括:FPGA根据待验证数据包的大小及速度,调整被调用微核的数量。
进一步的,还包括:FPGA根据正则表达式的检验结果,将待验证数据包并行跳转至其他被调用微核。
进一步的,还包括:FPGA从服务器获取新的正则表达式,并替换当前使用的正则表达式。
进一步的,FPGA并行调用多个微核执行正则表达式对待验证数据包进行验证包括:
FPGA将从服务器接收的正则表达式缓存在正则表达式矩阵中;
FPGA将从服务器接收的网络数据包以包的形式缓存在网络数据包中;
FPGA每次从数据包中读出一个字节,将字节并行和所有可能字符比较,每个比较结果输出一个比特,所有比特组成一个判决数组;
FPGA将每个判决数组和正则表达式矩阵输出的掩膜数据进行与操作,得到一个判决验证结果输出;
FPGA从正则表达式矩阵中读取下一个掩膜数据,然后读取下一个字节,重复以上步骤,直到数据包检验结束;
FPGA将待验证数据包中各字节对应的判决验证结果,合并得到待验证数据包的检验结果。
本发明提供了一种数据包验证系统,包括:服务器及FPGA,FPGA包括网络数据包分配矩阵模块、多个数据包微核判断模块、控制模块、正则表达式模块及判断结果汇总模块,其中,
服务器用于接收待验证数据包;
网络数据包分配矩阵模块用于从服务器接收待验证数据包;
正则表达式模块用于获取用于验证待验证数据包的正则表达式;
数据包微核判断模块用于执行正则表达式对待验证数据包进行验证
控制模块用于并行调用多个数据包微核判断模块执行正则表达式对待验证数据包进行验证;
判断结果汇总模块用于将各微核的检验结果合并后发送至服务器。
进一步的,在FPGA并行调用多个微核之前,控制模块还用于获取待验证数据包的所有取值,根据所有取值的数量,并行调用对应数量的数据包微核判断模块。
进一步的,在并行调用对应数量的微核之后,控制模块还用于根据待验证数据包的大小及速度,调整被调用数据包微核判断模块的数量。
进一步的,控制模块还用于根据正则表达式的检验结果,将待验证数据包并行跳转至其他被调用数据包微核判断模块。
进一步的,正则表达式模块还用于从服务器获取新的正则表达式,并替换当前使用的正则表达式。
进一步的,数据包微核判断模块用于将从服务器接收的正则表达式缓存在正则表达式矩阵中,将从服务器接收的网络数据包以包的形式缓存在网络数据包中,每次从数据包中读出一个字节,将每个字节并行和所有可能字符比较,每个比较结果输出一个比特,所有比特组成一个判决数组,将每个判决数组和正则表达式矩阵输出的掩膜数据进行与操作,得到一个判决验证结果输出,从正则表达式矩阵中读取下一个掩膜数据,然后读取下一个字节,重复以上步骤,直到数据包检验结束,将待验证数据包中各字节对应的判决验证结果,合并得到待验证数据包的检验结果。
本发明的有益效果:
本发明提供了一种数据包验证方法,基于FPGA实现的并行正则表达式算法以更短的周期实现算法加速,支持高速实时数据包检查,FPGA可根据需要同时并行例化多个算法计算核,实现算法的倍数提升。
附图说明
图1为本发明第一实施例提供的数据包验证系统的结构示意图;
图2为本发明第二实施例提供的数据包验证方法的流程图;
图3为本发明第三实施例涉及的验证系统的示意图;
图4为本发明第三实施例涉及的算法对比示意图;
图5为本发明第三实施例涉及的正则表达式实现方法的示意图。
具体实施方式
现通过具体实施方式结合附图的方式对本发明做输出进一步的诠释说明。
第一实施例:
图1为本发明第一实施例提供的数据包验证系统的结构示意图,由图1可知,在本实施例中,本发明提供的数据包验证系统包括:服务器1及FPGA2,FPGA2包括网络数据包分配矩阵模块21、多个数据包微核判断模块22、控制模块23、正则表达式模块24及判断结果汇总模块25,其中,
服务器1用于接收待验证数据包;
网络数据包分配矩阵模块21用于从服务器接收待验证数据包;
正则表达式模块24用于获取用于验证待验证数据包的正则表达式;
数据包微核判断模块22用于执行正则表达式对待验证数据包进行验证
控制模块23用于并行调用多个数据包微核判断模块执行正则表达式对待验证数据包进行验证;
判断结果汇总模块25用于将各微核的检验结果合并后发送至服务器。
在一些实施例中,在FPGA并行调用多个微核之前,上述实施例中的控制模块23还用于获取待验证数据包的所有取值,根据所有取值的数量,并行调用对应数量的数据包微核判断模块。
在一些实施例中,在并行调用对应数量的微核之后,上述实施例中的控制模块23还用于根据待验证数据包的大小及速度,调整被调用数据包微核判断模块的数量。
在一些实施例中,上述实施例中的控制模块23还用于根据正则表达式的检验结果,将待验证数据包并行跳转至其他被调用数据包微核判断模块。
在一些实施例中,上述实施例中的正则表达式模块24还用于从服务器获取新的正则表达式,并替换当前使用的正则表达式。
在一些实施例中,上述实施例中的数据包微核判断模块22用于将从服务器接收的正则表达式缓存在正则表达式矩阵中,将从服务器接收的网络数据包以包的形式缓存在网络数据包中,每次从数据包中读出一个字节,将每个字节并行和所有可能字符比较,每个比较结果输出一个比特,所有比特组成一个判决数组,将每个判决数组和正则表达式矩阵输出的掩膜数据进行与操作,得到一个判决验证结果输出,从正则表达式矩阵中读取下一个掩膜数据,然后读取下一个字节,重复以上步骤,直到数据包检验结束,将待验证数据包中各字节对应的判决验证结果,合并得到待验证数据包的检验结果。
第二实施例:
图2为本发明第二实施例提供的数据包验证方法的流程图,由图2可知,在本实施例中,本发明提供的数据包验证方法包括:
S201:服务器接收待验证数据包;
S202:FPGA从服务器接收待验证数据包及用于验证待验证数据包的正则表达式;
S203:FPGA并行调用多个微核执行正则表达式对待验证数据包进行验证;
S204:FPGA将各微核的检验结果合并后发送至服务器。
在一些实施例中,上述实施例中的方法在FPGA并行调用多个微核之前,还包括:FPGA获取待验证数据包的所有取值,根据所有取值的数量,并行调用对应数量的微核。
在一些实施例中,上述实施例中的方法在并行调用对应数量的微核之后,还包括:FPGA根据待验证数据包的大小及速度,调整被调用微核的数量。
在一些实施例中,上述实施例中的方法还包括:FPGA根据正则表达式的检验结果,将待验证数据包并行跳转至其他被调用微核。
在一些实施例中,上述实施例中的方法还包括:FPGA从服务器获取新的正则表达式,并替换当前使用的正则表达式。
在一些实施例中,上述实施例中的FPGA并行调用多个微核执行正则表达式对待验证数据包进行验证包括:
FPGA将从服务器接收的正则表达式缓存在正则表达式矩阵中;
FPGA将从服务器接收的网络数据包以包的形式缓存在网络数据包中;
FPGA每次从数据包中读出一个字节,将每个字节并行和所有可能字符比较,每个比较结果输出一个比特,所有比特组成一个判决数组;
FPGA将每个判决数组和正则表达式矩阵输出的掩膜数据进行与操作,得到一个判决验证结果输出;
FPGA从正则表达式矩阵中读取下一个掩膜数据,然后读取下一个字节,重复以上步骤,直到数据包检验结束;
FPGA将待验证数据包中各字节对应的判决验证结果,合并得到待验证数据包的检验结果。
现结合具体应用场景对本发明做进一步的诠释说明。
第三实施例:
针对基于软件实现的正则表达式采用串行顺序方式执行指令,难以进一步提升很检测速度。本实施例提供了新的验证系统,如图3所示,基于FPGA的硬件以PCIE总线结合到服务器系统中,按服务器的指令从服务器中读取数据和正则表达式算法,通过并行例化多个数据包微处理核实现并行正则表达式检验,把最后的检验结果上传到服务器。本产品使用基于FPGA硬件实现的正则表达式算法系统,首先FPGA以类似DMA的功能,分担服务器对网络数据包的处理,其次基于FPGA实现的并行正则表达式算法以更短的周期实现算法加速,支持高速实时数据包检查,最后FPGA可根据需要同时并行例化多个算法计算核,实现算法的倍数提升。
具体的,在图3中,网络数据包分配矩阵:通过PCIE接口接收来自服务器的网络数据包,缓存在存储单元DDR中。数据包微判断核:对网络数据包进行判断给出结果网络数据包:查看分配矩阵的数据信息,读取网络数据包。正则表达式判断:依次比较网络数据包中的数据是否符合正则表达式。判断结果:把判断结果上传给判断结果汇总。正则表达式判断:正则表达式的判断规则,可通过PCIE进行更新。判断结果汇总:把判断结果汇总,上传会服务器。
例如对正则表达式(11|22|33|A|B|C)的计算,如图4所示,左边:处理器的串行处理过程,最坏需要6级处理,右边:FPGA的并行处理速度更快,最坏需要2级处理。
在实际应用中,本产品如图3所示,整个正则表达式算法系统,由网络数据包分配矩阵通过PCIe接口接收并缓存来自服务器的数据包,各微处理器在空闲时查看分配矩阵的数据状态,然后去除数据进行分析。最后各处理器的判断结果汇总,上传回服务器。其中架构可以支持多微处理器同时进行数据处理,且微处理器的个数可以根据网络数据的大小和速度做调整。
本产品如图4所示,对正则表达式算法的实现,基于FPGA硬件可采用并行字符检验,同时支持并行跳转,以便适配更宽范围的正则表达式,支持高速算法。
本产品如图5所示,以只有8个字符有效为例的系统架构,本实施例提供的验证方法包括:
S51.FPGA将从服务器接收的正则表达式缓存在正则表达式矩阵中
S52.FPGA将从服务器接收的网络数据包以包的形式缓存在网络数据包RAM中
S53.FPGA每次从数据包RAM中读出一个Byte
S54.每个Byte并行和所有可能字符比较,每个比较结果输出一个bit(相同为1,不同为0),所有比特组成一个判决数组Pattern(有多少个可能字符,Pattern就有多少Bit)
S55.每个Pattern和正则表达式矩阵输出的掩膜数据Mask进行‘与’操作,得到一个判决验证结果(即‘与’结果)后输出;
S56.从正则表达式矩阵中读取下一个Mask数据,然后读取下一个Byte,重复以上步骤,直到结束得到检验结果;将待验证数据包中各字节对应的判决验证结果,合并得到所述待验证数据包的检验结果。
综上可知,通过本发明的实施,至少存在以下有益效果:
本发明提供了一种数据包验证方法,基于FPGA实现的并行正则表达式算法以更短的周期实现算法加速,支持高速实时数据包检查,FPGA可根据需要同时并行例化多个算法计算核,实现算法的倍数提升。
以上仅是本发明的具体实施方式而已,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施方式所做的任意简单修改、等同变化、结合或修饰,均仍属于本发明技术方案的保护范围。

Claims (12)

1.一种数据包验证方法,其特征在于,包括:
服务器接收待验证数据包;
FPGA从所述服务器接收所述待验证数据包及用于验证所述待验证数据包的正则表达式;
所述FPGA并行调用多个微核执行所述正则表达式对所述待验证数据包进行验证;
所述FPGA将各微核的检验结果合并后发送至所述服务器。
2.如权利要求1所述的数据包验证方法,其特征在于,在FPGA并行调用多个微核之前,还包括:所述FPGA获取所述待验证数据包的所有取值,根据所述所有取值的数量,并行调用对应数量的微核。
3.如权利要求2所述的数据包验证方法,其特征在于,在并行调用对应数量的微核之后,还包括:所述FPGA根据待验证数据包的大小及速度,调整被调用微核的数量。
4.如权利要求1所述的数据包验证方法,其特征在于,还包括:所述FPGA根据所述正则表达式的检验结果,将待验证数据包并行跳转至其他被调用微核。
5.如权利要求1所述的数据包验证方法,其特征在于,还包括:所述FPGA从所述服务器获取新的正则表达式,并替换当前使用的正则表达式。
6.如权利要求1至5任一项所述的数据包验证方法,其特征在于,所述FPGA并行调用多个微核执行所述正则表达式对所述待验证数据包进行验证包括:
所述FPGA将从服务器接收的正则表达式缓存在正则表达式矩阵中;
所述FPGA将从服务器接收的网络数据包以包的形式缓存在网络数据包中;
所述FPGA每次从数据包中读出一个字节,将字节并行和所有可能字符比较,每个比较结果输出一个比特,所有比特组成一个判决数组;
所述FPGA将每个判决数组和所述正则表达式矩阵输出的掩膜数据进行与操作,得到一个判决验证结果输出;
所述FPGA从正则表达式矩阵中读取下一个掩膜数据,然后读取下一个字节,重复以上步骤,直到数据包检验结束;
所述FPGA将待验证数据包中各字节对应的判决验证结果,合并得到所述待验证数据包的检验结果。
7.一种数据包验证系统,其特征在于,包括:服务器及FPGA,所述FPGA包括网络数据包分配矩阵模块、多个数据包微核判断模块、控制模块、正则表达式模块及判断结果汇总模块,其中,
所述服务器用于接收待验证数据包;
所述网络数据包分配矩阵模块用于从所述服务器接收所述待验证数据包;
所述正则表达式模块用于获取用于验证所述待验证数据包的正则表达式;
所述数据包微核判断模块用于执行所述正则表达式对所述待验证数据包进行验证
所述控制模块用于并行调用多个所述数据包微核判断模块执行所述正则表达式对所述待验证数据包进行验证;
所述判断结果汇总模块用于将各微核的检验结果合并后发送至所述服务器。
8.如权利要求7所述的数据包验证系统,其特征在于,在FPGA并行调用多个微核之前,所述控制模块还用于获取所述待验证数据包的所有取值,根据所述所有取值的数量,并行调用对应数量的数据包微核判断模块。
9.如权利要求8所述的数据包验证系统,其特征在于,在并行调用对应数量的微核之后,所述控制模块还用于根据待验证数据包的大小及速度,调整被调用数据包微核判断模块的数量。
10.如权利要求7所述的数据包验证系统,其特征在于,所述控制模块还用于根据所述正则表达式的检验结果,将待验证数据包并行跳转至其他被调用数据包微核判断模块。
11.如权利要求7所述的数据包验证系统,其特征在于,所述正则表达式模块还用于从所述服务器获取新的正则表达式,并替换当前使用的正则表达式。
12.如权利要求7至11任一项所述的数据包验证系统,其特征在于,所述数据包微核判断模块用于将从服务器接收的正则表达式缓存在正则表达式矩阵中,将从服务器接收的网络数据包以包的形式缓存在网络数据包中,每次从数据包中读出一个字节,将每个字节并行和所有可能字符比较,每个比较结果输出一个比特,所有比特组成一个判决数组,将每个判决数组和所述正则表达式矩阵输出的掩膜数据进行与操作,得到一个判决验证结果输出,从正则表达式矩阵中读取下一个掩膜数据,然后读取下一个字节,重复以上步骤,直到数据包检验结束,将待验证数据包中各字节对应的判决验证结果,合并得到所述待验证数据包的检验结果。
CN201610848350.2A 2016-09-23 2016-09-23 一种数据包验证方法及系统 Pending CN106656501A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610848350.2A CN106656501A (zh) 2016-09-23 2016-09-23 一种数据包验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610848350.2A CN106656501A (zh) 2016-09-23 2016-09-23 一种数据包验证方法及系统

Publications (1)

Publication Number Publication Date
CN106656501A true CN106656501A (zh) 2017-05-10

Family

ID=58853734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610848350.2A Pending CN106656501A (zh) 2016-09-23 2016-09-23 一种数据包验证方法及系统

Country Status (1)

Country Link
CN (1) CN106656501A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102064977A (zh) * 2010-11-10 2011-05-18 中国人民解放军国防科学技术大学 基于gpu的高速网络报文内容检测方法
CN103746869A (zh) * 2013-12-24 2014-04-23 武汉烽火网络有限责任公司 结合数据/掩码和正则表达式的多级深度包检测方法
CN104753931A (zh) * 2015-03-18 2015-07-01 中国人民解放军信息工程大学 一种基于正则表达式的深度报文检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102064977A (zh) * 2010-11-10 2011-05-18 中国人民解放军国防科学技术大学 基于gpu的高速网络报文内容检测方法
CN103746869A (zh) * 2013-12-24 2014-04-23 武汉烽火网络有限责任公司 结合数据/掩码和正则表达式的多级深度包检测方法
CN104753931A (zh) * 2015-03-18 2015-07-01 中国人民解放军信息工程大学 一种基于正则表达式的深度报文检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孙志刚、张子文: "正则表达式匹配的高效硬件实现", 《计算机工程与科学》 *

Similar Documents

Publication Publication Date Title
Li et al. Learning IoT in edge: Deep learning for the Internet of Things with edge computing
US9825841B2 (en) Method of and network server for detecting data patterns in an input data stream
CN110572362B (zh) 针对多类不均衡异常流量的网络攻击检测方法及装置
CN109450900B (zh) 拟态判决方法、装置及系统
US9870502B2 (en) Apparatus for, a method of, and a network server for detecting data patterns in a data stream
CN109802864A (zh) 芯片设计验证方法、装置及芯片测试器
CN109005145A (zh) 一种基于自动特征抽取的恶意url检测系统及其方法
US11349824B2 (en) Block sequencing method and system based on tree-graph structure, and data processing terminal
CN111131304A (zh) 面向云平台大规模虚拟机细粒度异常行为检测方法和系统
CN110058949B (zh) 一种基于智能边缘计算的传感云低耦合控制方法
CN103067218A (zh) 一种高速网络数据包内容分析装置
CN107222511A (zh) 恶意软件的检测方法及装置、计算机装置及可读存储介质
CN111181980B (zh) 一种面向网络安全的正则表达式的匹配方法及装置
CN102385551A (zh) 一种筛选测试用例的方法、装置及系统
CN115038125A (zh) 数据传输方法、装置、电子设备及存储介质
CN104065587B (zh) 基于fpga的智能变电站网络风暴处理模块及解决方法
CN100372318C (zh) 10g网络性能测试系统并行流调度方法
KR102304324B1 (ko) 머신러닝을 이용한 악성 트래픽 탐지 방법, 장치, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독가능한 기록매체
CN106650449A (zh) 一种基于变量名混淆程度的脚本启发式检测方法及系统
CN106656501A (zh) 一种数据包验证方法及系统
CN106610906A (zh) 一种数据访问方法及总线
CN114205160B (zh) 基于区块链的数据处理方法、装置及电子设备
CN111026579B (zh) 一种数据检错能力的校验方法、装置、终端设备及介质
CN112231343A (zh) 一种基于时序的云计算智能安全系统
CN111917600A (zh) 一种基于Spark性能优化的网络流量分类装置及分类方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170510