CN114978676A - 基于FPGA、eBPF协同的数据包加解密方法及系统 - Google Patents
基于FPGA、eBPF协同的数据包加解密方法及系统 Download PDFInfo
- Publication number
- CN114978676A CN114978676A CN202210550250.7A CN202210550250A CN114978676A CN 114978676 A CN114978676 A CN 114978676A CN 202210550250 A CN202210550250 A CN 202210550250A CN 114978676 A CN114978676 A CN 114978676A
- Authority
- CN
- China
- Prior art keywords
- data packet
- fpga
- data
- information
- key
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000004458 analytical method Methods 0.000 claims abstract description 30
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 230000008901 benefit Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
基于FPGA、eBPF协同的数据包加解密方法及系统,该方法通过将策略元组信息配置到eBPF中,将密钥信息配置到FPGA中,将密钥附属信息配置到eBPF中,通过隧道号将密钥附属信息关联策略元组信息;对收到网络数据包根据包头中的协议号字段判断数据包类型:若数据包类型为IP数据包,根据第一解析结果查找所属策略信息,根据匹配到策略信息中的工作模式生成明文ESP数据包并缓存;将待加密认证的数据及密钥信息发送到FPGA执行加密认证操作;若数据包类型为ESP数据包,根据第二解析结果查找所属策略信息,将待解密认证的数据及密钥信息发送到FPGA执行解密认证操作。本发明速度快,减少内核协议栈的参与,安全性高。
Description
技术领域
本发明涉及计算机网络通信技术领域,具体涉及一种基于FPGA、eBPF协同的数据包加解密方法及系统。
背景技术
FPGA是在PAL(可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物,是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的。eBPF是将原先的BPF发展成一个指令集更复杂、应用范围更广的“内核虚拟机”;eBPF支持在用户态将C语言编写的一小段“内核代码”注入到内核中运行。
目前,基于FPGA的数据包加解密有两种方式:
第一、纯FPGA方式实现,该实现方式速度最快,但由于需要使用TCAM、QDR等专用硬件设备,因此策略数量有上限,且造价高;
第二、内核XFRM框架和FPGA协同实现,该实现方式由XFRM实现TCAM功能,FPGA实现加解密功能,因此策略数量上没有上限,但在数量多的情况下速度会有所下降。如何提供一种新的数据包加解密方案具有现实意义。
发明内容
为此,本发明提供一种基于FPGA、eBPF协同的数据包加解密方法及系统,以解决传统数据包加解密方案存在的性能差和安全性低的问题。
为了实现上述目的,本发明提供如下技术方案:基于FPGA、eBPF协同的数据包加解密方法,包括:
将策略元组信息配置到eBPF中,将密钥信息配置到FPGA中,将密钥附属信息配置到eBPF中,所述密钥附属信息包括隧道号,通过隧道号将密钥附属信息关联策略元组信息;
对收到网络数据包根据包头中的协议号字段判断数据包类型:
若数据包类型为IP数据包,解析IP数据包的包头得到第一解析结果,根据第一解析结果查找所属策略信息,查找成功,根据匹配到策略信息中的工作模式生成明文ESP数据包并缓存;将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA;FPGA对待加密认证的数据执行加密认证操作;
若数据包类型为ESP数据包,解析ESP数据包的包头得到第二解析结果,根据第二解析结果查找所属策略信息,查找成功,缓存ESP数据包,并将缓存标识、ESP数据包中待解密认证的数据及密钥信息发送到FPGA;FPGA对待解密认证的数据执行解密认证操作。
作为基于FPGA、eBPF协同的数据包加解密方法优选方案,所述策略元组信息包括隧道号、源IP、目的IP、源端口、目的端口、协议号和工作模式;
所述密钥信息包括密钥标识、加解密密钥、IV值和认证密钥;
所述密钥附属信息还包括密钥在FPGA中的位置信息、密钥SPI、源目的封装IP。
作为基于FPGA、eBPF协同的数据包加解密方法优选方案,若将策略元组信息配置到eBPF中失败,或将密钥信息配置到FPGA中失败,均返回策略配置失败信息;
若通过隧道号将密钥附属信息关联策略元组信息失败,根据密钥在FPGA中的位置信息,通过原始套接字删除配置到FPGA中的密钥信息。
作为基于FPGA、eBPF协同的数据包加解密方法优选方案,若判断数据包类型非IP数据包,也非ESP数据包,则将数据包转发到协议栈;根据匹配到策略信息中的工作模式生成明文格式的ESP数据包并缓存,将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA;FPGA对待加密认证的数据执行加密认证操作。
作为基于FPGA、eBPF协同的数据包加解密方法优选方案,FPGA对待加密认证的数据执行加密认证操作后,FPGA以返回数据包形式返回标识、密文数据和认证数据;eBPF根据返回标识查找缓存数据包,根据FPGA返回数据和缓存数据通过ESP包协议生成ESP数据包,将生成的ESP数据包通过网口转发。
作为基于FPGA、eBPF协同的数据包加解密方法优选方案,FPGA对待解密认证的数据执行解密认证操作后,FPGA返回标识、明文数据和认证数据;eBPF根据返回标识查找缓存数据包,然后比对FPGA生成的认证数据和缓存认证数据的一致性,若查找且比对均成功,eBPF根据策略元组信息的工作模式和FPGA返回的明文数据还原IP数据包,将还原的IP数据包通过网口转发。
本发明还提供一种基于FPGA、eBPF协同的数据包加解密系统,包括:
策略管理模块,用于将策略元组信息配置到eBPF中,将密钥信息配置到FPGA中,将密钥附属信息配置到eBPF中,所述密钥附属信息包括隧道号,通过隧道号将密钥附属信息关联策略元组信息;
eBPF处理模块,用于对收到网络数据包根据包头中的协议号字段判断数据包类型:
若数据包类型为IP数据包,解析IP数据包的包头得到第一解析结果,根据第一解析结果查找所属策略信息,查找成功,根据匹配到策略信息中的工作模式生成明文ESP数据包并缓存;将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA;
若数据包类型为ESP数据包,解析ESP数据包的包头得到第二解析结果,根据第二解析结果查找所属策略信息,查找成功,缓存ESP数据包,并将缓存标识、ESP数据包中待解密认证的数据及密钥信息发送到FPGA;
FPGA处理模块,用于通过FPGA对待加密认证的数据执行加密认证操作;及通过FPGA对待解密认证的数据执行解密认证操作。
作为基于FPGA、eBPF协同的数据包加解密系统优选方案,所述策略管理模块中:
所述策略元组信息包括隧道号、源IP、目的IP、源端口、目的端口、协议号和工作模式;
所述密钥信息包括密钥标识、加解密密钥、IV值和认证密钥;
所述密钥附属信息还包括密钥在FPGA中的位置信息、密钥SPI、源目的封装IP;
若将策略元组信息配置到eBPF中失败,或将密钥信息配置到FPGA中失败,均返回策略配置失败信息;
若通过隧道号将密钥附属信息关联策略元组信息失败,根据密钥在FPGA中的位置信息,通过原始套接字删除配置到FPGA中的密钥信息。
作为基于FPGA、eBPF协同的数据包加解密系统优选方案,所述eBPF处理模块中,若判断数据包类型非IP数据包,也非ESP数据包,则将数据包转发到协议栈;根据匹配到策略信息中的工作模式生成明文格式的ESP数据包并缓存,将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA。
作为基于FPGA、eBPF协同的数据包加解密系统优选方案,所述FPGA处理模块中,通过FPGA对待加密认证的数据执行加密认证操作后,FPGA以返回数据包形式返回标识、密文数据和认证数据;
所述eBPF处理模块中,通过eBPF根据返回标识查找缓存数据包,根据FPGA返回数据和缓存数据通过ESP包协议生成ESP数据包,将生成的ESP数据包通过网口转发;
所述FPGA处理模块中,通过FPGA对待解密认证的数据执行解密认证操作后,FPGA返回标识、明文数据和认证数据;
所述eBPF处理模块中,通过eBPF根据返回标识查找缓存数据包,然后比对FPGA生成的认证数据和缓存认证数据的一致性,若查找且比对均成功,eBPF根据策略元组信息的工作模式和FPGA返回的明文数据还原IP数据包,将还原的IP数据包通过网口转发。
本发明具有如下优点:通过将策略元组信息配置到eBPF中,将密钥信息配置到FPGA中,将密钥附属信息配置到eBPF中,所述密钥附属信息包括隧道号,通过隧道号将密钥附属信息关联策略元组信息;对收到网络数据包根据包头中的协议号字段判断数据包类型:若数据包类型为IP数据包,解析IP数据包的包头得到第一解析结果,根据第一解析结果查找所属策略信息,查找成功,根据匹配到策略信息中的工作模式生成明文ESP数据包并缓存;将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA;FPGA对待加密认证的数据执行加密认证操作;若数据包类型为ESP数据包,解析ESP数据包的包头得到第二解析结果,根据第二解析结果查找所属策略信息,查找成功,缓存ESP数据包,并将缓存标识、ESP数据包中待解密认证的数据及密钥信息发送到FPGA;FPGA对待解密认证的数据执行解密认证操作。本发明通过FPGA和eBPF分工合作,利用eBPF处理时机早于内核协议栈的优势和FPGA计算快于CPU的优势,一方面可以加快处理速度,另一方面减少内核协议栈的参与,增加了安全性,最终提高了系统的整体性能和安全性。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其他的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为本发明实施例1提供的基于FPGA、eBPF协同的数据包加解密方法流程示意图;
图2为本发明实施例1提供的基于FPGA、eBPF协同的数据包加解密方法中策略处理流程示意图;
图3为本发明实施例2提供的基于FPGA、eBPF协同的数据包加解密系统示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于纯FPGA方式进行数据包加解密,虽然速度最快,但需要使用TCAM、QDR等专用硬件设备,策略数量有上限且造价高。另外内核XFRM框架和FPGA协同实现数据包加解密,虽然策略数量上没有上限,但在数量多的情况下速度会有所下降。
有鉴于此,本发明通过FPGA和eBPF分工合作,利用eBPF处理时机早于内核协议栈的优势和FPGA计算快于CPU的优势,一方面可以加快处理速度,另一方面减少内核协议栈的参与,增加了安全性,最终提高了系统的整体性能和安全性。以下为本发明技术方案的具体实施情况。
实施例1
参见图1和图2,本发明实施例1提供一种基于FPGA、eBPF协同的数据包加解密方法,策略管理处理过程中包括以下步骤:
S001:将策略五元组信息(包含隧道号、源IP、目的IP、源端口、目的端口、协议号、工作模式等)通过eBPF提供的MAP机制配置到eBPF中。成功则转到S002;失败则转到S006;
S002:将密钥信息(包含密钥标识(对称加解密算法(AES256)和认证算法标识(HMAC(SHA256)))、加解密密钥和IV值、认证密钥等)通过原始套接字配置到FPGA中。成功则转到S003;失败则转到S006;
S003:将密钥附属信息(包含隧道号、密钥在FPGA中的位置信息、密钥SPI、源目的封装IP等)通过eBPF提供的MAP机制配置到eBPF中,并通过隧道号与策略五元组信息关联。成功则转到S004;失败则转到S005;
S004:返回策略配置成功信息;
S005:根据密钥位置信息通过原始套接字删除配置到FPGA中的密钥信息。然后转到S006;
S006:返回策略配置失败信息。
数据包加解密处理过程包括以下步骤:
S101:eBPF收到网络数据包后,根据IP包头中的协议号字段判断数据包类型:若为IP数据包转到S102;若为ESP数据包转到S111;若为其他数据包(非IP数据包,也非ESP数据包),则转到S103;
S102:eBPF解析IP数据包头中的协议号字段、源IP字段、目的IP字段以及IP数据包头后的四字节数据(前两字节作为源端口,后两字节作为目的端口)组成五元组,并根据五元组查找所属策略元组信息。查找失败转到S103;成功转到S104;
S103:eBPF将数据包转发到协议栈;
S104:eBPF根据匹配到策略元组信息中的工作模式生成明文格式ESP数据包并缓存,然后转到S105;
S105:eBPF将缓存标识、ESP数据包中需要加密与认证的数据以及密钥信息通过数据包发送到FPGA,转到S106;
S106:FPGA收到数据后根据秘钥位置信息查找密钥并使用加密算法AES256和认证算法HMAC(SHA256)对待加密认证数据执行加密操作和认证操作,转到S107;
S107:FPGA以数据包形式返回标识、密文数据和认证数据到ePBF,转到S108;
S108:eBPF根据标识查找缓存数据包,查找失败转到S117;查找成功转到S109;
S109:eBPF根据FPGA返回数据和缓存数据根据ESP包协议生成ESP数据包,转到S110;
S110:eBPF将数据包通过网口转发出去。
S111:eBPF解析IP数据包头中的目的IP字段、协议号字段和ESP数据包头中的SPI字段作为三元组,根据三元组与策略元组信息中的目的封装IP字段、SPI字段和协议号字段匹配来查找所属策略,查找失败转到S117;查找成功转到S112;
S112:eBPF缓存ESP数据包并将缓存标识、ESP数据包中需要解密与认证的数据以及密钥信息通过数据包发送到FPGA,转到S113;
S113:FPGA收到数据后根据秘钥位置信息查找密钥并使用解密算法AES256和认证算法HMAC(SHA256)对待解密认证数据执行解密操作和认证操作,转到S114;
S114:FPGA返回标识、明文数据和认证数据,转到S115;
S115:eBPF根据标识查找缓存数据包并比对FPGA生成认证数据和缓存认证数据的一致性;查找失败或比对失败均转到S117;查找成功且比对成功则转到S116;
S116:eBPF根据策略工作模式和FPGA返回的明文数据还原IP数据包,转到S110;
S117:丢弃数据包。
综上所述,本发明通过将策略元组信息配置到eBPF中,将密钥信息配置到FPGA中,将密钥附属信息配置到eBPF中,所述密钥附属信息包括隧道号,通过隧道号将密钥附属信息关联策略元组信息;对收到网络数据包根据包头中的协议号字段判断数据包类型:若数据包类型为IP数据包,解析IP数据包的包头得到第一解析结果,根据第一解析结果查找所属策略信息,查找成功,根据匹配到策略信息中的工作模式生成明文ESP数据包并缓存;将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA;FPGA对待加密认证的数据执行加密认证操作;若数据包类型为ESP数据包,解析ESP数据包的包头得到第二解析结果,根据第二解析结果查找所属策略信息,查找成功,缓存ESP数据包,并将缓存标识、ESP数据包中待解密认证的数据及密钥信息发送到FPGA;FPGA对待解密认证的数据执行解密认证操作。若将策略元组信息配置到eBPF中失败,或将密钥信息配置到FPGA中失败,均返回策略配置失败信息;若通过隧道号将密钥附属信息关联策略元组信息失败,根据密钥在FPGA中的位置信息,通过原始套接字删除配置到FPGA中的密钥信息。若判断数据包类型非IP数据包,也非ESP数据包,则将数据包转发到协议栈;根据匹配到策略信息中的工作模式生成明文格式的ESP数据包并缓存,将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA;FPGA对待加密认证的数据执行加密认证操作。FPGA对待加密认证的数据执行加密认证操作后,FPGA以返回数据包形式返回标识、密文数据和认证数据;eBPF根据返回标识查找缓存数据包,根据FPGA返回数据和缓存数据通过ESP包协议生成ESP数据包,将生成的ESP数据包通过网口转发。FPGA对待解密认证的数据执行解密认证操作后,FPGA返回标识、明文数据和认证数据;eBPF根据返回标识查找缓存数据包,然后比对FPGA生成的认证数据和缓存认证数据的一致性,若查找且比对均成功,eBPF根据策略元组信息的工作模式和FPGA返回的明文数据还原IP数据包,将还原的IP数据包通过网口转发。本发明通过FPGA和eBPF分工合作,利用eBPF处理时机早于内核协议栈的优势和FPGA计算快于CPU的优势,一方面可以加快处理速度,另一方面减少内核协议栈的参与,增加了安全性,最终提高了系统的整体性能和安全性。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
实施例2
参见图3,本发明实施例2提供一种基于FPGA、eBPF协同的数据包加解密系统,包括:
策略管理模块1,用于将策略元组信息配置到eBPF中,将密钥信息配置到FPGA中,将密钥附属信息配置到eBPF中,所述密钥附属信息包括隧道号,通过隧道号将密钥附属信息关联策略元组信息;
eBPF处理模块2,用于对收到网络数据包根据包头中的协议号字段判断数据包类型:
若数据包类型为IP数据包,解析IP数据包的包头得到第一解析结果,根据第一解析结果查找所属策略信息,查找成功,根据匹配到策略信息中的工作模式生成明文ESP数据包并缓存;将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA;
若数据包类型为ESP数据包,解析ESP数据包的包头得到第二解析结果,根据第二解析结果查找所属策略信息,查找成功,缓存ESP数据包,并将缓存标识、ESP数据包中待解密认证的数据及密钥信息发送到FPGA;
FPGA处理模块3,用于通过FPGA对待加密认证的数据执行加密认证操作;及通过FPGA对待解密认证的数据执行解密认证操作。
本实施例中,所述策略管理模块1中:
所述策略元组信息包括隧道号、源IP、目的IP、源端口、目的端口、协议号和工作模式;
所述密钥信息包括密钥标识、加解密密钥、IV值和认证密钥;
所述密钥附属信息还包括密钥在FPGA中的位置信息、密钥SPI、源目的封装IP;
若将策略元组信息配置到eBPF中失败,或将密钥信息配置到FPGA中失败,均返回策略配置失败信息;
若通过隧道号将密钥附属信息关联策略元组信息失败,根据密钥在FPGA中的位置信息,通过原始套接字删除配置到FPGA中的密钥信息。
本实施例中,所述eBPF处理模块2中,若判断数据包类型非IP数据包,也非ESP数据包,则将数据包转发到协议栈;根据匹配到策略信息中的工作模式生成明文格式的ESP数据包并缓存,将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA。
本实施例中,所述FPGA处理模块3中,通过FPGA对待加密认证的数据执行加密认证操作后,FPGA以返回数据包形式返回标识、密文数据和认证数据;
所述eBPF处理模块2中,通过eBPF根据返回标识查找缓存数据包,根据FPGA返回数据和缓存数据通过ESP包协议生成ESP数据包,将生成的ESP数据包通过网口转发;
所述FPGA处理模块3中,通过FPGA对待解密认证的数据执行解密认证操作后,FPGA返回标识、明文数据和认证数据;
所述eBPF处理模块2中,通过eBPF根据返回标识查找缓存数据包,然后比对FPGA生成的认证数据和缓存认证数据的一致性,若查找且比对均成功,eBPF根据策略元组信息的工作模式和FPGA返回的明文数据还原IP数据包,将还原的IP数据包通过网口转发。
需要说明的是,上述系统各模块/单元之间的信息交互、执行过程等内容,由于与本申请实施例1中的方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
实施例3
本发明实施例3提供一种非暂态计算机可读存储介质,所述计算机可读存储介质中存储有基于FPGA、eBPF协同的数据包加解密方法的程序代码,所述程序代码包括用于执行实施例1或其任意可能实现方式的基于FPGA、eBPF协同的数据包加解密方法的指令。
计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(SolidState Disk、SSD))等。
实施例4
本发明实施例4提供一种电子设备,包括:存储器和处理器;
所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行实施例1或其任意可能实现方式的基于FPGA、eBPF协同的数据包加解密方法。
具体的,处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于所述处理器之外,独立存在。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (10)
1.基于FPGA、eBPF协同的数据包加解密方法,其特征在于,包括:
将策略元组信息配置到eBPF中,将密钥信息配置到FPGA中,将密钥附属信息配置到eBPF中,所述密钥附属信息包括隧道号,通过隧道号将密钥附属信息关联策略元组信息;
对收到网络数据包根据包头中的协议号字段判断数据包类型:
若数据包类型为IP数据包,解析IP数据包的包头得到第一解析结果,根据第一解析结果查找所属策略信息,查找成功,根据匹配到策略信息中的工作模式生成明文ESP数据包并缓存;将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA;FPGA对待加密认证的数据执行加密认证操作;
若数据包类型为ESP数据包,解析ESP数据包的包头得到第二解析结果,根据第二解析结果查找所属策略信息,查找成功,缓存ESP数据包,并将缓存标识、ESP数据包中待解密认证的数据及密钥信息发送到FPGA;FPGA对待解密认证的数据执行解密认证操作。
2.根据权利要求1所述的基于FPGA、eBPF协同的数据包加解密方法,其特征在于,所述策略元组信息包括隧道号、源IP、目的IP、源端口、目的端口、协议号和工作模式;
所述密钥信息包括密钥标识、加解密密钥、IV值和认证密钥;
所述密钥附属信息还包括密钥在FPGA中的位置信息、密钥SPI、源目的封装IP。
3.根据权利要求2所述的基于FPGA、eBPF协同的数据包加解密方法,其特征在于,若将策略元组信息配置到eBPF中失败,或将密钥信息配置到FPGA中失败,均返回策略配置失败信息;
若通过隧道号将密钥附属信息关联策略元组信息失败,根据密钥在FPGA中的位置信息,通过原始套接字删除配置到FPGA中的密钥信息。
4.根据权利要求1所述的基于FPGA、eBPF协同的数据包加解密方法,其特征在于,若判断数据包类型非IP数据包,也非ESP数据包,则将数据包转发到协议栈;根据匹配到策略信息中的工作模式生成明文格式的ESP数据包并缓存,将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA;FPGA对待加密认证的数据执行加密认证操作。
5.根据权利要求4所述的基于FPGA、eBPF协同的数据包加解密方法,其特征在于,FPGA对待加密认证的数据执行加密认证操作后,FPGA以返回数据包形式返回标识、密文数据和认证数据;eBPF根据返回标识查找缓存数据包,根据FPGA返回数据和缓存数据通过ESP包协议生成ESP数据包,将生成的ESP数据包通过网口转发。
6.根据权利要求4所述的基于FPGA、eBPF协同的数据包加解密方法,其特征在于,FPGA对待解密认证的数据执行解密认证操作后,FPGA返回标识、明文数据和认证数据;eBPF根据返回标识查找缓存数据包,然后比对FPGA生成的认证数据和缓存认证数据的一致性,若查找且比对均成功,eBPF根据策略元组信息的工作模式和FPGA返回的明文数据还原IP数据包,将还原的IP数据包通过网口转发。
7.基于FPGA、eBPF协同的数据包加解密系统,其特征在于,包括:
策略管理模块,用于将策略元组信息配置到eBPF中,将密钥信息配置到FPGA中,将密钥附属信息配置到eBPF中,所述密钥附属信息包括隧道号,通过隧道号将密钥附属信息关联策略元组信息;
eBPF处理模块,用于对收到网络数据包根据包头中的协议号字段判断数据包类型:
若数据包类型为IP数据包,解析IP数据包的包头得到第一解析结果,根据第一解析结果查找所属策略信息,查找成功,根据匹配到策略信息中的工作模式生成明文ESP数据包并缓存;将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA;
若数据包类型为ESP数据包,解析ESP数据包的包头得到第二解析结果,根据第二解析结果查找所属策略信息,查找成功,缓存ESP数据包,并将缓存标识、ESP数据包中待解密认证的数据及密钥信息发送到FPGA;
FPGA处理模块,用于通过FPGA对待加密认证的数据执行加密认证操作;及通过FPGA对待解密认证的数据执行解密认证操作。
8.根据权利要求7所述的基于FPGA、eBPF协同的数据包加解密系统,其特征在于,所述策略管理模块中:
所述策略元组信息包括隧道号、源IP、目的IP、源端口、目的端口、协议号和工作模式;
所述密钥信息包括密钥标识、加解密密钥、IV值和认证密钥;
所述密钥附属信息还包括密钥在FPGA中的位置信息、密钥SPI、源目的封装IP;
若将策略元组信息配置到eBPF中失败,或将密钥信息配置到FPGA中失败,均返回策略配置失败信息;
若通过隧道号将密钥附属信息关联策略元组信息失败,根据密钥在FPGA中的位置信息,通过原始套接字删除配置到FPGA中的密钥信息。
9.根据权利要求8所述的基于FPGA、eBPF协同的数据包加解密系统,其特征在于,所述eBPF处理模块中,若判断数据包类型非IP数据包,也非ESP数据包,则将数据包转发到协议栈;根据匹配到策略信息中的工作模式生成明文格式的ESP数据包并缓存,将缓存标识、ESP数据包中待加密认证的数据及密钥信息发送到FPGA。
10.根据权利要求9所述的基于FPGA、eBPF协同的数据包加解密系统,其特征在于,所述FPGA处理模块中,通过FPGA对待加密认证的数据执行加密认证操作后,FPGA以返回数据包形式返回标识、密文数据和认证数据;
所述eBPF处理模块中,通过eBPF根据返回标识查找缓存数据包,根据FPGA返回数据和缓存数据通过ESP包协议生成ESP数据包,将生成的ESP数据包通过网口转发;
所述FPGA处理模块中,通过FPGA对待解密认证的数据执行解密认证操作后,FPGA返回标识、明文数据和认证数据;
所述eBPF处理模块中,通过eBPF根据返回标识查找缓存数据包,然后比对FPGA生成的认证数据和缓存认证数据的一致性,若查找且比对均成功,eBPF根据策略元组信息的工作模式和FPGA返回的明文数据还原IP数据包,将还原的IP数据包通过网口转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210550250.7A CN114978676B (zh) | 2022-05-20 | 2022-05-20 | 基于FPGA、eBPF协同的数据包加解密方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210550250.7A CN114978676B (zh) | 2022-05-20 | 2022-05-20 | 基于FPGA、eBPF协同的数据包加解密方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114978676A true CN114978676A (zh) | 2022-08-30 |
CN114978676B CN114978676B (zh) | 2024-03-12 |
Family
ID=82985814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210550250.7A Active CN114978676B (zh) | 2022-05-20 | 2022-05-20 | 基于FPGA、eBPF协同的数据包加解密方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114978676B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115664797A (zh) * | 2022-10-24 | 2023-01-31 | 中国电信股份有限公司 | 信息传输方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357218A (zh) * | 2015-12-03 | 2016-02-24 | 上海斐讯数据通信技术有限公司 | 一种具备硬件加解密功能的路由器及其加解密方法 |
CN107977256A (zh) * | 2017-12-15 | 2018-05-01 | 郑州云海信息技术有限公司 | 一种对fpga加速卡的访问方法、装置及介质 |
-
2022
- 2022-05-20 CN CN202210550250.7A patent/CN114978676B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357218A (zh) * | 2015-12-03 | 2016-02-24 | 上海斐讯数据通信技术有限公司 | 一种具备硬件加解密功能的路由器及其加解密方法 |
WO2017092504A1 (zh) * | 2015-12-03 | 2017-06-08 | 上海斐讯数据通信技术有限公司 | 一种具备硬件加解密功能的路由器及其加解密方法 |
CN107977256A (zh) * | 2017-12-15 | 2018-05-01 | 郑州云海信息技术有限公司 | 一种对fpga加速卡的访问方法、装置及介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115664797A (zh) * | 2022-10-24 | 2023-01-31 | 中国电信股份有限公司 | 信息传输方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114978676B (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10841243B2 (en) | NIC with programmable pipeline | |
US11444783B2 (en) | Methods and apparatuses for processing transactions based on blockchain integrated station | |
US20030231632A1 (en) | Method and system for packet-level routing | |
US11336660B2 (en) | Methods and apparatuses for identifying replay transaction based on blockchain integrated station | |
US11783339B2 (en) | Methods and apparatuses for transferring transaction based on blockchain integrated station | |
US11463553B2 (en) | Methods and apparatuses for identifying to-be-filtered transaction based on blockchain integrated station | |
US11736515B2 (en) | Reconfigurable switch forwarding engine parser capable of disabling hardware trojans | |
US11665234B2 (en) | Methods and apparatuses for synchronizing data based on blockchain integrated station | |
US10691619B1 (en) | Combined integrity protection, encryption and authentication | |
US20210240817A1 (en) | System and method for facilitating stateful processing of a middlebox module implemented in a trusted execution environment | |
US20210243281A1 (en) | System and method for facilitating data communication of a trusted execution environment | |
CN114978676A (zh) | 基于FPGA、eBPF协同的数据包加解密方法及系统 | |
Pacífico et al. | Application layer packet classifier in hardware | |
US10521360B1 (en) | Combined integrity protection, encryption and authentication | |
EP4231165A1 (en) | Method and device for processing forwarding entry | |
CN113347100B (zh) | 数据流传输方法、装置、计算机设备及存储介质 | |
US20220311791A1 (en) | Systems and methods for low latency stateful threat detection and mitigation | |
CN115529180A (zh) | IPSec加解密卸载方法 | |
CN115348082A (zh) | 数据脱敏方法、装置、计算机设备和存储介质 | |
Patgiri et al. | PassDB: A password database using 3D bloom filter | |
CN113411341A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN113489659A (zh) | 一种报文处理方法及装置 | |
CN111107142A (zh) | 业务访问方法和装置 | |
US11722525B2 (en) | IPsec processing of packets in SoCs | |
US20240146703A1 (en) | Flexible cryptographic architecture in a network device |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |