CN115361181A - 一种使用dpdk和密码卡实现高性能链路加密的方法 - Google Patents

一种使用dpdk和密码卡实现高性能链路加密的方法 Download PDF

Info

Publication number
CN115361181A
CN115361181A CN202210944758.5A CN202210944758A CN115361181A CN 115361181 A CN115361181 A CN 115361181A CN 202210944758 A CN202210944758 A CN 202210944758A CN 115361181 A CN115361181 A CN 115361181A
Authority
CN
China
Prior art keywords
link encryption
card
link
dpdk
encryption
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
CN202210944758.5A
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.)
Beijing Guoling Technology Co ltd
Original Assignee
Beijing Guoling 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 Beijing Guoling Technology Co ltd filed Critical Beijing Guoling Technology Co ltd
Priority to CN202210944758.5A priority Critical patent/CN115361181A/zh
Publication of CN115361181A publication Critical patent/CN115361181A/zh
Pending legal-status Critical Current

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/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
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Landscapes

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

Abstract

本发明公开了一种使用DPDK和密码卡实现高性能链路加密的方法。以往链路加密系统通常采用FPGA网卡实现,这需要专门设计硬件板卡和使用专用的FPGA语言开发,且性能容易达到瓶颈。本方法采用DPDK高性能数据平面开发套件和通用PCI‑E密码卡,结合应用层链路加密软件共同实现高性能链路加密系统。本方法可以利用通用计算机系统、通用网卡和通用PCI‑E密码卡实现高性能链路加密系统,不再需要专用FPGA芯片、板卡和专用语言开发的固件程序,大幅降低技术难度、研发成本和生产成本。

Description

