CN115529180A - IPSec加解密卸载方法 - Google Patents

IPSec加解密卸载方法 Download PDF

Info

Publication number
CN115529180A
CN115529180A CN202211188325.8A CN202211188325A CN115529180A CN 115529180 A CN115529180 A CN 115529180A CN 202211188325 A CN202211188325 A CN 202211188325A CN 115529180 A CN115529180 A CN 115529180A
Authority
CN
China
Prior art keywords
ipsec
message
decryption
encryption
security
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
Application number
CN202211188325.8A
Other languages
English (en)
Other versions
CN115529180B (zh
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.)
Xinyunsheng Hangzhou Electronic Technology Co ltd
Original Assignee
Xinqiyuan Nanjing Semiconductor Technology 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 Xinqiyuan Nanjing Semiconductor Technology Co ltd filed Critical Xinqiyuan Nanjing Semiconductor Technology Co ltd
Priority to CN202211188325.8A priority Critical patent/CN115529180B/zh
Publication of CN115529180A publication Critical patent/CN115529180A/zh
Application granted granted Critical
Publication of CN115529180B publication Critical patent/CN115529180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal

Landscapes

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

Abstract

本发明提供一种IPSec加解密卸载方法,包括以下步骤:构建智能网卡的驱动程序,基于所述驱动程序提供安全联盟至所述智能网卡,获取IPSec报文并设置所述IPSec报文的元数据;在所述智能网卡上设置网卡微引擎,基于所述网卡微引擎接收所述IPSec报文、所述元数据和所述安全联盟,根据所述元数据获取所述IPSec报文对应的安全联盟,基于所述安全联盟对所述IPSec报文进行加解密。本发明的IPSec加解密卸载方法能够基于智能网卡实现IPSec加解密的高性能卸载。

Description

