一种使用具备密码功能的网卡实现高速IPSec的方法技术

技术编号:35521840 阅读:18 留言:0更新日期:2022-11-09 14:41
本发明专利技术公开了一种使用具备密码功能的网卡实现高速IPSec的方法。常见的IPSec网络加密系统大多依靠操作系统内核XFRM框架或应用层DPDK技术,同时结合高性能PCI

【技术实现步骤摘要】
一种使用具备密码功能的网卡实现高速IPSec的方法


[0001]本专利技术涉及一种计算机网络通讯传输加密系统和技术,尤其涉及IPSec技术。

技术介绍

[0002]IPSec(InternetProtocolSecurity,互联网安全协议)是一种通过对IP协议的分组进行加密和认证来保护IP协议的网络安全传输协议或安全系统。其中涉及几个概念:封装安全载荷(ESP),提供机密性、数据源认证、无连接完整性、防重放和有限的传输流机密性;安全关联(SA),提供算法和数据包,提供ESP操作所需的安全参数。
[0003]密钥协议(IKE),提供通信双方身份认证和对称密码的协商交换。
[0004]目前主要有两种技术架构实现高速IPSec:(1).如附图2所示,在系统内核的xfrm层实现ESP模块并维护SA与策略库;内核中挂载密码算法模块(可能是使用软件密码算法,或是采用PCI

E硬件密码加速卡);当应用层软件完成IPSecIKE认证与协商之后,网络数据通过网卡进入操作系统内核,经过驱动程序、内核协议栈和中断处理,到达xfrm层ESP代码模块,匹配SA与策略库;如满足加密条件则调用密码算法模块对数据进行加密与计算校验值;如满足解密条件则调用密码算法模块对数据进行解密与核对校验值;处理完毕的数据包,再次经过内核协议栈、中断处理以及驱动程序,到达网卡,最后将数据包从网口发送出去。
[0005]上述机制是目前绝大多数IPSec系统采用的实现方法,标准Linux等操作系统内核中本身就包含了xfrm层实现ESP的代码,比较成熟。但是由于数据包在通过驱动程序、内核协议栈和中断处理这个过程中会耗用相对较多的内核资源,特别是当有高带宽数据流量需要进行ESP加密时,系统内核处理能力成为性能瓶颈。
[0006](2).为了避免上述内核技术在内核中断处理过程中会耗用相对较多的内核资源,业界出现了使用DPDK技术实现IPSec的方法。DPDK(DataPlaneDevelopmentKit,数据平面开发套件)是由Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。
[0007]如附图3所示,网络数据包从网卡传递到内核驱动和协议栈后,绕开内核中断等处理流程,直接甩到应用层DPDK,再调用密码算法模块进行加密,然后按照类似的路径返回到内核和网卡,最后发送出去。
[0008]这种使用DPDK的IPSec实现方法,相比内核态ESP性能会提升不少,但仍有不足:毕竟数据包还是要通过网卡驱动程序到达内核协议栈,在经过应用层加密和原路返回到网卡,延迟率和加密吞吐率还无法取得极致的性能,在许多高实时性行业中难以满足需求;另外DPDK框架对于主机操作系统的CPU等性能要求很高,资源消耗也很大。

技术实现思路

[0009]针对现有高性能IPSec技术方法的不足,本专利技术提供了使用具备密码运算功能的网卡,让耗用大量密码运算资源的ESP加解密工作在网卡硬件芯片内直接完成,避免性能消耗在操作系统驱动、内核协议栈和中断过程中;同时让高带宽海量网络数据彻底无需进入操作系统内核或应用层,在网卡硬件模块中完成所有加解密和校验工作,直接发送出去,可实现超高吞吐率和极低网络延迟的IPSec系统。
[0010]为实现上述目的,本专利技术提供如下技术方案:一种使用具备密码功能的网卡实现高速IPSec的方法,如附图1所示,其特征在于:方法包含IPSec IKE认证与协商软件(101)、网卡(102),其中网卡(102)内包含固件程序(103)、密码算法模块(104)、SA与策略库(105),以及2个网口;流程

:IPSec IKE认证与协商软件(101)与其他IPSec系统建立IKE认证和密钥协商,协商出SA安全联盟和策略;流程