一种使用DPDK和密码卡实现高性能链路加密的方法
技术领域
本发明涉及一种计算机网络通讯传输加密系统和技术,尤其涉及链路透明加密技术、DPDK应用技术。
背景技术
针对网络传输数据进行加密是非常常见的信息安全需求,应用范围极广,常用的技术包括IPSecVPN和SSLVPN等系统。这两种网络加密协议原理是将原始网络数据包整个加密(包含IP数据包头信息或二层数据包头MAC地址信息),然后按照VPN系统的路由设置重新添加一个包头(包括新的MAC地址和IP地址),将新的加密包发送给对方VPN系统,对方VPN系统解密后,还原出原始数据包。这样的解决方案要求必须事先为VPN系统分配IP地址,并要求应用系统将其默认网关或目的网络的路由信息指向VPN系统,同时需要在VPN系统之间设置较为复杂的隧道规则信息,对用户的专业技术有一定要求。在许多实际网络加密需求场景中,客户操作人员经常不具备太多网络知识基础和VPN系统使用经验,导致VPN配置和应用效率很低,且容易因配置错误出现安全隐患。
基于上述原因,链路层透明加密系统应运而生,它通常表现为全透明网络设备,无需操作员为其配置IP地址、MAC地址、路由信息以及隧道规则。工作原理不再是将网络数据包整个加密,而是保留原始数据包的包头信息不变,仅仅将载荷内容进行加密,然后将加密后的数据再传到网络中。这样做的优点是:数据包原本是怎么流转的(包括如何路由和寻址),加密后仍然能够按照原网络路径进行流转,因为网路设备在转发数据包时是按照包头的地址信息进行判断和处理的,透明加密后改变的仅仅是载荷内容,并未改变包头地址信息。如此一来,操作员部署链路加密系统的工作量和难度都大幅降低,只需要将系统串接在网络中,数据穿过链路加密系统时就可以自动完成加密或解密,非常方便。
目前绝大多数链路加密系统都是采用专用FPGA主板或通用计算机集成FPGA网卡实现,这需要专门设计硬件板卡和使用专用的FPGA语言开发,软硬件技术门槛较高,设计和生产成本较高,且性能容易达到瓶颈。
DPDK(Data Plane Development Kit,数据平面开发套件)是由Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。
发明内容
针对现有FPGA链路加密技术存在的不足,本发明提供了一种使用DPDK和密码卡实现高性能链路加密的方法,基于通用计算机系统平台、通用网卡以及通用PCI-E密码卡,开发应用层链路加密软件,集成DPDK高性能数据平面开发套件,共同实现高性能链路加密系统。
为实现上述目的,本发明提供如下技术方案:
一种使用DPDK和密码卡实现高性能链路加密的方法,其特征在于,所述方法至少包含链路加密软件模块、DPDK框架、CryptoDev、密码卡调用接口、PCI-E密码卡、网卡;
所述链路加密软件模块通过所述DPDK框架接收来自所述网卡指定网口接收的数据包;
所述链路加密软件模块解析数据包结构,保持链路层数据包头不变,将载荷数据进行加密(加密的方法见后续流程);
所述链路加密软件模块调用符合所述DPDK框架接口标准的所述CryptoDev密码引擎,该引擎集成了所述密码卡调用接口,能够使用所述PCI-E密码卡提供的硬件密码算法加速功能;
数据包的载荷部分加密完毕后,所述链路加密软件模块即可将数据包从指定的发送网口传输到网络中,完成链路加密功能;链路解密过程与链路加密过程相似,接收和发送的网口正好相反,同时加密算法改为解密算法。
根据一个优选的实施方式,所述的使用DPDK和密码卡实现高性能链路加密的方法,其特征在于,方法不仅支持在二层进行链路加密与解密,也支持三层IP协议和四层TCP和UDP协议;基本原理相似,都是将所需包头保持不变,而将有效载荷数据部分进行加密或解密。
综上所述,本发明与现有技术相比具有以下有益效果:
(1).无需设计、生产专用FPGA主板或FPGA网卡等硬件板卡,只需要使用通用的计算机硬件平台、通用网卡、通用PCI-E密码卡(即密码算法加速卡),大幅降低了开发周期、成本,以及批量生产的成本;
(2).无需使用专用FPGA语言开发链路加密固件程序,只需要在通用计算机平台上使用常见的C语言进行开发即可,大幅降低了开发难度和招聘专用人才的高昂成本;同时基于C语言在应用层开发软件,开发效率更高,灵活度更高,可以实现更加复杂的协议处理机制,集成更多第三方功能代码,无需担忧FPGA芯片捉襟见肘的存储空间;
(3).充分应用了DPDK高性能数据平面开发套件,能够使高带宽海量网络数据绕开操作系统内核中断机制,直接转发到应用层软件代码中,进行高性能数据处理,大幅提升了网络数据加密的效率;将此技术应用到链路加密系统,能进一步提高链路加密的实时性和吞吐带宽;
(4).本方法可以在DPDK的CryptoDev加密引擎上集成多块PCI-E密码卡,实现超高数据带宽的负载均衡调用,满足更高性能的链路加密机设计需求。
附图说明
图1为本发明使用DPDK和密码卡实现高性能链路加密的方法的示意图。
图2为本发明使用DPDK和多个PCI-E密码卡、多个网口实现多路高性能链路加密的方法的示意图。
具体实施方式
下面结合附图1和具体实施例对本发明的技术方案做进一步的说明。
一种使用DPDK和密码卡实现高性能链路加密的方法,其特征在于:所述方法包含链路加密软件模块(101)、DPDK框架(102)、CryptoDev(103)、密码卡调用接口(104)、PCI-E密码卡(105)、网卡(106);
所述链路加密软件模块(101)通过所述DPDK框架(102)接收来自所述网卡(106)指定网口接收的数据包;
所述链路加密软件模块(101)解析数据包结构,保持链路层数据包头不变,将载荷数据进行加密(加密的方法见后续流程);
所述链路加密软件模块(101)调用符合所述DPDK框架(102)接口标准的所述CryptoDev(103)密码引擎,该引擎集成了所述密码卡调用接口(104),能够使用所述PCI-E密码卡(105)提供的硬件密码算法加速功能;
数据包的载荷部分加密完毕后,所述链路加密软件模块(101)即可将数据包从指定的发送网口传输到网络中,完成链路加密功能;链路解密过程与链路加密过程相似,接收和发送的网口正好相反,同时加密算法改为解密算法。
实施例1:
参见图1所示,系统包含链路加密软件模块(101)、DPDK框架(102)、CryptoDev(103)、密码卡调用接口(104)、PCI-E密码卡(105)、网卡(106);
所述链路加密软件模块(101)通过所述DPDK框架(102)接收来自所述网卡(106)指定网口接收的数据包;
所述链路加密软件模块(101)解析数据包结构,保持链路层数据包头不变,将载荷数据进行加密(加密的方法见后续流程);
所述链路加密软件模块(101)调用符合所述DPDK框架(102)接口标准的所述CryptoDev(103)密码引擎,该引擎集成了所述密码卡调用接口(104),能够使用所述PCI-E密码卡(105)提供的硬件密码算法加速功能;
数据包的载荷部分加密完毕后,所述链路加密软件模块(101)即可将数据包从指定的发送网口传输到网络中,完成链路加密功能;链路解密过程与链路加密过程相似,接收和发送的网口正好相反,同时加密算法改为解密算法。
实施例2:
参见图2,与实施例1相似,但使用了多个PCI-E密码卡和多个网卡,提供多路链路加密,同时内部采用多密码卡进行负载均衡,共同实现多路高性能链路加密。
需要注意的是,上述具体实施方式是示例性的,本领域技术人员可以在本发明公开内容的启发下想出类似解决方案,以及对本发明的各项权利进行非实质性改变;而这些解决方案和改变也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。