IPSec加解密卸载方法
技术领域
本发明涉及网络通信的技术领域,特别是涉及一种IPSec加解密卸载方法。
背景技术
随着云计算的业务增长,业务应用软件的复杂度不断提升,导致服务器上的CPU不堪重负。同时,计算机操作系统使用分层体系结构,使得数据包在各层之间传递时都需要相当数量的CPU处理和存储资源,比如报文校验和计算、TCP协议分割、重传、包过滤、流表处理等。这些功能对CPU资源的占用极大地影响了计算机系统和网络转发的性能。
更进一步的,IPSec(Internet Protocol Security)协议大量应用于安全网络通信中。IPSec标准也得到国际上几乎所有主流网络和安全供应商的支持,如在VPN、SDWAN中建立安全的加密传输通道,但这需要用到复杂的加解密算法如AES(Advanced EncryptionStandard,高级加密标准)等。
针对上述影响CPU计算瓶颈的相关运算,现有技术中提出了算力卸载机制,即将一些运算或协议处理卸载到外部设备如智能网卡上。针对安全协议的加解密计算,目前通常采用一些硬件如加密芯片完成各种加解密运算来替代CPU的软件运算,如Intel公司的Quick Assist Technology(QAT卡)。但在实际使用中,仅仅加解密卸载无法更好的兼容IPSec这种包含安全会话协商及协议族处理,给开发和商用部署中带来不便。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种IPSec加解密卸载方法,能够基于智能网卡实现IPSec加解密的高性能卸载。
为实现上述目的及其他相关目的,本发明提供一种IPSec加解密卸载方法,包括以下步骤:构建智能网卡的驱动程序,基于所述驱动程序提供安全联盟至所述智能网卡,获取IPSec报文并设置所述IPSec报文的元数据;在所述智能网卡上设置网卡微引擎,基于所述网卡微引擎接收所述IPSec报文、所述元数据和所述安全联盟,根据所述元数据获取所述IPSec报文对应的安全联盟,基于所述安全联盟对所述IPSec报文进行加解密。
于本发明一实施例中,对于需要加密的IPSec报文,所述元数据包括IPSec报文标识、安全联盟索引和防攻击序列号;对于需要解密的IPSec报文,所述元数据包括PSec报文标识、安全联盟索引和解密成功失败结果。
于本发明一实施例中,所述驱动程序包括上下文管理单元、安全联盟管理单元和报文管理单元;
所述安全联盟管理单元用于获取并存储所述安全联盟;
所述上下文管理单元用于提供所述安全联盟至所述智能网卡;
所述报文管理单元用于获取IPSec报文并设置IPSec报文的元数据。
于本发明一实施例中,所述安全联盟管理单元获取所述安全联盟通过以下任一方式:
1)基于用户主机设置所述安全联盟到Linux内核XFRM模块,基于所述XFRM模块将安全联盟经由所述上下文管理单元传送至所述安全联盟单元;
2)在Linux用户态基于iproute2套件手动设置安全联盟到Linux内核XFRM模块,基于所述XFRM模块将安全联盟经由所述上下文管理单元传送至所述安全联盟单元;
3)在Linux用户态基于调试工具针对网络接口直接配置所述安全联盟至所述安全联盟管理单元。
于本发明一实施例中,所述网卡微引擎包括配置管理单元、IPSec协议处理单元和加解密引擎管理单元;
所述配置管理单元用于从所述驱动程序中卸载并存储所述安全联盟;
所述IPSec协议处理单元用于接收所述IPSec报文和所述元数据,根据所述元数据从所述配置管理单元获取所述IPSec报文对应的安全联盟;
所述加解密引擎管理单元基于所述安全联盟对所述IPSec报文进行加解密。
于本发明一实施例中,所述IPSec协议处理单元根据所述IPSec报文的传输方向确定采用用于加密的安全联盟或用于解密的安全联盟。
于本发明一实施例中,所述加解密引擎管理单元包括DMA输入模块、SRAM、加解密模块和DMA输出模块;
所述DMA输入模块用于将位于DRAM中的IPSec报文基于DMA方式传送至所述SRAM;
所述加解密模块用于读取所述SRAM中的IPSec报文进行加解密,并将加解密后的IPSec报文存储至所述SRAM;
所述DMA输出模块用于将所述加解密后的IPSec报文基于DMA方式传送至所述DRAM。
于本发明一实施例中,所述DMA输入模块、所述SRAM、所述加解密模块和所述DMA输出模块采用并行处理模式。
于本发明一实施例中,还包括基于所述网卡微引擎对所述安全联盟进行更新;
基于所述网卡微引擎对所述安全联盟进行更新包括以下步骤:
当需要对IPSec报文进行加解密时,获取所述安全联盟的生存时长;
当所述生存时长大于老化时间阈值时,所述网卡自动丢弃所述IPSec报文;
当所述生存时长不大于所述老化时间阈值时,将所述IPSec报文的数据长度累加至报文字节总数;若所述报文字节总数大于报文字节数阈值,所述网卡自动丢弃所述IPSec报文,设置所述安全联盟为无效状态并获取更新的安全联盟,否则基于所述安全联盟进行所述IPSec报文的加解密。
于本发明一实施例中,所述安全联盟还包括IPSec封装模式和IPSec封装协议,以分别实现隧道模式的封装解封装和ESP协议的封装解封装。
如上所述,本发明所述的IPSec加解密卸载方法,具有以下有益效果。
(1)通过在智能网卡驱动程序中嵌入IPSec协议卸载相关的上下文管理、安全联盟(SA)管理和报文管理驱动单元,在网卡微引擎(ME)中嵌入配置管理、IPSec协议处理(IPsecPacket Processing,PP)和加解密引擎管理(crypto Engine Management,CEM)等微引擎处理单元,完成一套IPSec的卸载和加解密系统,该系统的驱动模块程序向上完全兼容Linux协议栈的IPsec标准卸载软件XFRM接口和DPDK(Intel Data Plane Development Kit)的rte_security库中的标准卸载接口,从而IPSec卸载的即插即用,无需额外任何其它工作。
(2)有效提升了IPSec加解密的卸载性能。
(3)能够适用于多种应用场景,极具实用性。
附图说明
图1显示为本发明的IPSec加解密卸载方法于一实施例中的流程图。
图2显示为本发明的IPSec加解密卸载方法于一实施例中的应用架构示意图。
图3显示为本发明的SA匹配策略于一实施例中的示意图。
图4显示为本发明的加解密引擎管理单元于一实施例中的工作机制示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的IPSec加解密卸载方法基于智能网卡实现IPSec加解密的高性能卸载,且能够实现IPSec卸载的即插即用,无需额外任何其它工作,极具实用性。
如图1所示,于一实施例中,本发明的IPSec加解密卸载方法包括以下步骤。
步骤S1、构建智能网卡的驱动程序,基于所述驱动程序提供安全联盟至所述智能网卡,获取IPSec报文并设置所述IPSec报文的元数据。
具体地,如图2所示,所述驱动程序包括上下文管理单元、安全联盟(SA)管理单元和报文管理单元。所述安全联盟管理单元用于获取并存储所述安全联盟;所述上下文管理单元用于提供所述安全联盟至所述智能网卡;所述报文管理单元用于获取IPSec报文并设置IPSec报文的元数据。
具体地,所述SA管理单元缓存SA数据并将其转换成所述在智能网卡中的SA存储格式,以便于后续直接卸载到所述智能网卡中。卸载到所述智能网卡的SA包含的参数如表1所示,但不限于表1所示。
表1、SA参数
Figure 436733DEST_PATH_IMAGE001
于本发明一实施例中,所述安全联盟管理单元获取所述安全联盟通过以下任一方式。
1)基于用户主机设置所述安全联盟到Linux内核XFRM模块,基于所述XFRM模块将安全联盟经由所述上下文管理单元传送至所述安全联盟单元。
具体地,本发明基于Linux网络协议栈中XFRM模块的IPsec卸载标准接口structxfrmdev_ops完成,其中Linux内核版本不小于5.0,较低版本的Linux内核不支持xfrmdev卸载架构,需安装xfrmdev卸载。如图2的步骤100所示,用户通过IKE(Internet KeyExchange,Internet密钥交换)协商的应用demo(如strongSwan等)协商出SA,并将SP(Security Policy)和SA发送到内核XFRM模块。如步骤103和步骤112所示,所述XFRM模块再将SA经由所述上下文管理单元传送至所述安全联盟单元。
2)在Linux用户态基于iproute2套件手动设置安全联盟到Linux内核XFRM模块,基于所述XFRM模块将安全联盟经由所述上下文管理单元传送至所述安全联盟单元。
具体地,如图2的步骤101所示,在Linux用户态也可以直接通过iproute2工具中的xfrm命令手动设置SP和SA)到内核XFRM模块,无需通过IKE协商。如步骤103和步骤112所示,所述XFRM模块再将SA经由所述上下文管理单元传送至所述安全联盟单元。
3)在Linux用户态基于调试工具针对网络接口直接配置所述安全联盟至所述安全联盟管理单元。
具体地,如步骤102所示,本发明通过调试工具,在Linux用户态通过调用ioctl可以针对网络接口,如PF((Physical Function)接口、VF(Virtual Function)接口,直接配置SA到所述安全联盟单元,无需XFRM协议栈的参与,从而大大简化了配置调试流程。
所述上下文管理单元适配Linux协议栈接口,能够向上提供xfrmdev_ops的标准回调接口,包括添加SA接口(xdo_dev_state_add)、删除SA接口(xdo_dev_state_delete)、释放SA接口(xdo_dev_state_free)以及卸载功能是否可用接口(xdo_dev_offload_ok);同时适配NIC配置接口,能够向下通过PCIe通道将SA写入到所述智能网卡中。
所述报文管理单元在获取IPSec报文后,负责针对每个需要加密的IPSec报文设置元数据(metadata数据),以基于所述metadata数据告知所述智能网卡的IPSec协议处理单元所述IPSec报文需要进行IPSec协议的相关处理。在Linux内核中以skb结构存放报文数据的方式下,metadata数据可以放在skb的data数据区前面。在本发明中,所述IPsec报文分为两个方向,从本地主机(host)空间发出去的报文需要加密,从物理链路(line)上收到的报文需要解密。如图3所示,当所述报文管理单元需要从host空间发送加密后的IPSec报文时,所述metadata数据包括IPSec报文标识(ipsec flag)、安全联盟索引(Index)和防攻击序列号(Extended Sequence Number,ESN),也可包含其它更多数据。其中,所述IPSec报文标识用于标识该报文是IPSec协议报文。当所述报文管理单元需要把解密后的IPSec报文发送到host空间时,所述metadata数据包括PSec报文标识(ipsec flag)、安全联盟索引(Index)和解密成功失败结果(result),也可以包含其它更多数据。host空间内核协议栈可以根据解密成功失败结果进行相关处理。
步骤S2、在所述智能网卡上设置网卡微引擎,基于所述网卡微引擎接收所述IPSec报文、所述元数据和所述安全联盟,根据所述元数据获取所述IPSec报文对应的安全联盟,基于所述安全联盟对所述IPSec报文进行加解密。
具体地,如图2所示,所述网卡微引擎包括配置管理单元、IPSec协议处理单元和加解密引擎管理单元。所述配置管理单元用于从所述驱动程序中卸载并存储所述安全联盟。所述IPSec协议处理单元用于接收所述IPSec报文和所述元数据,根据所述元数据从所述配置管理单元获取所述IPSec报文对应的安全联盟。所述加解密引擎管理单元基于所述安全联盟对所述IPSec报文进行加解密。
为了提升IPSec协议处理性能,本发明将在Linux协议栈完成的IPSec协议相关的部分处理也卸载到所述IPSec协议处理单元中完成,支持的卸载内容主要包括ESP头的封装解封装和隧道模式的封装解封装。如表1中SA参数的描述,SA中的参数mode表示匹配该条SA的IPSec会话是隧道模式封装或解封装还是传输模式,SA中的参数Offload_type表示匹配该条SA的IPSec会话是否需要进行ESP头部封装或解封装。当需要加解密的报文进入IPSec协议处理单元,会根据匹配到的SA中的上述参数进行相应的封装和解封装。
为了加速所述网卡微引擎针对SA的搜索匹配性能,本发明在加密路径和解密路径上针对SA搜索匹配提出了差异化处理机制。由于SP和SA的搜索匹配在Linux XFRM协议栈已经完成,故在卸载SA时将SA在内核XFRM模块中的内存handle映射成Index,作为存储在所述配置管理单元的SAD数据库中的索引号。当从host空间发送需要加密的IPsec报文时,所述IPSec协议处理单元直接根据所述索引号Index查找对应的SA而无需根据SPI、源和目的地址等相关参数匹配检索加密需要的SA。
为了降低业务层面复杂度,SA无需指明其用于加密或者解密。通常情况下,向外发送的报文需要加密,向内接收的报文需要解密。所述IPSec协议处理单元能够确定所接收的报文是从host空间发送过来的还是从line接收到的。如果是从host空间发送出去的报文,所述IPSec协议处理单元设置其匹配的SA用于加密;如果是从line接收到的报文,所述IPSec协议处理单元设置其匹配的SA用于解密。
为了高速访问内存,本发明中的加解密和鉴权认证等硬件运算的数据都放在SRAM中运行,而IPSec报文存储在DRAM中。故如图4所示,本发明的加解密引擎管理单元包括DMA输入模块41、SRAM42、加解密模块43和DMA输出模块44。所述DMA输入模块41将位于DRAM中的IPSec报文基于DMA方式传送至所述SRAM42;所述加解密模块43读取所述SRAM42中的IPSec报文进行硬件的加解密,并将加解密后的IPSec报文存储至所述SRAM42;所述DMA输出模块用于将所述加解密后的IPSec报文基于DMA方式传送至所述DRAM。
优选地,所述DMA输入模块、所述SRAM、所述加解密模块和所述DMA输出模块采用并行处理模式,从而最大化运算数据的吞吐量。例如,当第N个包在加解密引擎上处理时,第N+1个需要被加解密的包能被DMA输入模块从DRAM拷贝到SRAM,同时第N-1个已经被加解密的包能被DMA输出模块从SRAM拷贝到DRAM。更进一步的,SRAM上可以根据需要调整缓存数据包的个数以适配所述加解密模块的运算效率。
下面具体阐述一下本发明的IPSec加解密的流程。
当需要从host空间发送IPsec报文时,Linux的XFRM模块完成IPSec的协议处理并设置skb中的struct xfrm_offload数据结构,以此告知驱动程序所述skb报文需要IPSec的卸载处理,如图2中的步骤105所示。所述报文管理单元获取struct xfrm_offload数据结构中的相关信息,生成metada数据并放置到skb原始数据区的最前面,如图3中skb->data所示。其中ipsec_flag用于告知所述智能网卡所述IPSec报文需要IPSec加密或封装处理。所述智能网卡可以根据ipsec_flag按IPSec协议的metadata数据获取对应参数信息,MAC+IP即为需要发送的IPSec报文的原始数据。如图2的步骤111所示,所述报文管理单元通过DMA拷贝所述IPSec报文和所述metadata数据到所述智能网卡的TX发送报文单元。
TX报文发送单元通过图2中的步骤124把所述IPSec报文和所述metadata数据发送至IPSec协议处理单元。所述IPSec协议处理单元根据所述metadata数据判断是否为IPSec报文。若不是IPSec报文,则直接进入步骤121将报文发送出去;若是IPSec报文,从所述metada数据中获取SA的索引值,通过步骤122从所述配置管理单元中的SAD数据库中直接获取对应的SA,并在完成IPSec的相关协议处理后(如隧道模式封装等)通过步骤123送到所述加解密引擎管理单元进行硬件加密,加密后的IPSec报文通过步骤126进入TX报文发送单元,从而将加密后的IPSec报文发送出所述智能网卡。
当所述智能网卡从line上接收到一个IPSec报文时,如图2中的步骤120,RX接收报文单元直接将所述IPSec报文通过步骤125传送至所述IPSec协议处理单元。所述IPSec协议处理单元首先解析该报文是否为ESP或者UDP封装的ESP协议报文。如果不是ESP协议封装报文,则直接跳过所述IPSec协议单元处理。如果解析后的报文是ESP协议报文,则需要使用报文中的SPI索引号、源和目的IP地址作为检索关键字搜索对应的SA。所述IPSec协议处理单元使用SA中的相关参数完成IPSec协议处理,主要是ESP头解封装或者隧道解封装,然后把该报文通过图2中的步骤123送入所述加解密引擎管理单元。所述加解密引擎管理单元使用该SA执行硬件解密操作,根据解密是否成功的结果,设置metadata数据中result,并把解密后的报文通过图2中的步骤127送入RX接收报文单元,RX接收报文单元通过步骤110把解密后的数据报文DMA到hos空间。驱动程序的报文管理单元收到解密后的报文后,获取metadata数据中的相关信息并将其从skb剥离,然后将解密的result告知Linux协议栈,Linux的XFRM模块根据该结果进行相关的fallback处理。
需要说明的是,尽管SA被整体卸载到网卡,SA的管理如添加、删除和秘钥更新仍然在Linux用户态的业务层维护全部控制。更进一步的,基于SA的加解密字节数限制和SA的老化时间也都有业务或协议栈实现软限制。但是,在本发明中还将进行基于SA的报文字节数和SA的老化时间相关的卸载,将软限制的丢包卸载到所述智能网卡硬限制中完成,从而提升SA丢包的处理性能。
当某条SA被卸载到所述智能网卡时,所述IPSec协议处理单元中启动更新机制。具体地,基于所述网卡微引擎对所述安全联盟进行更新包括以下步骤。
1)当需要对IPSec报文进行加解密时,获取所述安全联盟的生存时长。具体地,每秒定时更新累加SA的生存时长,将累加的生存时场设置为当前生存时长。
2)当所述生存时长大于老化时间阈值时,所述网卡自动丢弃所述IPSec报文。
3)当所述生存时长不大于所述老化时间阈值时,将所述IPSec报文的数据长度累加至报文字节总数;若所述报文字节总数大于报文字节数阈值,所述网卡自动丢弃所述IPSec报文,设置所述安全联盟为无效状态并获取更新的安全联盟,否则基于所述安全联盟进行所述IPSec报文的加解密。
其中,上述丢弃报文行为及报文统计并不上载到host空间,但本发明通过调试工具可以从安全联盟管理单元直接读取每个SA因为字节数限制和老化时间限制丢弃的报文数量。通常情况下,这种硬限制特性应该和软限制配合工作,以便host空间能够根据实时状况做出对应的SA更新调整。
秘钥更新的主要原因是SA达到了生命周期或者业务层面认为需要更新。卸载到所述智能网卡的SA没有更新生存周期的机制,所以秘钥更新完全有上层管理控制。根据IKE协议的规范,应该在SA老化时间的50%的情况下更新SA,也就是说硬限制阈值理论上是软限制阈值的两倍。考虑到SA在客户端和服务器的一致性,当需要更新一个SA时,需要旧的SA和新的SA并存一段时间,以允许双方完全处理在网络中或者收发包队里中的报文加解密。因此,所述网卡无条件保存所有卸载的SA直到业务应用删除为止,业务应用在更新一个SA之后,应允许原来老的SA存活一段时间后再从网卡中删除掉。
综上所述,本发明的IPSec加解密卸载方法通过在智能网卡驱动程序中嵌入IPSec协议卸载相关的上下文管理、安全联盟(SA)管理和报文管理驱动单元,在网卡微引擎中嵌入配置管理、IPSec协议处理和加解密引擎管理等微引擎处理单元,完成一套IPSec的卸载和加解密系统,该系统的驱动模块程序向上完全兼容Linux协议栈的IPsec标准卸载软件XFRM接口和DPDK的rte_security库中的标准卸载接口,从而IPSec卸载的即插即用,无需额外任何其它工作;有效提升了IPSec加解密的卸载性能;能够适用于多种应用场景,极具实用性。因此,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (10)