:IPSec IKE认证与协商软件(101)将SA安全联盟和策略写入网卡(102)中的SA与策略库(105)中;流程

:网卡(102)的网口收到网络数据后,固件程序(103)会根据数据包的地址信息等特征,与SA与策略库(105)进行匹配,如满足加密条件则调用密码算法模块(104)对数据进行加密与计算校验值;如满足解密条件则调用密码算法模块(104)对数据进行解密与核对校验值;最后将数据包从指定网口发送出去;最后实现在网卡内完成ESP数据高性能加密/解密、校验/核对。
[0011]根据一个优选的实施方式,所述的一种使用具备密码功能的网卡实现高速IPSec的方法,其特征在于网卡(102)可能仅包含1个网口,或包含多个网口;数据包可能从任何一个网口传入,并从任何一个网口传出;网口包括以太网电口、光口等常见网络接口形式。
[0012]根据一个优选的实施方式,所述的一种使用具备密码功能的网卡实现高速IPSec的方法,其特征在于系统主机与网卡之间可能使用不限于PCI

E通信接口,还包括Mini PCI

E、USB、串口、I2C、SATA、M.2、闪电等通信接口。
[0013]根据一个优选的实施方式,所述的一种使用具备密码功能的网卡实现高速IPSec的方法,其特征在于系统主机同时连接使用2个或更多所述网卡(102),实现多路IPSec加密服务。
[0014]根据一个优选的实施方式,所述的一种使用具备密码功能的网卡实现高速IPSec的方法,其特征在于IPSec可能使用如下一种或多种密码算法:AES、RSA、ECC、SM1、SM2、SM3、SM4。
[0015]综上所述,本专利技术与现有技术相比具有以下有益效果:(1).让海量网络数据包在网卡硬件中完成所有ESP加解密和校验,完全无需进入主机操作系统内核或应用层,大幅提升IPSec吞吐率和大幅降低延迟率;(2).对主机操作系统和CPU、内存等资源依赖性大幅降低;只需要普通的小型计算机或嵌入式,甚至单片机都可以集成使用具备密码运算功能的网卡,实现高速IPSec,让系统整体成本降低,产品形态多样化;(3).单台主机系统可以集成使用多个具备密码运算功能的网卡,实现IPSec服务的横向性能扩展,满足超大规模数据加密保护的应用场景需求。
附图说明
[0016]图1为本专利技术一种使用具备密码功能的网卡实现高速IPSec的方法的示意图。
[0017]图2为传统内核xfrm层实现IPSec方法的示意图。
[0018]图3为使用DPDK技术实现IPSec方法的示意图。
具体实施方式
[0019]下面结合附图1和具体实施例对本专利技术的技术方案做进一步的说明。
[0020]一种使用具备密码功能的网卡实现高速IPSec的方法,其特征在于,方法包含IPSec IKE认证与协商软件(101)、网卡(102),其中网卡(102)内包含固件程序(103)、密码算法模块(104)、SA与策略库(105),以及2个网口;流程
...

【技术保护点】

【技术特征摘要】
1.一种使用具备密码功能的网卡实现高速IPSec的方法,其特征在于:所述方法包含IPSec IKE认证与协商软件(101)、网卡(102),其中网卡(102)内包含固件程序(103)、密码算法模块(104)、SA与策略库(105),以及2个网口;流程

所述IPSec IKE认证与协商软件(101)与其他IPSec系统建立IKE认证和密钥协商,协商出SA安全联盟和策略;流程

所述IPSec IKE认证与协商软件(101)将SA安全联盟和策略写入所述网卡(102)中的所述SA与所述策略库(105)中;流程

所述网卡(102)的网口收到网络数据后,所述固件程序(103)会根据数据包的地址信息等特征,与所述SA与所述策略库(105)进行匹配,如满足加密条件则调用所述密码算法模块(104)对数据进行加密与计算校验值;如满足解密条件则调用所述密码算法模块(104)对数据进行解密与核对校验值;最后将数据包从指定网口发送出去;最后实现在网卡...

【专利技术属性】
技术研发人员:张建国王赛李晓冉
申请(专利权)人:北京国领科技有限公司
类型:发明
国别省市:

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

1