Claims (3)

1.一种使用DPDK和密码卡实现高性能链路加密的方法,其特征在于:所述方法包含链路加密软件模块(101)、DPDK框架(102)、CryptoDev(103)、密码卡调用接口(104)、PCI-E密码卡(105)、网卡(106);
所述链路加密软件模块(101)通过所述DPDK框架(102)接收来自所述网卡(106)指定网口接收的数据包;
所述链路加密软件模块(101)解析数据包结构,保持链路层数据包头不变,将载荷数据进行加密(加密的方法见后续流程);
所述链路加密软件模块(101)调用符合所述DPDK框架(102)接口标准的所述CryptoDev(103)密码引擎,该引擎集成了所述密码卡调用接口(104),能够使用所述PCI-E密码卡(105)提供的硬件密码算法加速功能;
数据包的载荷部分加密完毕后,所述链路加密软件模块(101)即可将数据包从指定的发送网口传输到网络中,完成链路加密功能;链路解密过程与链路加密过程相似,接收和发送的网口正好相反,同时加密算法改为解密算法。
2.根据权利要求1所述的使用DPDK和密码卡实现高性能链路加密的方法,其特征在于,方法不仅支持在二层进行链路加密与解密,也支持三层IP协议和四层TCP和UDP协议;基本原理相似,都是将所需包头保持不变,而将有效载荷数据部分进行加密或解密。
3.根据权利要求1所述的使用DPDK和密码卡实现高性能链路加密的方法,其特征在于,可能包含多个所述PCI-E密码卡(105)以实现更高带宽数据并发处理能力;同时可能包含多个所述网卡(106),可实现更多网络接口收发以满足多路链路加密服务能力。
CN202210944758.5A 2022-08-08 2022-08-08 一种使用dpdk和密码卡实现高性能链路加密的方法 Pending CN115361181A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210944758.5A CN115361181A (zh) 2022-08-08 2022-08-08 一种使用dpdk和密码卡实现高性能链路加密的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210944758.5A CN115361181A (zh) 2022-08-08 2022-08-08 一种使用dpdk和密码卡实现高性能链路加密的方法

Publications (1)

Publication Number Publication Date
CN115361181A true CN115361181A (zh) 2022-11-18

Family

ID=84033765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210944758.5A Pending CN115361181A (zh) 2022-08-08 2022-08-08 一种使用dpdk和密码卡实现高性能链路加密的方法

Country Status (1)

Country Link
CN (1) CN115361181A (zh)

Similar Documents

Publication Publication Date Title
US10250571B2 (en) Systems and methods for offloading IPSEC processing to an embedded networking device
US7634650B1 (en) Virtualized shared security engine and creation of a protected zone
US8533808B2 (en) Network security smart load balancing using a multiple processor device
CN100594690C (zh) 一种安全网关中进行安全策略统一处理的方法及装置
US10911491B2 (en) Encryption with sealed keys
EP2357763B1 (en) Methods apparatuses for crossing virtual firewall to transmit and receive data
US8281385B2 (en) Internet friendly proxy server extending legacy software connectivity
US8194667B2 (en) Method and system for inheritance of network interface card capabilities
US20170118174A1 (en) Communication tunneling in application container environments
US7742474B2 (en) Virtual network interface cards with VLAN functionality
US20030131263A1 (en) Methods and systems for firewalling virtual private networks
WO2019231547A1 (en) Systems and methods for split network tunneling based on traffic inspection
EP2235908B1 (en) Selectively loading security enforcement points with security association information
CN100459568C (zh) 在应用层实现vpn协议的系统及其方法
CN113055269B (zh) 虚拟专用网络数据的传输方法及装置
US20080077694A1 (en) Method and system for network security using multiple virtual network stack instances
CN108964880A (zh) 一种数据传输方法及装置
CN117597903A (zh) 对应用容器的动态代理响应
CN112787913B (zh) 智能网卡组件、物理机、云服务系统以及报文发送方法
US20230396597A1 (en) Partial packet encryption for encrypted tunnels
Freitas et al. A survey on accelerating technologies for fast network packet processing in Linux environments
US8050266B2 (en) Low impact network debugging
US8516240B1 (en) WAN secured VDI traffic for WAN optimization without required user configuration
CN115361181A (zh) 一种使用dpdk和密码卡实现高性能链路加密的方法
US20220385631A1 (en) Distributed traffic steering and enforcement for security solutions

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