1.一种IPSec加解密卸载方法,其特征在于,包括以下步骤:
构建智能网卡的驱动程序,基于所述驱动程序提供安全联盟至所述智能网卡,获取IPSec报文并设置所述IPSec报文的元数据;
在所述智能网卡上设置网卡微引擎,基于所述网卡微引擎接收所述IPSec报文、所述元数据和所述安全联盟,根据所述元数据获取所述IPSec报文对应的安全联盟,基于所述安全联盟对所述IPSec报文进行加解密。
2.根据权利要求1所述的IPSec加解密卸载方法,其特征在于,对于需要加密的IPSec报文,所述元数据包括IPSec报文标识、安全联盟索引和防攻击序列号;对于需要解密的IPSec报文,所述元数据包括PSec报文标识、安全联盟索引和解密成功失败结果。
3.根据权利要求1所述的IPSec加解密卸载方法,其特征在于,所述驱动程序包括上下文管理单元、安全联盟管理单元和报文管理单元;
所述安全联盟管理单元用于获取并存储所述安全联盟;
所述上下文管理单元用于提供所述安全联盟至所述智能网卡;
所述报文管理单元用于获取IPSec报文并设置IPSec报文的元数据。
4.根据权利要求3所述的IPSec加解密卸载方法,其特征在于,所述安全联盟管理单元获取所述安全联盟通过以下任一方式:
1)基于用户主机设置所述安全联盟到Linux内核XFRM模块,基于所述XFRM模块将安全联盟经由所述上下文管理单元传送至所述安全联盟单元;
2)在Linux用户态基于iproute2套件手动设置安全联盟到Linux内核XFRM模块,基于所述XFRM模块将安全联盟经由所述上下文管理单元传送至所述安全联盟单元;
3)在Linux用户态基于调试工具针对网络接口直接配置所述安全联盟至所述安全联盟管理单元。
5.根据权利要求1所述的IPSec加解密卸载方法,其特征在于,所述网卡微引擎包括配置管理单元、IPSec协议处理单元和加解密引擎管理单元;
所述配置管理单元用于从所述驱动程序中卸载并存储所述安全联盟;
所述IPSec协议处理单元用于接收所述IPSec报文和所述元数据,根据所述元数据从所述配置管理单元获取所述IPSec报文对应的安全联盟;
所述加解密引擎管理单元基于所述安全联盟对所述IPSec报文进行加解密。
6.根据权利要求5所述的IPSec加解密卸载方法,其特征在于,所述IPSec协议处理单元根据所述IPSec报文的传输方向确定采用用于加密的安全联盟或用于解密的安全联盟。
7.根据权利要求5所述的IPSec加解密卸载方法,其特征在于,所述加解密引擎管理单元包括DMA输入模块、SRAM、加解密模块和DMA输出模块;
所述DMA输入模块用于将位于DRAM中的IPSec报文基于DMA方式传送至所述SRAM;
所述加解密模块用于读取所述SRAM中的IPSec报文进行加解密,并将加解密后的IPSec报文存储至所述SRAM;
所述DMA输出模块用于将所述加解密后的IPSec报文基于DMA方式传送至所述DRAM。
8.根据权利要求7所述的IPSec加解密卸载方法,其特征在于,所述DMA输入模块、所述SRAM、所述加解密模块和所述DMA输出模块采用并行处理模式。
9.根据权利要求1所述的IPSec加解密卸载方法,其特征在于,还包括基于所述网卡微引擎对所述安全联盟进行更新;
基于所述网卡微引擎对所述安全联盟进行更新包括以下步骤:
当需要对IPSec报文进行加解密时,获取所述安全联盟的生存时长;
当所述生存时长大于老化时间阈值时,所述网卡自动丢弃所述IPSec报文;
当所述生存时长不大于所述老化时间阈值时,将所述IPSec报文的数据长度累加至报文字节总数;若所述报文字节总数大于报文字节数阈值,所述网卡自动丢弃所述IPSec报文,设置所述安全联盟为无效状态并获取更新的安全联盟,否则基于所述安全联盟进行所述IPSec报文的加解密。
10.根据权利要求1所述的IPSec加解密卸载方法,其特征在于,所述安全联盟还包括IPSec封装模式和IPSec封装协议,以分别实现隧道模式的封装解封装和ESP协议的封装解封装。
CN202211188325.8A 2022-09-28 2022-09-28 IPSec加解密卸载方法 Active CN115529180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211188325.8A CN115529180B (zh) 2022-09-28 2022-09-28 IPSec加解密卸载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211188325.8A CN115529180B (zh) 2022-09-28 2022-09-28 IPSec加解密卸载方法

