CN111480328A - 将通信安全操作卸载到网络接口控制器 - Google Patents

将通信安全操作卸载到网络接口控制器 Download PDF

Info

Publication number
CN111480328A
CN111480328A CN201880079802.2A CN201880079802A CN111480328A CN 111480328 A CN111480328 A CN 111480328A CN 201880079802 A CN201880079802 A CN 201880079802A CN 111480328 A CN111480328 A CN 111480328A
Authority
CN
China
Prior art keywords
cryptographic security
protocol
data packet
nic
cryptographically secure
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
CN201880079802.2A
Other languages
English (en)
Other versions
CN111480328B (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.)
Mellanox Technologies Ltd
Original Assignee
Mellanox Technologies 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 Mellanox Technologies Ltd filed Critical Mellanox Technologies Ltd
Publication of CN111480328A publication Critical patent/CN111480328A/zh
Application granted granted Critical
Publication of CN111480328B publication Critical patent/CN111480328B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • H04L9/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

计算装置(22)包括主机处理器(30),该主机处理器(30)运行虚拟机监控器(VMM)(40),该VMM 40支持多个虚拟机(38)并且包括密码安全软件模块(54)。网络接口控制器(NIC)(32)将主机处理器链接到网络(28)以便向虚拟机发送数据分组和从虚拟机接收数据分组,并且包括密码安全硬件逻辑模块(44),该密码安全硬件逻辑模块(44)在由VMM调用时对数据分组施加密码安全协议,同时保持该协议关于每个虚拟机的状态上下文。在当施加密码安全协议时遇到异常之后,NIC将数据分组连同密码安全协议关于给定虚拟机的状态上下文一起传送到密码安全软件模块以供进行处理。

Description

将通信安全操作卸载到网络接口控制器
技术领域
本发明总体上涉及计算机网络通信,并且具体涉及用于对通过网络发送和接收的数据分组执行安全相关操作的装置和方法。
背景技术
因特网协议安全(Internet Protocol Security,IPsec)是一个对通过网络发送的数据分组进行认证和加密的网络协议套件(network protocol suite)。IPsec操作因特网协议(IP)套件的因特网层(一般称为网络层,或第3层),并且可以自动保护IP数据分组中传输的应用和数据。IPsec使用密码安全服务来支持网络级对等认证、数据来源认证、数据完整性、数据机密性(加密)和重放保护。IPsec还包括用于在会话开始时在代理之间建立相互认证以及协商在会话期间使用的密码密钥的协议。IPsec体系结构和操作功能在因特网工程任务组(Internet Engineering Task Force,IETF)在线发布的一系列征求意见(Request for Comment,RFC)中进行了规定,包括RFC 4301、RFC 4303和RFC 4106。
在流行的实现中使用的IPsec的特定功能包括以下各项:
·认证报头(Authentication Header,AH)被添加到IPsec分组,以提供IP数据报的无连接数据完整性和数据来源认证,连同针对重放攻击的保护。AH包含32位序列号和完整性检验值。为了防范重放攻击,序列号永远不会在给定的安全关联中重复使用,并且当序列号达到其最大值时,会协商新的安全关联。
·封装安全净荷(Encapsulating Security Payload,ESP)是一种加密净荷格式,其提供保密性、数据来源认证、无连接完整性、防重放服务和有限的业务流保密性。在隧道模式下,整个原始IP分组都封装有添加的新的分组报头,并且将ESP保护施加于整个内IP分组(包括报头),而用于网络路由的外报头保持不受保护。
·安全关联(Security Association,SA)提供用于导出和协商IPsec端点对之间AH和/或ESP操作所必需的参数的算法和数据。安全关联数据库(security associationdatabase,SAD)定义与每个SA相关联的参数。
由于IPsec为计算密集型,因此一些作者建议将IPsec处理从主机处理器卸载到网络接口控制器(NIC)。例如,美国专利8,006,297描述了用于组合安全协议和分组过滤器卸载和加载的方法和系统。该专利描述了一种NIC,其包括:安全关联数据库(SADB),其包括多个安全关联(SA);密码卸载引擎,其被配置用于使用多个SA中之一对分组进行解密;安全策略数据库(security policy database,SPD),其包括:多个安全策略(security policy,SP)和多个过滤器策略;以及策略引擎,其被配置用于使用来自SPD的多个SP中之一确定分组的进入权,并将多个过滤器策略中之一施加于分组。
作为另一示例,美国专利申请公开2010/0228962描述了对经由转发设备在第一计算机与第二计算机之间根据安全协议发送的分组数据进行的密码保护处理的卸载。转发设备执行部分处理,并将分组数据转发到与转发设备相连接的第三计算机以进行其他处理。第三计算机可以支持安全协议的非标准扩展,例如在安全协议上授权和建立连接中使用的扩展。第三计算机将其处理结果(诸如密码密钥或检测到的访问控制策略)发送到转发设备。
发明内容
下文描述的本发明实施方式提供了用于将安全相关功能卸载到硬件逻辑的改进的装置和方法。
因此,根据本发明的实施方式,提供了一种计算装置,包括:主机处理器,其被配置用于运行虚拟机监控器(virtual machine monitor,VMM),该VMM支持在所述主机处理器上运行的多个虚拟机,并且包括密码安全软件模块,所述密码安全软件模块被配置用于对由所述虚拟机中的一个或多个虚拟机发送和接收的数据分组施加密码安全协议。网络接口控制器(NIC)被配置用于将所述主机处理器链接到网络,以便通过所述网络向所述虚拟机发送所述数据分组和从所述虚拟机接收所述数据分组,并且所述NIC包括密码安全硬件逻辑模块,所述密码安全硬件逻辑模块被配置用于在由所述VMM调用时,对由所述虚拟机中的一个或多个虚拟机发送和接收的数据分组施加密码安全协议,同时保持所述密码安全协议关于所述虚拟机中的一个或多个虚拟机中的每一个的状态上下文。NIC被配置用于,在当对指向给定虚拟机的数据分组施加所述密码安全协议时遇到异常之后,将所述数据分组连同所述密码安全协议关于所述给定虚拟机的状态上下文一起传送到所述VMM的所述密码安全软件模块,所述密码安全软件模块使用所述状态上下文处理所述数据分组,并在处理后将所述数据分组传递给所述给定虚拟机。
在所公开的实施方式中,所述VMM被配置用于施加所述密码安全协议以及调用所述密码安全硬件逻辑模块,而无需所述虚拟机参与所述密码安全协议的调用或实现。
在一些实施方式中,所述VMM被配置用于,当所述NIC遇到所述异常时,通过与所述NIC执行预定义握手来获取所述密码安全协议关于所述给定虚拟机的状态上下文。所述预定义握手例如包括从所述NIC查询和接收分组序列号信息,以及更新在所述密码安全协议中使用的重放保护信息。
在一个实施方式中,所述异常包括在所述数据分组的发送者施加所述密码安全协议之后对所述数据分组进行分片,并且其中所述VMM被配置用于对所述数据分组进行分片整理。
在公开的实施方式中,所述VMM被配置用于,在处理所述数据分组之后,通过使经处理的数据分组通过所述NIC循环到所述给定虚拟机,来将经处理的数据分组传递到所述给定虚拟机。
在一些实施方式中,所述NIC被配置用于使用所述密码安全协议的状态上下文对从所述给定虚拟机向指定目的地发送的数据分组施加封装,同时保持使用所述状态上下文发送的数据的计数,并且当所述计数达到预定义的限制时,停止向所述指定目的地发送所述数据分组,并将所述状态上下文传送到所述VMM的所述密码安全软件模块以供更新所述状态上下文。附加地或替代地,所述NIC被配置用于使用所述密码安全协议的状态上下文,对从所述网络接收到的封装数据分组施加解封装,以及在从所述VMM接收到终止所述解封装的指令之后,使所述接收到的数据分组循环回到所述网络。
在示例实施方式中,所述密码安全协议包括IPsec协议。
根据本发明的实施方式,还提供了一种计算装置,包括:网络接口,其被配置用于连接到网络;以及主机接口,其被配置用于连接到主机计算机的外围组件总线。嵌入式控制器被配置用于运行密码安全软件模块,所述密码安全软件模块对由所述主机计算机上运行的应用发送和接收的数据分组施加密码安全协议。分组处理硬件逻辑耦合在所述主机接口与所述网络接口之间,以便通过所述网络向所述主机计算机上运行的所述应用发送数据分组和从所述主机计算机上运行的所述应用接收数据分组,并且所述分组处理硬件逻辑包括密码安全硬件逻辑模块,所述密码安全硬件逻辑模块被配置用于在由所述嵌入式控制器调用时,对由所述应用中的一个或多个应用发送和接收的数据分组施加所述密码安全协议,同时保持所述密码安全协议关于所述应用中的一个或多个应用中的每一个的状态上下文。分组处理硬件逻辑被配置用于,在当对指向给定应用的数据分组施加所述密码安全协议时遇到异常之后,将所述数据分组连同所述密码安全协议关于所述给定应用的状态上下文一起传送到所述嵌入式控制器的密码安全软件模块,所述密码安全软件模块使用所述状态上下文处理所述数据分组,并在处理后将所述数据分组传递给所述给定应用。
在公开的实施方式中,所述嵌入式控制器被配置用于施加所述密码安全协议以及调用所述密码安全硬件逻辑模块,而无需所述应用参与所述密码安全协议的调用或实现。
根据本发明的实施方式,另外提供一种计算方法,其包括:在可编程处理器上运行密码安全软件模块,所述密码安全软件模块被配置用于对由主机计算机上运行的应用发送和接收的数据分组施加密码安全协议。将网络接口控制器(NIC)耦合在主机处理器与网络之间,以便通过所述网络向所述应用发送所述数据分组和从所述应用接收所述数据分组。所述密码安全软件模块调用所述NIC中的密码安全硬件逻辑模块,从而使所述密码安全硬件逻辑模块对由所述应用中的一个或多个应用发送和接收的数据分组施加所述密码安全协议,同时保持所述密码安全协议关于所述应用中的一个或多个应用中的每一个的状态上下文。在所述密码安全硬件逻辑模块中,在当对指向给定应用的数据分组施加所述密码安全协议时遇到异常之后,将所述数据分组连同所述密码安全协议关于所述给定应用的状态上下文一起传送到在所述可编程处理器上运行的所述密码安全软件模块。使用所述状态上下文和所述密码安全软件模块在所述可编程处理器上处理所述数据分组,并在处理后将所述数据分组传递给所述给定应用。
通过以下对本发明实施方式的详细描述并结合附图,将会更充分地理解本发明,其中:
附图说明
图1是示意性地图示根据本发明实施方式的联网计算机系统的框图。
图2是示意性地图示根据本发明实施方式的网络接口控制器(NIC)和运行于主机处理器上的软件的细节的框图;
图3是示出根据本发明实施方式,在NIC与运行于主机处理器上的软件之间交换的通信的梯形图;
图4是示意性地图示根据本发明实施方式,用于在NIC与虚拟机监控器(virtualmachine monitor,VMM)之间执行安全相关握手的方法的流程图;以及
图5是示意性地图示根据本发明实施方式,带有具有嵌入式控制器的NIC的主机计算机的框图。
具体实施方式
概述
考虑到诸如IPsec之类的密码安全协议中涉及的繁重计算负担,将处理任务卸载到NIC是理想的解决方案。诸如IPsec等协议的核心计算功能可以在密码安全硬件逻辑模块中高效实现,该密码安全硬件逻辑模块可被设计成在不降低NIC数据吞吐量的情况下执行必要的分组处理。
然而,几乎每种协议都有其异常,这样的异常不在核心逻辑功能范围内。例如,在IP网络中,在发送节点被施加AH或ESP的分组可能会在前往目的地的途中被分片成较小的分组。接收节点必须在AH认证和解封装之前首先对这些分组进行分片整理。在NIC中实现此类分片整理需要大量的存储器和重新排序逻辑,这会增加芯片大小和处理延迟。
作为另一个示例,出于重放保护的原因,IPsec要求将给定的SA上下文用于不超过一定数目的数据分组或一定量的数据。IPsec端点应该保持使用当前SA传输的数据的计数,并继而在计数达到预定义的限制时协商新的SA。在这样的情况下,在NIC中的硬件逻辑中实现此类功能性也是不切实际的。
针对上述各种问题的一种解决方案是,NIC只需在发生异常时丢弃分组,并在需要时依靠高级软件来恢复和调用重传。这些种类的解决方案一般要求发送和接收分组的软件应用知晓并参与密码安全协议。这样的软件参与增添到施加在CPU上的处理负担,并且增加了分组延迟并降低了吞吐量。
本文描述的本发明实施方式通过在NIC中的密码安全硬件逻辑模块与在特权域中运行于处理器上的密码安全软件模块之间的新颖协作的手段来解决这些问题。该域是“特权的”,原因在于其可以访问并且能够更改密码安全协议的状态上下文,其中该上下文包括在加密和认证中使用的参数,诸如分组序列号、计数器和密码密钥。如下文描述的实施方式中所示,这样的特权域的示例包括运行虚拟机的主机计算机中的虚拟机监控器(virtualmachine monitor,VMM,也称为管理程序),或者智能NIC中的嵌入式可编程控制器。特权软件模块能够施加密码安全协议和调用密码安全硬件逻辑模块,而无需经由NIC发送和接收分组的(非特权)用户域应用的参与。实际上,用户域应用甚至不需要知晓正在向其所发送和接收的分组施加分组加密或认证。
在所公开的实施方式中,当要对由一个或多个应用(包括在给定虚拟机上运行的应用)发送和接收的数据分组施加密码安全时,密码安全软件模块调用NIC中的密码安全硬件逻辑模块。硬件逻辑模块继而将会对这些应用所发送和接收的数据分组施加适当的安全操作,同时保持关于所讨论的每个应用的密码安全协议的状态上下文。当安全硬件逻辑模块在将密码安全协议施加于指向给定应用的数据分组(诸如分片的分组)时遇到异常时,其将数据分组连同适用的状态上下文一起传送到密码安全软件模块。该软件模块使用状态上下文处理数据分组,并将经处理的数据分组传递给适当的应用。
为了清楚和明确起见,下面描述的实施方式具体涉及IPsec加密、认证和封装。然而,本发明的原理绝不限于IPsec,并且可以备选地适用于实现本领域中已知的其他密码安全协议,特别是基于数据报的分组加密、认证和封装协议。此类协议的示例包括IEEE标准802.1AE定义的媒体访问控制安全(Media Access Control Security,MACsec)和RFC 4347中规定的数据报传输层安全(Datagram Transport Layer Security,DTLS)。
系统描述
图1是示意性地图示根据本发明实施方式的联网计算机系统20的框图。系统20包括多个主机计算机22、24、26,…(也简称为“主机”),该多个主机计算机通过分组数据网络28进行通信。通常,尽管并非必须,数据网络28是第3层网络,诸如IP网络,并且因而包括第3层路由器36以及交换机34,主机22、24、26,…可以通过所述第3层路由器36以及交换机34连接到网络。然而,本发明的原理类似地适用于其他种类的数据网络,例如InfiniBand网络;并且本文描述的方法和电路可以用于支持各种分组级别的密码安全协议,包括第2层协议和第3层协议。
在该示例中,每个主机22、24、26包括中央处理器(CPU)30(其通常包括一个或多个处理核心(未示出)),并伴有系统存储器31和网络接口控制器(NIC)32。NIC 32通过总线33连接到CPU 30和存储器31,并经由交换机34中之一连接到网络28。总线33例如可以包括外围组件总线,诸如PCI
Figure BDA0002532883640000081
总线,或者CPU的专用系统总线。如下文进一步描述,可以调用NIC 32中的密码安全硬件逻辑模块44,以对去往和来自网络28的传出数据分组和传入数据分组施加密码安全协议(诸如IPsec)。
主机22、24、26支持虚拟机环境,其中多个虚拟机38(在图1中标记为VM1、VM2、VM3)可以在任何给定的CPU 30上运行。CPU本机域中的虚拟机监控器(VMM)40以模拟主机处理器并允许虚拟机共享CPU资源的方式与虚拟机38的来宾操作系统的内核进行交互。
NIC 32包括分组处理电路,该分组处理电路被配置成对于在CPU30上运行的程序来说表现为多个虚拟NIC(vNIC)42。在称为单根I/O虚拟化(single-root I/Ovirtualization,SR-IOV)的模型中,每个虚拟机38与NIC 32交互,就如同NIC是专用于该虚拟机一样,从而将虚拟机链接到网络28上的其他机器(虚拟机和/或物理机)。在这方面,NIC32充当虚拟交换机,从而将每个虚拟机连接到特定租户网络,同时允许vNIC 42共享通往底层数据网络28的同一物理端口。
这样的NIC功能虚拟化还通过将IPsec功能从VMM 40卸载到NIC 32而得到支持,如下文更详细地解释。在图1中所示的示例中,主机22中的VM2和主机24中的VM3驻留在同一租户网络上。在本领域中已知的网络虚拟化系统中,为了向VM3发送IPsec分组,VM2将分组提交给主机22中的VMM 40;并且VMM添加AH,封装该分组并将其传输到主机24中的VMM,该VMM继而对分组进行认证、解封装并将其传递给VM3。相比之下,在本实施方式中,主机22中的VM2经由相应的NIC 32之间的IPsec隧道46与主机24中的VM3进行通信,而甚至不必知晓IPsec认证或封装正在发生。
图2是示意性地示出根据本发明实施方式的NIC 32和运行于CPU 30上的软件的细节的框图。运行于CPU 30上的软件,包括操作系统和应用程序,可以例如通过网络以电子形式下载到CPU。附加地或替代地,该软件可以储存在可体现于存储器31中的有形的非暂时性计算机可读介质上,诸如光、磁或电子存储器介质上。
CPU 30操作本机域48,该本机域48具有主机操作系统50和其他特权功能,包括IPsec软件模块54。此外,CPU同时运行一个或多个虚拟机38,如上所述,每个虚拟机38具有其自己的来宾操作系统52和来宾用户应用56。(为简单起见,在图2中仅示出一个来宾OS。)本机域48中的VMM 40以模拟主机处理器和允许虚拟机共享CPU 30的资源的方式与来宾操作系统52的内核进行交互。种类繁多的此类虚拟机软件可供市售,而进一步的描述不在本公开的范围内。
诸如用户应用56等客户机进程通过操纵称为“队列对”(queue pair,QP)的传输服务实例与网络28的传输层通信。为了使用NIC 32通过网络发送和接收消息,客户机将称为工作队列元素(work queue element,WQE)的工作项提交到适当的队列,以由NIC执行。如图1中所示,NIC 32对于每个虚拟机38来说表现为专用的I/O设备或vNIC,以供该虚拟机在其被分配的虚拟租户网络上直接通信时使用。这样的配置使VMM 40上和主机操作系统50上的通信负担最小化。
NIC 32包括连接到主机计算机22的总线33的主机接口,诸如PCIe接口,以及包括连接到网络28的一个或多个端口62的网络接口。NIC32中的分组处理硬件逻辑64耦合于主机接口60与网络端口62之间,并且包括发送(Tx)管道66和接收(Rx)管道68,所述Tx管道66和Rx管道68响应于应用56所发布的WQE而向网络28发送数据分组和从网络28接收数据分组。Tx管道66通过构成分组报头,从存储器31中将指定数据读取到分组净荷中,以及继而将分组发送到网络28来执行WQE。Rx管道68接收传入分组,将分组数据写入存储器31,并且通知目的地应用(例如,通过发布存储器31中适当队列中的完成队列项),以及通过网络28向分组的发送者返回确认。这些基本分组发送和接收操作在本领域中是众所周知的。例如,在美国专利9,462,047中描述了与NIC 32相关联的虚拟化功能的更多细节,该专利的公开内容通过引用并入于此。
分组处理硬件逻辑64还包括密码安全硬件逻辑模块44,该密码安全硬件逻辑模块44被配置用于当由IPsec软件模块54调用时,对由Tx管道66和Rx管道68发送和接收的数据分组施加IPsec安全功能。这些安全功能通常包括向发送的分组添加IPsec认证报头,以及使用这些报头对接收的分组进行认证和防止重放攻击,以及上述RFC中所述的ESP加密、解密、封装、解封装和隧道化(tunneling)。
例如,可以引入硬件逻辑模块44作为管道66和管道68内的流引导中的一个阶段。这样的流引导通常使用分组引导表,该分组引导表包含以报头字段值为键的引导指令,例如,在美国专利申请公开2013/0114599和2016/0359768中所述,其公开内容通过引用并入。流引导条目可以指示出哪些流需要进行IPsec处理,以及哪些IPsec操作应当施加于每个流。
管道66和管道68中的流引导机制由可通过软件配置的流引导条目管控。流引导处理从针对Tx管道66的单个流引导根条目以及针对Rx管道68的另一流引导根条目开始。流引导条目被添加到根条目以形成流引导树,该流引导树为非循环图。IPsec流引导条目可以指定要由硬件逻辑模块44执行的一个或多个行动,例如:
1.加密/解密和认证。
2.检查针对重放窗口的重放保护。
3.添加/删除IPsec报头。
这些功能可以相结合以提供完全IPsec卸载,并且可以与不相关于IPsec的流引导条目(诸如各种报头匹配功能)交错。
例如,在Rx管道68中,针对接收到的分组的流引导树可能包括以下条目序列和对应的行动:
1.检查目的地媒体访问控制(MAC)地址。
2.检查IP地址。
3.检查IPsec ESP的安全参数索引(Security Parameters Index,SPI)。
4.IPsec解密和认证。
5.检查和更新IPsec重放保护。
6.删除ESP报头(解封装分组)。
7.在解封装后解析分组。
8.检查IP地址,并且如果与现有列表不匹配则丢弃。
9.检查传输协议端口,并且如果不匹配则丢弃。
10.施加高级卸载功能。
在所有引导阶段均已成功完成之后,NIC 32将分组传递给其目的地进程。然而,在IPsec处理阶段之一中发生异常的情况下,NIC 32会将分组传递给VMM 40以供软件处理。另一方面,如果分组不满足适用的安全策略所规定的IPsec保护要求,则NIC 32将会完全阻止该分组。
在Tx管道66中,安全策略规则被包含在引导树中以选择SAD中要用于每个传出分组流的条目,这转而将会确定该分组是否将被引用给硬件逻辑模块44以供IPsec处理,并且如果是这样,要施加哪些IPsec功能。根据某些报头字段(诸如IP报头、传输报头和/或封装报头)为每个分组选择SAD条目。因此,针对传出分组的流引导树可能包括以下条目序列和对应的行动:
1.检查目的地MAC地址。
2.检查IP地址。
3.检查传输报头。
4.为该流选择SAD条目。
5.添加ESP报头。
6.加密和认证分组。
备选地,根据在步骤4选择的SAD条目,Tx管道66中的引导逻辑可以决定绕过进一步的IPsec处理或者有可能丢弃分组。
当其他行动与IPsec结合时,可能会出现更复杂的用例。例如,流引导条目可以指挥Rx管道68以解封装和处理封装在虚拟可扩展LAN(Virtual Extensible LAN,VXLAN)分组中的IPsec分组,或者封装在IPsec分组内的VXLAN分组。可以类似地指挥Tx管道66以执行此类多级封装。
硬件逻辑模块44保持关于IPsec软件模块54在VMM 40的控制下调用IPsec服务所针对的每个应用56或虚拟机38的IPsec状态上下文70。如果需要模块44处理大量的分组流,则可将状态上下文数据储存在存储器31中,并根据需要缓存在NIC 32中。上下文70包含SA数据库,该SA数据库保存用于认证和封装分组的密钥和加密参数。通常,上下文70还包括计数器72,该计数器72按照IPsec协议的要求来跟踪分组序列号、重放保护窗口以及所发送的字节和/或分组的数目。在上下文70中保持的信息的更多细节可参见上述RFC4301。
当在对发往或来自给定虚拟机38或应用56的给定分组施加强制IPsec处理时遇到异常后,硬件逻辑模块44将该分组或流传送到IPsec软件模块54以供进一步处理。硬件逻辑模块44还将针对给定虚拟机或应用的对应状态上下文70传送到软件模块54。VMM 40使用软件模块54中的该状态上下文,以对虚拟机或应用透明的方式继续处理分组或流。
在一些实施方式中,在VMM 40已经解决异常之后,硬件逻辑模块44继续处理流中的后续分组。备选地,在VMM已处理异常之后,该流的所有其他卸载(或者具体地,对该IPsecSA的处理)终止,并且该流中的所有后续分组完全由VMM处理。在一些情况下,诸如在非初始IP分片中遇到的异常,只有在完全处理了异常以允许流的正确识别之后,这样的终止才有可能。
异常处理
如上所述,当硬件逻辑模块44在对指向给定虚拟机38的数据分组施加所需IPsec操作中遇到异常时,硬件逻辑模块将数据分组连同关于给定虚拟机的IPsec状态上下文70一起传送到IPsec软件模块54。该软件模块使用状态上下文来处理数据分组,并在处理后将数据分组传递到给定虚拟机,同时更新状态上下文(例如,包括重放保护数据和序列号)。下面将会参考图3描述关于分片分组的此类处理的一个示例。
在状态和规则对于让硬件逻辑模块44保持和识别而言过于复杂(诸如复杂的防火墙规则)的其他情况下,发生从硬件到软件的类似类型的移交。例如,当某个VM 38要求NIC32发送对于在封装之后发送而言过大并且需要IP分片的分组时,可能会发生异常。硬件逻辑模块44在加密、认证和封装之后识别该异常,并将分组传递给VMM 40以供在分片之后进行重传。
作为另一示例,当应加密的分组在配置了用于处理该分组的任何密码信息之前被发送时,硬件逻辑模块44可能遇到异常。在接收到该分组之后,VMM 40将会接管并执行握手以配置密码信息。
图3是示出根据本发明实施方式,在NIC 32与运行于CPU 30上的软件之间交换的通信的梯形图。在此描述中,VMM 40采取的行动包括由IPsec软件模块54执行的功能。在正常操作中,NIC 32从网络28接收发往给定VM 38的IPSec分组80,并在硬件逻辑模块44中处理分组80以适当地认证和解封装该分组。NIC 32继而将对应的分组数据82写入存储器31,并通知适当的VM 38。如前文所述,VM不参与IPsec功能,并且可能甚至不知晓这样的功能正在被施加于VM所发送和接收的分组。
然而,当NIC 32接收到IPsec分片84时,硬件逻辑模块44识别出该分组已被分片,并通知VMM 40发生了异常86。(例如,当诸如主机24等分组发送者对大型分组施加IPsec认证和/或封装,并且路由器36中之一将原始的大型分组分解成较小的IP分组以供传输到主机22上时可能发生这种类型的分片。)具体而言,NIC 32通常将分组分片写入存储器31以供由软件处理,并在队列中放入事件报告以供由VMM 40处理。在接收和解析事件报告后,VMM40在分片整理步骤88处从存储器31中的分片读取并重新组装原始分组的碎片。
另外,IPsec软件模块54与硬件逻辑模块44执行握手90,以便在状态上下文70中检索和更新处理经分片整理的分组所需的参数。握手90的细节在图4中示出。握手90可以与分片整理步骤88同时或在其之前进行,而不是在分片整理之后进行,如图3中所示。
一旦IPsec软件模块54完成分片整理步骤88和握手90,它就能够对接收到的分组执行所需的IPsec处理操作。作为握手的一部分,NIC 32将当前IPsec扩展序列号(extendedsequence number,ESN)传递给VMM 40,以用于解密经分片整理的分组数据。(假设解密成功,VMM 40更新由硬件逻辑模块44在重放保护中使用的上下文信息,并且模块44因此能够继续处理该流中的后续分组。)在IPsec处理完成之后,VMM 40继而通过使经处理的数据分组循环通过NIC32,将经处理的数据分组传递给目的地VM 38。换句话说,VMM 40将恢复的分组92写入NIC 32,就如同其正在通过网络28将分组发送到任何目的地VM一样。NIC 32对恢复的分组92施加其通常的SR-IOV虚拟交换功能,以便将对应的分组数据94写入VM 38。因此,VM 38仍然不知晓所施加的IPsec处理和异常处理链。
图4是示意性地示出根据本发明实施方式的握手90的细节的流程图。如上所述,当NIC 32在给定分组或流的IPsec处理中遇到异常时,VMM 40使用这样的握手来获取关于该分组或流所发往的VM 38的IPsec状态上下文70。握手中的步骤是通过在VMM 40与NIC 32之间通过总线33读取和写入指令和数据来执行的。图4示出了这样的握手的一个示例,但根据交换的协议和上下文信息,还可以使用替代的实现方式。
VMM 40(或IPsec软件模块54)在查询步骤100处向NIC 32查询IPsec处理中使用的分组序列号信息。例如,VMM 40可以请求对接收到的分组进行认证和解密所需的,IPsec扩展序列号(ESN)的最高有效位(most significant bit,MSB)。在查询响应步骤102处,NIC32将该信息从IPsec状态上下文70返回到VMM 40。
VMM 40还在原子更新步骤104处对IPsec中使用的重放保护信息执行原子读取和更新操作。该步骤固定IPsec中使用的滑动窗口的值以防止重放攻击,并且因此确保VMM 40不会将被重放的分组传递给VM 38。一旦握手完成,VMM 40在移交步骤106处接管处理在该IPsec SA中发生的异常(例如,分组分片)。VMM 40更新IPsec状态上下文70,从而使得NIC32中的硬件逻辑模块44能够继续处理流中的后续分组。
作为另一示例(图中未明确示出),NIC 32中的硬件逻辑模块44可以使用针对每个虚拟机38的适当状态上下文70对传出分组和传入分组施加IPsec ESP封装、解封装和隧道化。根据IPsec要求,模块使用计数器72来保持使用给定SA传送的数据(例如,通过特定IPsec隧道发送或接收的数据)的计数。当计数达到预定义限制时,NIC 32将会停止发送或接收数据分组,并且将会向VMM 40传送对应的状态上下文70以供对状态上下文进行更新。在这个阶段,VMM40可以通过网络28与远程主机协商新的SA,随之ESP操作可以重新开始。
作为另一示例,NIC 32中的硬件逻辑模块44可以使用状态上下文70对来自网络28的传入分组进行解封装。在从VMM 40接收终止解封装的指令后,NIC 32可以将接收到的数据分组循环回网络28,并且还可以对传出分组执行附加的IPsec功能。
备选实施方式–智能NIC
图5是示意性地图示根据本发明实施方式,带有包括嵌入式控制器114的“智能NIC”112的主机计算机110的框图。该实施方式以与上述实施方式类似的方式处理IPsec卸载,不同之处在于NIC 112中的IPsec硬件逻辑模块44与运行于嵌入式控制器114而不是CPU30上的IPsec软件模块116进行交互。上文参考NIC 32和VMM 40所述的其中将状态上下文传送到IPsec软件模块的IPsec卸载特征可以同样地比照适用于智能NIC 112。计算机主机110中运行在CPU 30上的应用和虚拟机可以类似地不知晓NIC 112所施加的IPsec功能。
如在前述实施方式中那样,NIC 112包括连接到网络28的网络端口62和连接到计算机110的总线33的主机接口60。分组处理硬件逻辑64耦合在主机接口60与网络端口62之间,以便通过网络向运行于CPU 30上的应用发送数据分组和从运行于CPU 30上的应用接收数据分组。IPsec硬件逻辑模块44在由嵌入式控制器114调用时,对由运行于CPU 30上的一个或多个应用发送和接收的数据分组施加IPsec处理,同时保持关于这些应用中的每一个的IPsec状态上下文(如图2中所示)。
在本实施方式中,运行于嵌入式控制器114上的IPsec软件模块116被配置用于适当地施加IPsec处理和调用硬件逻辑模块44。当硬件逻辑模块44在对指向给定应用的数据分组施加IPsec中遇到异常时,模块44将数据分组连同对应的IPsec状态上下文传送到IPsec软件模块116。继而,嵌入式控制器114使用状态上下文处理数据分组,并在处理后将数据分组传递到CPU 30上的给定应用。
尽管上文具体参考IPsec描述了计算机22和110的特征,但这些计算机的硬件和软件体系结构以及操作方法可以类似地比照适用于其他密码安全协议的卸载。因此,应当理解,上述实施方式是作为示例引用的,且本发明不受上述的具体表示和描述的限制。相反,本发明的范围包括上述各个特征的组合和子组合,以及本领域技术人员在阅读以上描述时所想到的,且未在现有技术中公开的变化和修改。

Claims (23)

1.一种计算装置,包括:
主机处理器,其被配置用于运行虚拟机监控器(virtual machine monitor,VMM),所述虚拟机监控器支持在所述主机处理器上运行的多个虚拟机,并且包括密码安全软件模块,所述密码安全软件模块被配置用于对由所述虚拟机中的一个或多个虚拟机发送和接收的数据分组施加密码安全协议;以及
网络接口控制器(NIC),其被配置用于将所述主机处理器链接到网络,以便通过所述网络向所述虚拟机发送所述数据分组和从所述虚拟机接收所述数据分组,并且所述NIC包括密码安全硬件逻辑模块,所述密码安全硬件逻辑模块被配置用于在由所述VMM调用时,对由所述虚拟机中的一个或多个虚拟机发送和接收的数据分组施加所述密码安全协议,同时保持所述密码安全协议关于所述虚拟机中的一个或多个虚拟机中的每一个的状态上下文,
其中,所述NIC被配置用于,在当对指向给定虚拟机的数据分组施加所述密码安全协议时遇到异常之后,将所述数据分组连同所述密码安全协议关于所述给定虚拟机的状态上下文一起传送到所述VMM的所述密码安全软件模块,所述密码安全软件模块使用所述状态上下文处理所述数据分组,并在处理后将所述数据分组传递给所述给定虚拟机。
2.根据权利要求1所述的装置,其中所述VMM被配置用于施加所述密码安全协议以及调用所述密码安全硬件逻辑模块,而无需所述虚拟机参与所述密码安全协议的调用或实现。
3.根据权利要求1所述的装置,其中所述VMM被配置用于,当所述NIC遇到所述异常时,通过与所述NIC执行预定义握手来获取所述密码安全协议关于所述给定虚拟机的状态上下文。
4.根据权利要求3所述的装置,其中所述预定义握手包括从所述NIC查询和接收分组序列号信息,以及更新在所述密码安全协议中使用的重放保护信息。
5.根据权利要求1所述的装置,其中所述异常包括在所述数据分组的发送者施加所述密码安全协议之后对所述数据分组进行分片,并且其中所述VMM被配置用于对所述数据分组进行分片整理。
6.根据权利要求1所述的装置,其中所述VMM被配置用于,在处理所述数据分组之后,通过使经处理的数据分组通过所述NIC循环到所述给定虚拟机,来将经处理的数据分组传递到所述给定虚拟机。
7.根据权利要求1-6中的任一项所述的装置,其中所述NIC被配置用于使用所述密码安全协议的状态上下文对从所述给定虚拟机向指定目的地发送的数据分组施加封装,同时保持使用所述状态上下文发送的数据的计数,并且当所述计数达到预定义的限制时,停止向所述指定目的地发送所述数据分组,并将所述状态上下文传送到所述VMM的所述密码安全软件模块以供更新所述状态上下文。
8.根据权利要求1-6中的任一项所述的装置,其中所述NIC被配置用于使用所述密码安全协议的状态上下文,对从所述网络接收到的封装数据分组施加解封装,以及在从所述VMM接收到终止所述解封装的指令之后,使所述接收到的数据分组循环回到所述网络。
9.根据权利要求1-6中的任一项所述的装置,其中所述密码安全协议包括IPsec协议。
10.一种计算装置,包括:
网络接口,其被配置用于连接到网络;
主机接口,其被配置用于连接到主机计算机的外围组件总线;
嵌入式控制器,其被配置用于运行密码安全软件模块,所述密码安全软件模块对由所述主机计算机上运行的应用发送和接收的数据分组施加密码安全协议;以及
分组处理硬件逻辑,其耦合在所述主机接口与所述网络接口之间,以便通过所述网络向所述主机计算机上运行的所述应用发送数据分组和从所述主机计算机上运行的所述应用接收数据分组,并且所述分组处理硬件逻辑包括密码安全硬件逻辑模块,所述密码安全硬件逻辑模块被配置用于在由所述嵌入式控制器调用时,对由所述应用中的一个或多个应用发送和接收的数据分组施加所述密码安全协议,同时保持所述密码安全协议关于所述应用中的一个或多个应用中的每一个的状态上下文,
其中,所述分组处理硬件逻辑被配置用于,在当对指向给定应用的数据分组施加所述密码安全协议时遇到异常之后,将所述数据分组连同所述密码安全协议关于所述给定应用的状态上下文一起传送到所述嵌入式控制器的密码安全软件模块,所述密码安全软件模块使用所述状态上下文处理所述数据分组,并在处理后将所述数据分组传递给所述给定应用。
11.根据权利要求10所述的装置,其中所述嵌入式控制器被配置用于施加所述密码安全协议以及调用所述密码安全硬件逻辑模块,而无需所述应用参与所述密码安全协议的调用或实现。
12.根据权利要求10或11所述的装置,其中所述密码安全协议包括IPsec协议。
13.一种计算方法,包括:
在可编程处理器上运行密码安全软件模块,所述密码安全软件模块被配置用于对由主机计算机上运行的应用发送和接收的数据分组施加密码安全协议;
将网络接口控制器(NIC)耦合在主机处理器与网络之间,以便通过所述网络向所述应用发送所述数据分组和从所述应用接收所述数据分组;
通过所述密码安全软件模块调用所述NIC中的密码安全硬件逻辑模块,从而使所述密码安全硬件逻辑模块对由所述应用中的一个或多个应用发送和接收的数据分组施加所述密码安全协议,同时保持所述密码安全协议关于所述应用中的一个或多个应用中的每一个的状态上下文;
在所述密码安全硬件逻辑模块中,在当对指向给定应用的数据分组施加所述密码安全协议时遇到异常之后,将所述数据分组连同所述密码安全协议关于所述给定应用的状态上下文一起传送到在所述可编程处理器上运行的所述密码安全软件模块;以及
使用所述状态上下文和所述密码安全软件模块在所述可编程处理器上处理所述数据分组,并在处理后将所述数据分组传递给所述给定应用。
14.根据权利要求13所述的方法,其中所述可编程处理器包括嵌入在所述NIC中的控制器。
15.根据权利要求13所述的方法,其中所述可编程处理器被包括在所述主机计算机的中央处理器(CPU)中并且运行虚拟机监控器(VMM),所述VMM支持在所述主机计算机上运行的多个虚拟机并且包括密码安全软件模块,并且其中所述应用中的一个或多个应用在所述虚拟机中的一个或多个虚拟机上运行。
16.根据权利要求13所述的方法,其中施加所述密码安全协议并且调用所述密码安全硬件逻辑模块,而无需所述应用参与所述密码安全协议的调用或实现。
17.根据权利要求13所述的方法,其中传送所述状态上下文包括在所述密码安全软件模块与所述NIC之间执行预定义握手。
18.根据权利要求17所述的方法,其中所述预定义握手包括从所述NIC查询和接收分组序列号信息,以及更新在所述密码安全协议中使用的重放保护信息。
19.根据权利要求13所述的方法,其中所述异常包括在所述数据分组的发送者施加所述密码安全协议之后对所述数据分组进行分片,并且其中对所述数据分组进行处理包括对所述数据分组进行分片整理。
20.根据权利要求13所述的方法,其中将所述数据分组传递到所述给定应用包括使经处理的数据分组通过所述NIC循环到所述给定应用。
21.根据权利要求13至20中的任一项所述的方法,其中调用所述密码安全硬件逻辑模块使所述NIC使用所述密码安全协议的状态上下文对从所述给定应用向指定目的地发送的数据分组施加封装,同时保持使用所述状态上下文发送的数据的计数,并且当所述计数达到预定义的限制时,停止向所述指定目的地发送所述数据分组,并将所述状态上下文传送到所述密码安全软件模块以供更新所述状态上下文。
22.根据权利要求13至20中的任一项所述的方法,其中调用所述密码安全硬件逻辑模块使所述NIC使用所述密码安全协议的状态上下文对从所述网络接收到的封装数据分组施加解封装,以及在从所述密码安全软件模块接收到终止所述解封装的指令之后,使接收到的数据分组循环回到所述网络。
23.根据权利要求13至20中的任一项所述的方法,其中所述密码安全协议包括IPsec协议。
CN201880079802.2A 2017-12-14 2018-12-10 将通信安全操作卸载到网络接口控制器 Active CN111480328B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/841,339 2017-12-14
US15/841,339 US10708240B2 (en) 2017-12-14 2017-12-14 Offloading communication security operations to a network interface controller
PCT/IB2018/059824 WO2019116195A1 (en) 2017-12-14 2018-12-10 Offloading communication security operations to a network interface controller

Publications (2)

Publication Number Publication Date
CN111480328A true CN111480328A (zh) 2020-07-31
CN111480328B CN111480328B (zh) 2022-08-02

Family

ID=64959385

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880079802.2A Active CN111480328B (zh) 2017-12-14 2018-12-10 将通信安全操作卸载到网络接口控制器

Country Status (4)

Country Link
US (2) US10708240B2 (zh)
EP (1) EP3725056B1 (zh)
CN (1) CN111480328B (zh)
WO (1) WO2019116195A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112822164A (zh) * 2020-12-29 2021-05-18 北京八分量信息科技有限公司 大数据系统中安全访问数据的方法、系统及相关产品
CN114691232A (zh) * 2020-12-14 2022-07-01 迈络思科技有限公司 将多任务参数相关操作的执行卸载到网络装置
CN115529180A (zh) * 2022-09-28 2022-12-27 芯启源(南京)半导体科技有限公司 IPSec加解密卸载方法

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11005771B2 (en) 2017-10-16 2021-05-11 Mellanox Technologies, Ltd. Computational accelerator for packet payload operations
US11502948B2 (en) 2017-10-16 2022-11-15 Mellanox Technologies, Ltd. Computational accelerator for storage operations
US11095617B2 (en) 2017-12-04 2021-08-17 Nicira, Inc. Scaling gateway to gateway traffic using flow hash
US10708240B2 (en) * 2017-12-14 2020-07-07 Mellanox Technologies, Ltd. Offloading communication security operations to a network interface controller
CN110300064A (zh) * 2018-03-22 2019-10-01 华为技术有限公司 一种数据流量处理方法、设备及系统
US11347561B1 (en) 2018-04-30 2022-05-31 Vmware, Inc. Core to resource mapping and resource to core mapping
US20210092103A1 (en) * 2018-10-02 2021-03-25 Arista Networks, Inc. In-line encryption of network data
US11184439B2 (en) 2019-04-01 2021-11-23 Mellanox Technologies, Ltd. Communication with accelerator via RDMA-based network adapter
US11277343B2 (en) 2019-07-17 2022-03-15 Vmware, Inc. Using VTI teaming to achieve load balance and redundancy
US11416435B2 (en) * 2019-09-03 2022-08-16 Pensando Systems Inc. Flexible datapath offload chaining
WO2021050478A1 (en) * 2019-09-11 2021-03-18 Arris Enterprises Llc Device-independent authentication based on a passphrase and a policy
US11336629B2 (en) * 2019-11-05 2022-05-17 Vmware, Inc. Deterministic load balancing of IPSec packet processing
US11509638B2 (en) 2019-12-16 2022-11-22 Vmware, Inc. Receive-side processing for encapsulated encrypted packets
CN114095153A (zh) 2020-08-05 2022-02-25 迈络思科技有限公司 密码数据通信装置
IL276538B2 (en) 2020-08-05 2023-08-01 Mellanox Technologies Ltd A cryptographic device for data communication
US11841985B2 (en) * 2020-09-03 2023-12-12 Pensando Systems Inc. Method and system for implementing security operations in an input/output device
US11934658B2 (en) 2021-03-25 2024-03-19 Mellanox Technologies, Ltd. Enhanced storage protocol emulation in a peripheral device
DE102021203323A1 (de) * 2021-04-01 2022-10-06 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren, System und Domäne zum Bereitstellen einer Sicherheits-Ausführungsumgebung für sicherheitsrelevante Anwendungen
US12107834B2 (en) 2021-06-07 2024-10-01 VMware LLC Multi-uplink path quality aware IPsec
US12113773B2 (en) 2021-06-07 2024-10-08 VMware LLC Dynamic path selection of VPN endpoint
CN116069695A (zh) 2021-11-03 2023-05-05 迈络思科技有限公司 使用外围设备进行存储器访问跟踪
US12056072B1 (en) * 2021-12-03 2024-08-06 Amazon Technologies, Inc. Low latency memory notification
US11863514B2 (en) 2022-01-14 2024-01-02 Vmware, Inc. Performance improvement of IPsec traffic using SA-groups and mixed-mode SAs
US20220231991A1 (en) * 2022-03-28 2022-07-21 Intel Corporation Method, system and apparatus for inline decryption analysis and detection
US11956213B2 (en) 2022-05-18 2024-04-09 VMware LLC Using firewall policies to map data messages to secure tunnels
US12007921B2 (en) 2022-11-02 2024-06-11 Mellanox Technologies, Ltd. Programmable user-defined peripheral-bus device implementation using data-plane accelerator (DPA)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1657878A1 (en) * 2004-11-12 2006-05-17 Microsoft Corporation Method and apparatus for secure internet protocol (IPSEC) offloading with integrated host protocol stack management
US7716730B1 (en) * 2005-06-24 2010-05-11 Oracle America, Inc. Cryptographic offload using TNICs
CN103051510A (zh) * 2011-09-07 2013-04-17 微软公司 网络策略向网络接口卡的安全和高效卸载
US20130125125A1 (en) * 2010-07-21 2013-05-16 Shuichi Karino Computer system and offloading method in computer system
US8549345B1 (en) * 2003-10-31 2013-10-01 Oracle America, Inc. Methods and apparatus for recovering from a failed network interface card

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904519B2 (en) * 1998-06-12 2005-06-07 Microsoft Corporation Method and computer program product for offloading processing tasks from software to hardware
US7600131B1 (en) 1999-07-08 2009-10-06 Broadcom Corporation Distributed processing in a cryptography acceleration chip
US9444785B2 (en) 2000-06-23 2016-09-13 Cloudshield Technologies, Inc. Transparent provisioning of network access to an application
US20040039940A1 (en) 2002-08-23 2004-02-26 Koninklijke Philips Electronics N.V. Hardware-based packet filtering accelerator
US7269171B2 (en) 2002-09-24 2007-09-11 Sun Microsystems, Inc. Multi-data receive processing according to a data communication protocol
US6901496B1 (en) 2002-10-04 2005-05-31 Adaptec, Inc. Line rate buffer using single ported memories for variable length packets
US7587587B2 (en) * 2002-12-05 2009-09-08 Broadcom Corporation Data path security processing
US20050102497A1 (en) 2002-12-05 2005-05-12 Buer Mark L. Security processor mirroring
US7290134B2 (en) 2002-12-31 2007-10-30 Broadcom Corporation Encapsulation mechanism for packet processing
EP1665622A2 (en) * 2003-08-19 2006-06-07 General Dynamics-Advanced Information Systems, Inc. Trusted interface unit (tiu) and method of making and using the same
US8341237B2 (en) 2006-10-23 2012-12-25 International Business Machines Corporation Systems, methods and computer program products for automatically triggering operations on a queue pair
US7657659B1 (en) 2006-11-30 2010-02-02 Vmware, Inc. Partial copying of data to transmit buffer for virtual network device
JP2010512584A (ja) 2006-12-06 2010-04-22 フュージョン マルチシステムズ,インク.(ディービイエイ フュージョン−アイオー) 空データトークン指令を有する要求デバイスからのデータを管理する装置、システムおよび方法
US8006297B2 (en) * 2007-04-25 2011-08-23 Oracle America, Inc. Method and system for combined security protocol and packet filter offload and onload
US20090086736A1 (en) 2007-09-28 2009-04-02 Annie Foong Notification of out of order packets
US8244826B2 (en) 2007-10-23 2012-08-14 International Business Machines Corporation Providing a memory region or memory window access notification on a system area network
US8103785B2 (en) 2007-12-03 2012-01-24 Seafire Micros, Inc. Network acceleration techniques
US8689292B2 (en) * 2008-04-21 2014-04-01 Api Technologies Corp. Method and systems for dynamically providing communities of interest on an end user workstation
US8584250B2 (en) * 2008-09-23 2013-11-12 Rite-Solutions, Inc. Methods and apparatus for information assurance in a multiple level security (MLS) combat system
US8572251B2 (en) 2008-11-26 2013-10-29 Microsoft Corporation Hardware acceleration for remote desktop protocol
US20100228962A1 (en) 2009-03-09 2010-09-09 Microsoft Corporation Offloading cryptographic protection processing
US9038073B2 (en) 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
EP2306322A1 (en) 2009-09-30 2011-04-06 Alcatel Lucent Method for processing data packets in flow-aware network nodes
US9015268B2 (en) 2010-04-02 2015-04-21 Intel Corporation Remote direct storage access
US9755947B2 (en) 2010-05-18 2017-09-05 Intel Corporation Hierarchical self-organizing classification processing in a network switch
EP2577936A2 (en) 2010-05-28 2013-04-10 Lawrence A. Laurich Accelerator system for use with secure data storage
US9736116B2 (en) * 2014-07-28 2017-08-15 Intel Corporation Cooperated approach to network packet filtering
US9003053B2 (en) 2011-09-22 2015-04-07 Solarflare Communications, Inc. Message acceleration
US8996644B2 (en) 2010-12-09 2015-03-31 Solarflare Communications, Inc. Encapsulated accelerator
US8774213B2 (en) 2011-03-30 2014-07-08 Amazon Technologies, Inc. Frameworks and interfaces for offload device-based packet processing
US9397960B2 (en) 2011-11-08 2016-07-19 Mellanox Technologies Ltd. Packet steering
US20130318269A1 (en) 2012-05-22 2013-11-28 Xockets IP, LLC Processing structured and unstructured data using offload processors
US9258276B2 (en) 2012-05-22 2016-02-09 Xockets, Inc. Efficient packet handling, redirection, and inspection using offload processors
US8964554B2 (en) 2012-06-07 2015-02-24 Broadcom Corporation Tunnel acceleration for wireless access points
US9571507B2 (en) * 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
US20140129741A1 (en) 2012-11-07 2014-05-08 Mellanox Technologies Ltd. Pci-express device serving multiple hosts
US10341263B2 (en) 2012-12-10 2019-07-02 University Of Central Florida Research Foundation, Inc. System and method for routing network frames between virtual machines
US9008097B2 (en) 2012-12-31 2015-04-14 Mellanox Technologies Ltd. Network interface controller supporting network virtualization
US9094219B2 (en) 2013-03-08 2015-07-28 Intel Corporation Network processor having multicasting protocol
US9335886B2 (en) * 2013-03-13 2016-05-10 Assured Information Security, Inc. Facilitating user interaction with multiple domains while preventing cross-domain transfer of data
US9582320B2 (en) 2013-03-14 2017-02-28 Nxp Usa, Inc. Computer systems and methods with resource transfer hint instruction
JP2015076643A (ja) 2013-10-04 2015-04-20 富士通株式会社 制御プログラム、制御装置および制御方法
US9678818B2 (en) 2014-01-30 2017-06-13 Mellanox Technologies, Ltd. Direct IO access from a CPU's instruction stream
US10078613B1 (en) 2014-03-05 2018-09-18 Mellanox Technologies, Ltd. Computing in parallel processing environments
US10218645B2 (en) 2014-04-08 2019-02-26 Mellanox Technologies, Ltd. Low-latency processing in a network node
US10120832B2 (en) 2014-05-27 2018-11-06 Mellanox Technologies, Ltd. Direct access to local memory in a PCI-E device
US9207979B1 (en) 2014-05-28 2015-12-08 Freescale Semiconductor, Inc. Explicit barrier scheduling mechanism for pipelining of stream processing algorithms
US9733981B2 (en) 2014-06-10 2017-08-15 Nxp Usa, Inc. System and method for conditional task switching during ordering scope transitions
US10423414B2 (en) 2014-11-12 2019-09-24 Texas Instruments Incorporated Parallel processing in hardware accelerators communicably coupled with a processor
US10129180B2 (en) 2015-01-30 2018-11-13 Nicira, Inc. Transit logical switch within logical router
IL238690B (en) 2015-05-07 2019-07-31 Mellanox Technologies Ltd Network-based computational accelerator
US10152441B2 (en) 2015-05-18 2018-12-11 Mellanox Technologies, Ltd. Host bus access by add-on devices via a network interface controller
US10027601B2 (en) 2015-06-03 2018-07-17 Mellanox Technologies, Ltd. Flow-based packet modification
US20160378529A1 (en) 2015-06-29 2016-12-29 Fortinet, Inc. Utm integrated hypervisor for virtual machines
US10114792B2 (en) 2015-09-14 2018-10-30 Cisco Technology, Inc Low latency remote direct memory access for microservers
CN108141407B (zh) 2015-10-21 2021-03-19 英特尔公司 移动边缘计算动态加速分配
US9912774B2 (en) * 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
WO2017131187A1 (ja) 2016-01-29 2017-08-03 日本電気株式会社 アクセラレータ制御装置、アクセラレータ制御方法およびプログラム
US10552205B2 (en) 2016-04-02 2020-02-04 Intel Corporation Work conserving, load balancing, and scheduling
US10417174B2 (en) 2016-06-24 2019-09-17 Vmware, Inc. Remote direct memory access in a virtualized computing environment
US10318737B2 (en) 2016-06-30 2019-06-11 Amazon Technologies, Inc. Secure booting of virtualization managers
WO2018023499A1 (zh) 2016-08-03 2018-02-08 华为技术有限公司 网络接口卡、计算设备以及数据包处理方法
US10891253B2 (en) 2016-09-08 2021-01-12 Microsoft Technology Licensing, Llc Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks
US20180109471A1 (en) 2016-10-13 2018-04-19 Alcatel-Lucent Usa Inc. Generalized packet processing offload in a datacenter
DE102016124383B4 (de) * 2016-10-18 2018-05-09 Fujitsu Technology Solutions Intellectual Property Gmbh Computersystem-Architektur sowie Computernetz-Infrastruktur, umfassend eine Mehrzahl von solchen Computersystem-Architekturen
US10642972B2 (en) 2016-10-20 2020-05-05 Intel Corporation Extending packet processing to trusted programmable and fixed-function accelerators
EP4120070B1 (en) 2016-12-31 2024-05-01 INTEL Corporation Systems, methods, and apparatuses for heterogeneous computing
KR102545959B1 (ko) * 2017-01-26 2023-06-22 셈퍼 포티스 솔루션즈 엘엘씨 멀티 테넌트 클라우드에서의 다중 단일 레벨의 보안(msls)
US10250496B2 (en) 2017-01-30 2019-04-02 International Business Machines Corporation Router based maximum transmission unit and data frame optimization for virtualized environments
US11032248B2 (en) * 2017-03-07 2021-06-08 Nicira, Inc. Guest thin agent assisted host network encryption
US10210125B2 (en) 2017-03-16 2019-02-19 Mellanox Technologies, Ltd. Receive queue with stride-based data scattering
US11157422B2 (en) * 2017-03-31 2021-10-26 Intel Corporation Shared memory for intelligent network interface cards
US10402341B2 (en) 2017-05-10 2019-09-03 Red Hat Israel, Ltd. Kernel-assisted inter-process data transfer
CN117348976A (zh) 2017-07-10 2024-01-05 微软技术许可有限责任公司 用于流处理的数据处理单元
US10423774B1 (en) * 2017-08-22 2019-09-24 Parallels International Gmbh System and method for establishing secure communication channels between virtual machines
US10382350B2 (en) 2017-09-12 2019-08-13 Mellanox Technologies, Ltd. Maintaining packet order in offload of packet processing functions
US11005771B2 (en) 2017-10-16 2021-05-11 Mellanox Technologies, Ltd. Computational accelerator for packet payload operations
US20190163364A1 (en) 2017-11-30 2019-05-30 Eidetic Communications Inc. System and method for tcp offload for nvme over tcp-ip
US10938784B2 (en) * 2017-12-05 2021-03-02 Assured Information Security, Inc. Dedicating hardware devices to virtual machines in a computer system
US10708240B2 (en) * 2017-12-14 2020-07-07 Mellanox Technologies, Ltd. Offloading communication security operations to a network interface controller
US10956336B2 (en) 2018-07-20 2021-03-23 International Business Machines Corporation Efficient silent data transmission between computer servers
US11036650B2 (en) 2019-09-19 2021-06-15 Intel Corporation System, apparatus and method for processing remote direct memory access operations with a device-attached memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549345B1 (en) * 2003-10-31 2013-10-01 Oracle America, Inc. Methods and apparatus for recovering from a failed network interface card
EP1657878A1 (en) * 2004-11-12 2006-05-17 Microsoft Corporation Method and apparatus for secure internet protocol (IPSEC) offloading with integrated host protocol stack management
US7716730B1 (en) * 2005-06-24 2010-05-11 Oracle America, Inc. Cryptographic offload using TNICs
US20130125125A1 (en) * 2010-07-21 2013-05-16 Shuichi Karino Computer system and offloading method in computer system
CN103051510A (zh) * 2011-09-07 2013-04-17 微软公司 网络策略向网络接口卡的安全和高效卸载

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114691232A (zh) * 2020-12-14 2022-07-01 迈络思科技有限公司 将多任务参数相关操作的执行卸载到网络装置
CN112822164A (zh) * 2020-12-29 2021-05-18 北京八分量信息科技有限公司 大数据系统中安全访问数据的方法、系统及相关产品
CN112822164B (zh) * 2020-12-29 2023-11-03 北京八分量信息科技有限公司 大数据系统中安全访问数据的方法、系统及相关产品
CN115529180A (zh) * 2022-09-28 2022-12-27 芯启源(南京)半导体科技有限公司 IPSec加解密卸载方法
CN115529180B (zh) * 2022-09-28 2024-05-31 芯云晟(杭州)电子科技有限公司 IPSec加解密卸载方法

Also Published As

Publication number Publication date
CN111480328B (zh) 2022-08-02
US20200259803A1 (en) 2020-08-13
WO2019116195A1 (en) 2019-06-20
US10708240B2 (en) 2020-07-07
US10958627B2 (en) 2021-03-23
US20190190892A1 (en) 2019-06-20
EP3725056B1 (en) 2022-01-26
EP3725056A1 (en) 2020-10-21

Similar Documents

Publication Publication Date Title
CN111480328B (zh) 将通信安全操作卸载到网络接口控制器
US10757138B2 (en) Systems and methods for storing a security parameter index in an options field of an encapsulation header
US8055895B2 (en) Data path security processing
EP3605976B1 (en) Message sending method and network device
US10841243B2 (en) NIC with programmable pipeline
US9015467B2 (en) Tagging mechanism for data path security processing
US10250571B2 (en) Systems and methods for offloading IPSEC processing to an embedded networking device
CN109150688B (zh) IPSec VPN数据传输方法及装置
US10476850B2 (en) Supporting unknown unicast traffic using policy-based encryption virtualized networks
US20110182427A1 (en) Establishing, at least in part, secure communication channel between nodes so as to permit inspection, at least in part, of encrypted communication carried out, at least in part, between the nodes
WO2010104632A2 (en) Offloading cryptographic protection processing
US20110271096A1 (en) Loosely-Coupled Encryption Functionality for Operating Systems
US9467471B2 (en) Encrypted communication apparatus and control method therefor
CN117254976B (zh) 基于VPP的国标IPsec VPN实现方法、装置、系统及电子设备
US20230379390A1 (en) Session-based remote direct memory access
US20110271097A1 (en) Loosely-Coupled Encryption Functionality for Operating Systems
US20230403260A1 (en) Computer and Network Interface Controller Offloading Encryption Processing to the Network Interface Controller and Using Derived Encryption Keys
Pismenny et al. Securitization of cloud, edge and IoT communications through hardware accelerations/offloadings
WO2011139440A2 (en) Loosely-coupled encryption functionality for operating systems
Rosen et al. IPsec

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