Publications (2)

Publication Number Publication Date
CN115529180A true CN115529180A (zh) 2022-12-27
CN115529180B CN115529180B (zh) 2024-05-31

Family

ID=84700542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211188325.8A Active CN115529180B (zh) 2022-09-28 2022-09-28 IPSec加解密卸载方法

Country Status (1)

Country Link
CN (1) CN115529180B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116938827A (zh) * 2023-07-13 2023-10-24 北京大禹智芯科技有限公司 一种基于toe的tcp发送窗口更新方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006128384A1 (fr) * 2005-06-03 2006-12-07 Huawei Technologies Co., Ltd. Procede de creation d'une combinaison securisee de protocole de securite ip
CN108848090A (zh) * 2018-06-15 2018-11-20 京信通信系统(中国)有限公司 基于ipsec的报文转发方法、网关设备及系统
CN111480328A (zh) * 2017-12-14 2020-07-31 迈络思科技有限公司 将通信安全操作卸载到网络接口控制器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006128384A1 (fr) * 2005-06-03 2006-12-07 Huawei Technologies Co., Ltd. Procede de creation d'une combinaison securisee de protocole de securite ip
CN111480328A (zh) * 2017-12-14 2020-07-31 迈络思科技有限公司 将通信安全操作卸载到网络接口控制器
CN108848090A (zh) * 2018-06-15 2018-11-20 京信通信系统(中国)有限公司 基于ipsec的报文转发方法、网关设备及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116938827A (zh) * 2023-07-13 2023-10-24 北京大禹智芯科技有限公司 一种基于toe的tcp发送窗口更新方法及装置

Also Published As

Publication number Publication date
CN115529180B (zh) 2024-05-31

Similar Documents

Publication Publication Date Title
US7587587B2 (en) Data path security processing
US9015467B2 (en) Tagging mechanism for data path security processing
US7774593B2 (en) Encrypted packet, processing device, method, program, and program recording medium
US7082477B1 (en) Virtual application of features to electronic messages
JP5074558B2 (ja) IPSecを用いたネットワーク処理
AU2003226286B2 (en) Processing a packet using multiple pipelined processing modules
WO2015058698A1 (en) Data forwarding
US7685287B2 (en) Method and system for layering an infinite request/reply data stream on finite, unidirectional, time-limited transports
US8661205B2 (en) Communication apparatus and information transfer method
US11431681B2 (en) Application aware TCP performance tuning on hardware accelerated TCP proxy services
US20230421627A1 (en) Technologies for accelerated http processing with hardware acceleration
WO2015058699A1 (en) Data forwarding
CN103139222A (zh) 一种ipsec隧道数据传输方法及装置
CN110505244B (zh) 远程隧道访问技术网关以及服务器
CN113055269B (zh) 虚拟专用网络数据的传输方法及装置
US7969977B2 (en) Processing apparatus and method for processing IP packets
WO2020258302A1 (zh) 一种数据传输方法、交换机及站点
CN115529180B (zh) IPSec加解密卸载方法
CN111835613B (zh) 一种vpn服务器的数据传输方法及vpn服务器
US11588924B2 (en) Storage interface command packets over fibre channel with transport and network headers as payloads
US20200177540A1 (en) In-line transmission control protocol processing engine using a systolic array
KR102458785B1 (ko) 사설 5g망 구축을 위한 fpga 기반 mec 데이터 플레인 시스템
CN115102805B (zh) 虚拟隧道的处理方法、装置、计算机设备和存储介质
CN115801405A (zh) 一种基于ulp框架的ssl卸载设备及其工作方法
CN117424739A (zh) 基于dpu的报文转发方法和系统、用户态协议栈和ip核

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
TA01 Transfer of patent application right

Effective date of registration: 20240508

Address after: Room 112, 1st Floor, Building 1, No. 11 Liangzhan Road, Renhe Street, Yuhang District, Hangzhou City, Zhejiang Province, 311100

Applicant after: Xinyunsheng (Hangzhou) Electronic Technology Co.,Ltd.

Country or region after: China

Address before: 210046 7th floor, building a, Xingzhi science and Technology Park, Xingzhi Road, Nanjing Economic and Technological Development Zone, Nanjing City, Jiangsu Province

Applicant before: XINQIYUAN (NANJING) SEMICONDUCTOR TECHNOLOGY Co.,Ltd.

Country or region before: China

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant