CN110999248A - 使用片上系统(SoC)体系结构的安全通信加速 - Google Patents
使用片上系统(SoC)体系结构的安全通信加速 Download PDFInfo
- Publication number
- CN110999248A CN110999248A CN201880050502.1A CN201880050502A CN110999248A CN 110999248 A CN110999248 A CN 110999248A CN 201880050502 A CN201880050502 A CN 201880050502A CN 110999248 A CN110999248 A CN 110999248A
- Authority
- CN
- China
- Prior art keywords
- secure communication
- packet
- soc
- network
- chip
- 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
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
- H04L63/0485—Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/128—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- 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/16—Implementing security features at a particular protocol layer
- H04L63/164—Implementing security features at a particular protocol layer at the network layer
-
- 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/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- 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/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
片上系统(SoC)执行安全的通信操作。SoC可以包括外围接口,其被配置为与主机系统通信。SoC还可以包括网络接口,其被配置为在安全通信会话中接收网络分组。SoC还可以包括处理器,其被配置为执行操作系统(OS)软件和安全通信软件栈,以处理安全通信会话中的至少一个接收到的网络分组。另外,SoC可以包括安全通信引擎,其被配置为执行密码操作并在安全通信会话中生成至少一个解密的分组。可以经由外围接口将至少一个解密的分组提供给主机系统。
Description
技术领域
本申请涉及计算机体系结构,更具体地,涉及用于执行安全通信操作的片上系统(SoC)体系结构和用于使用SoC体系结构执行安全通信操作的方法。
背景技术
诸如传输层安全性(TLS)和安全套接字层(SSL)之类的安全通信机制为网络上两个端点之间的通信提供了机密性和真实性。互联网上的安全通信对于许多应用程序都很重要,并且已被网站广泛采用。
TLS/SSL依靠公共密钥密码以非对称方式建立两方之间达成共识的私有会话密钥。这也称为握手过程。然后,可以在对称加密会话中使用私有会话密钥在双方之间安全地传递信息。TLS/SSL中使用的对称和非对称密码都具有巨大的性能开销,这可能会使网络托管服务的速度降低800%以上。
发明内容
在一些方面,本公开针对一种用于执行安全通信操作的片上系统SoC。该SoC可以包括外围接口,其被配置为与主机系统通信。SoC还可以包括网络接口,其被配置为在安全通信会话中接收网络分组。SoC可以进一步包括处理器,其被配置为执行操作系统(OS)软件和安全通信软件栈,以处理安全通信会话中的至少一个接收到的网络分组。另外,SoC可以包括安全通信引擎,其被配置为执行密码操作并在安全通信会话中生成至少一个解密的分组。可以经由外围接口将至少一个解密的分组提供给主机系统。
在一些其他方面,本公开针对一种用于执行安全通信操作的硬件计算机外围卡。硬件计算机外围卡可以包括硬件连接器,其被配置为与主机系统耦合。硬件计算机外围设备卡还可以包括片上系统SoC。SoC可以包括外围接口,其被配置为通过硬件连接器与主机系统通信。SoC还可以包括网络接口,其被配置为在安全通信会话中接收网络分组。SoC可以进一步包括处理器,其被配置为执行操作系统(OS)软件和安全通信软件栈,以处理安全通信会话中的至少一个接收到的网络分组。另外,SoC可以包括安全通信引擎,其被配置为在安全通信会话中执行密码操作并生成至少一个解密的分组。可以经由外围接口将至少一个解密的分组提供给主机系统。
在一些方面,本公开针对一种由耦合至主机系统的SoC进行的用于执行安全通信操作的方法。该方法可以包括通过SoC的网络接口从客户端设备接收网络分组。该方法还可以包括确定所接收的网络分组是否是安全通信分组。该方法可以进一步包括:响应于确定网络分组是安全通信分组,将安全通信分组发送到在SoC上执行的安全通信软件栈。另外,该方法可以包括通过在握手过程中基于安全通信分组,在SoC上执行的安全通信软件栈建立客户端设备与主机系统之间的安全通信会话。
在其他方面,本公开针对一种由耦合至主机系统的SoC进行的用于执行安全通信操作的方法。该方法可以包括通过SoC的网络接口从客户端设备接收网络分组。该方法还可以包括确定所接收的网络分组是否是安全通信分组。该方法可以进一步包括:响应于确定接收到的网络分组是安全通信分组,将安全通信分组发送到在SoC上执行的安全通信软件栈。该方法还可以包括通过安全通信软件栈将与安全通信分组相关联的一个或多个参数转发到SoC的安全通信引擎。该方法还可以包括由安全通信引擎根据一种或多种密码算法对安全通信分组进行解密以生成解密的网络分组。另外,该方法可以包括经由外围接口将解密的网络分组发送到主机。
所公开的实施例的其他目的和优点将在下面的描述中部分地进行阐述,并且部分地将从描述中显而易见,或者可以通过实施例的实施而获知。所公开的实施例的目的和优点可以通过权利要求中阐述的要素和组合来实现和获得。
应当理解,如权利要求所述,前面的一般描述和下面的详细描述都只是示例性和说明性的,并不限制本发明。
附图说明
构成本说明书一部分的附图示出了几个实施例,并且与说明书一起用于解释所公开的原理。
图1是根据本申请中公开的一些实施例的包括用于执行安全通信操作的示例性SoC的客户端-服务器系统的示意图。
图2是根据本申请中公开的一些实施例的服务器的示例性实施方式的示意图。
图3示出了根据本申请的一些实施例的SoC的示例实现。
图4示出了根据本申请的一些实施例的安全通信握手过程的示例性序列。
图5是使用本申请的实施例执行图4所示的握手过程的示例性方法的流程图。
图6是根据一些公开的实施例的在建立的安全会话中执行安全通信操作的示例性方法的流程图。
具体实施方式
现在将详细参考本发明的示例性实施例,其示例在附图中示出。在适当的情况下,在所有附图中使用相同的附图标记指代相同或相似的部件。
诸如传输层安全性(TLS)和安全套接字层(SSL)之类的安全通信机制是密码协议,可为网络上两个端点之间的通信提供机密性和真实性。如本文所使用的,TLS指的是向两个通信计算机系统提供数据完整性和真实性的密码协议。相对于本文描述的实施例,TLS及其前身SSL在很大程度上可以互换。在以下描述中,TLS和SSL被视为彼此可互换,并且应当理解,实施例也可以适用于后续的密码协议。TLS操作通常构成对网络托管服务的HTTPS支持的基础。TLS在应用程序层(例如,网络服务器通常在应用程序层中运行)和传统网络栈的传输控制协议/互联网协议(TCP/IP)层之间创建一个新层。TLS可以为通过TCP/IP层传输的网络分组(通常为纯文本格式)提供加密和解密,以防止对网络分组进行窃听和/或篡改。
HTTPS之类的应用层服务通常建立在TLS之上,以建立其可信任的基础。到今天为止,HTTPS可以保护互联网上超过43%的整个网站。开放安全套接字层(OpenSSL)可能是TLS使用最广泛的软件实现,并且已被许多互联网实体采用。
TLS利用诸如RSA(指Rivest,Shamir和Adleman开发的加密算法)和/或椭圆曲线(EC)之类的公钥密码技术,通过不对称的握手过程来建立两方之间达成的私密会话密钥。然后,可以使用诸如高级加密标准(AES)之类的密码算法在后续的对称加密会话中使用私有会话密钥。如后台会话中所述,TLS中使用的对称密码和非对称密码都具有巨大的性能开销,这可能会大大降低网络托管服务的速度。
本申请公开了用于全面减轻诸如TLS的安全通信机制的性能开销的系统,装置和方法。本申请的实施例包括被配置为与主机系统耦合的硬件计算机外围卡,该主机系统可以托管网络服务器。硬件计算机外围卡可以包括具有能够处理几乎所有安全通信操作的体系结构的SoC。因此,不是主机系统处理这些安全操作,而是将这些操作转移到SoC,从而通过提高安全通信的速度和效率来改善总体系统性能。
图1是根据本申请中公开的一些实施例的包括用于执行安全通信操作的示例性SoC的客户端-服务器系统的示意图。参照图1,客户端设备110可以通过通信信道130连接到服务器120。可以使用诸如TLS的安全通信机制来保护通信信道130。服务器120可以包括主机系统126和片上系统SoC 122。主机系统126可以包括网络服务器,云计算服务器等。片上系统SoC 122可以通过连接接口124耦合到主机系统126。连接接口124可以基于并行接口(例如,外围组件互连(PCI)接口),串行接口(例如,外围组件互连快速(PCle))。TLS相关的安全通信操作通常需要大量计算,才能由片上系统SoC 122执行。结果,可以通过将安全通信操作转移到片上系统SoC 122来减轻通常施加在主机系统126上的性能开销。SoC 122和主机系统126可以基于纯文本,而服务器120和客户端设备110之间的通信可以通过片上系统SoC 122的操作进行加密和保护。
图2是根据本申请中公开的一些实施例的服务器120的示例性实施方式的示意图。参照图2,片上系统SoC 122可以被提供在硬件计算机外围卡230(为简单起见也被称为“外围卡230”)上。例如,片上系统SoC 122可以被焊接或插入到外围卡230的插座上。外围卡230可以包括被配置为与主机系统126耦合的硬件连接器254。例如,外设卡230可以是PCI卡、PCle卡等形式,插到主机系统126的电路板上。
外围卡230可以包括板载存储系统,例如存储器单元250。存储器单元250可以由片上系统SoC 122访问以促进安全的通信操作。外围卡230还可包括诸如光学模块252之类的外部通信接口(例如,在外围卡230的输入处使用光/光纤信号),以与诸如客户端设备110之类的外部设备通信。非光学通信方法,如基于金属的通信接口也可以用于与外部设备进行通信。
片上系统SoC 122可以包括处理器232,存储器控制器236,片上网络(NoC)238,网络接口240,网络操作转移引擎242,安全通信引擎246和外围接口248。这些硬件组件可以作为单个芯片集成到片上系统SoC 122中,或者这些硬件组件中的一个或多个以独立硬件设备的形式存在。
处理器232可以被实现为中央处理单元(CPU)。处理器232可以执行成熟的操作系统(OS)软件234,例如基于Linux的OS软件。OS软件234的内核可以包括网络软件栈,例如TCP/IP栈。OS软件234的内核还可包括与主机系统126通信的消息层(Msg Layer)软件栈。在用户空间中,OS软件234可包括诸如OpenSSL的安全通信软件栈。
存储器控制器236可以控制诸如存储器单元250之类的本地存储器以促进处理器232的功能。例如,存储器控制器236可以控制处理器232对存储在存储器单元250上的数据的访问。
网络接口240可以提供实现层1(L1)和层2(L2)网络栈的通信数据路径。例如,网络接口240可以被配置为通过通信信道130从客户端设备110接收网络分组。当通信信道130由TLS保护时,可以对网络分组进行加密。
NoC 238可提供将SoC 122上的各种硬件组件连接在一起的高速片上互连。
网络操作转移引擎242可以促进内核TCP/IP或其他L3/L4网络软件栈的操作速度。例如,网络操作转移引擎242可以在客户端设备110和服务器120之间建立TCP会话以从客户端设备110接收网络分组。然后,网络操作转移引擎242可以检查每个接收到的网络分组的目的地端口以识别一个或多个安全的通信分组。例如,如果端口号与任何预编程的安全通信协议端口都不匹配(例如,用于TLS的587,用于SSL的443等),则网络操作转移引擎242可以将网络分组转发到主机系统126。另一方面,如果端口号与预编程的安全通信协议端口匹配,指示该网络分组可以是安全通信分组,则网络操作转移引擎242可以将该网络分组转发到处理器232以通过NoC 238进行处理。在实施例中,网络操作转移引擎242可以在将网络分组转发到处理器232之前进一步检查与网络分组相关联的应用层有效载荷。例如,网络操作转移引擎242可以对与应用层有效载荷相关联的记录报头解封装以确定是否与应用层有效载荷相关联。网络分组具有合法的安全通信协议记录头,例如SSL记录头。以此方式,网络操作转移引擎242可以过滤接收到的网络分组,并且仅将具有有效目的地端口和/或合法安全通信协议记录头的网络分组转发给处理器232以进行处理,同时转发可能没有加密的其他网络分组到主机系统126。
安全通信引擎246可以包括诸如RSA,EC和AES之类的一个或多个密码的硬件实现,以执行高速密码操作。加密和解密操作通常需要大量的计算,可以由安全通信引擎246执行。例如,在将网络分组转发到处理器232进行处理之后,处理器232可以确定是否需要执行加密,解密或数字签名算法。如果是这样,则处理器232可以将计算转移给安全通信引擎246的一个或多个密码。将参考图3更详细地描述安全通信引擎246。
外围接口248可以包括诸如PCIe协议的外围通信协议的实现。例如,外围接口248可以包括PCle核心,以促进根据PCle协议在SoC 122和主机系统126之间的通信。
主机系统126可以运行具有内核220的OS(未示出)。内核220可以包括TCP/IP栈222。与运行在处理器232上的OS 234中包括的网络软件栈相比,TCP/IP栈222可以是一个简化版本,不包括用于在安全通信会话的握手阶段处理握手网络分组的额外软件。因此,可以通过将握手任务转移到SoC 122来减轻与用于处理握手网络分组的TCP/IP栈相关的开销。
内核220还可以包括用于与外围卡230接口的驱动器226,例如PCle驱动器。内核220还可以包括消息层软件栈224,以促进与在处理器232上运行的OS 234的软件栈的通信。在用户空间中,主机系统126可以托管网络服务器210,例如Nginx或Apache Web服务器。网络服务器210可以包括应用程序编程接口(API),该API被配置为与消息层软件栈224交互并通过消息层软件栈224与运行在处理器232上的OS 234的安全通信软件栈(例如OpenSSL)进行通信。网络服务器210还可以使用API来初始化和配置在处理器232上运行的安全通信软件栈。
图3示出了根据本申请的一些实施例的SoC 122的示例实现。与图2相比,图3示出了处理器232的示例性硬件实现以及安全通信引擎246的示例性实现。参照图3,处理器232可以包括多个核心,以促进安全通信操作的多线程并行处理。多个内核可以通过可以包括多层高速缓存的高速缓存系统310与NoC 238接口。
安全通信引擎246可以包括一个或多个公共密钥和私有密钥密码。例如,安全通信引擎246可以包括RSA流水线322和椭圆曲线流水线324,以分别根据RSA和EC算法来执行加密操作。由于RSA和EC都严重依赖于指数模运算,因此RSA流水线322和EC流水线324可以共享高速,高基数指数模块化(mod_exp)单元326的阵列。安全通信引擎246也可以包括AES引擎328,以根据AES算法执行加密操作。为了支持可能具有大量连接的高并发性网络服务器,RSA,EC和AES引擎可能在硬件中具有许多副本。
图4示出了安全通信握手处理的示例性序列,并且图5是使用本申请的实施例执行握手处理的示例性方法500的流程图。如本文中所使用的,安全通信握手是指服务器120和客户端设备110彼此认证并在私密会话密钥上达成协议的过程。换句话说,握手是在服务器120与客户端设备110之间建立安全通信会话的过程。一旦握手过程完成,则可以使用该私有会话密钥对服务器120与客户端设备110之间的通信会话进行加密。
参照图4,在阶段1,客户端设备110向服务器120发送了一条Client_Hello消息。Client_Hello消息可以包括客户端设备110支持的SSL版本号、客户端随机数Rc、客户端设备110支持的密码套件和压缩方法。
在阶段2中,服务器120接收从客户端设备110发送的消息的一个或多个网络分组(对应于图5所示的步骤510)。例如,网络分组可由SoC 122的网络接口240接收。SoC 122然后可以在图5所示的步骤520中,例如使用网络操作转移引擎242来确定所接收的网络分组是否是安全通信分组。如上所述,网络操作转移引擎242可以基于网络分组的目的端口和/或与和网络分组相关联的应用层有效载荷相关联的记录报头来确定网络分组是否是安全通信分组。如果确定接收到的网络分组不是安全通信分组(步骤520的NO分支),则在步骤530中,网络操作转移引擎242可以将网络分组转发到主机系统126。否则(步骤520的是分支),网络操作转移引擎242可以将网络分组转发到在SoC 122的处理器232上运行的安全通信软件栈(例如OpenSSL)(步骤540)。
服务器120然后可以用服务器问候消息来响应。Server_Hello消息可以包括SSL版本号,服务器端随机数Rs,服务器120支持的密码套件和压缩方法。服务器响应还可以包括包含公钥(e,n)的服务器证书(证书),以及用于密钥交换的消息(Server_key_exchange)。最终,服务器120可以响应指示“Server_Hello”及其相关消息的结尾的服务器完成消息。
在阶段3中,客户端设备110可以认证服务器的证书,然后向服务器120发送pre_master_secret以及用于密钥交换(Client_key_exchange)和密码规范(Change_cipher_spec)的消息。完成消息表示客户端协商结束。通过计算msg^e modn,使用服务器的公钥对这一系列消息进行加密。
在阶段4中,服务器120可通过使用其私钥(d,n)计算msg^d mod n解密客户端的消息。密码计算可以由安全通信引擎246执行。然后,服务器120可以用针对密码规范的消息(Change_cipher_spec)和完成消息进行响应。此时,服务器120和客户端设备110在pre_master_secret上已达成协议,并且都可以使用伪随机函数(PRF)导出相同的会话密钥master_secret,从而在客户端110和服务器120之间建立安全的通信会话(图5中所示的步骤550)。以后,将使用达成共识的会话密钥master_secret和私钥密码(例如AES)对客户端设备110和服务器120之间的安全会话进行加密。
图6是根据一些公开的实施例的在建立的安全会话中执行安全通信操作的示例性方法600的流程图。可以在步骤550之后执行方法600。在步骤610,网络接口240可以从客户端设备110接收网络分组。该分组可以经过网络接口240的MAC层,然后被转发到网络操作转移引擎242。在步骤620,网络操作转移引擎242可以基于其目的端口和/或其与其应用层有效载荷相关联的记录头,确定网络分组是否为安全通信分组,并将网络分组转发至主机系统126(步骤630),或者在处理器232上运行的安全通信软件栈(例如,OpenSSL)(步骤640),类似于上面描述的步骤520、530和540。在将安全通信分组发送到安全通信软件栈之后,处理器232可以将解密的计算转移到安全通信引擎246以解密安全通信分组并生成解密的网络分组。例如,可以由安全通信引擎246中的可用密码之一来执行该计算。安全通信引擎246可以在NoC 238上发送中断以将计算的完成通知处理器232。在步骤660中,处理器232可以经由外围接口248将解密的网络分组发送到主机系统126。例如,处理器232可以执行OpenSSL软件栈,以通过消息层224将解密的网络分组发送到网络服务器210。
本申请的实施例可以改善云计算或网络托管环境中的服务器性能,以及降低总拥有成本。
该规范描述了一种SoC体系结构,用于加速客户端设备和服务器之间的安全通信速度。阐述了所示出的步骤以解释所示出的示例性实施例,并且可以预期,正在进行的技术发展将改变执行特定功能的方式。因此,在此呈现这些示例是出于说明而非限制的目的。例如,与公开的实施例一致,本文公开的步骤或过程不限于以所描述的顺序执行,而是可以以任何顺序执行,并且可以省略一些步骤。此外,为了便于描述,在此已经任意定义了功能构件的边界。只要适当执行指定的功能及其关系,就可以定义其他边界。基于本文所包含的教导,替代方案(包括本文描述的等同物,扩展,变体,偏差等)对于相关领域的技术人员将是显而易见的。这样的替代方案落入所公开的实施例的范围和精神内。
尽管本文描述了所公开原理的示例和特征,但是在不脱离所公开实施例的精神和范围的情况下,可以进行修改,改编和其他实现。同样,词语“包括”,“具有”,“含有”和“包含”以及其他类似形式在含义上是等同的并且是开放式的,因为这些词语中的任何一个之后的一个或多个项目均不意味着是此类项目的详尽清单,或者仅限于所列项目。还必须注意,如本文和所附权利要求书中所使用的,单数形式“一个”,“一种”和“该”包括复数引用,除非上下文另外明确指出。
可以使用硬件,软件,固件或其任意组合来实现本申请的实施例,以允许专用设备执行上述功能。本文所述的一个或多个步骤,操作,功能和模块可以由存储在一个或多个存储器设备中并由一个或多个硬件处理器设备执行的固件指令或代码来实现。示例性硬件处理器设备包括配置或制造为执行数据处理和/或逻辑操作的逻辑门电路,设计和制造为执行特定功能的集成电路(IC),可编程门阵列(PGA),现场可编程门阵列(FPGA),等等
多个功能模块可以集成到单个物理设备中,或者可以设置在单独的物理设备中。
意图将本公开和示例仅视为示例性的,所公开的实施例的真实范围和精神由所附权利要求指示。
Claims (20)
1.一种用于执行安全通信操作的片上系统(SoC),所述片上系统(SoC)包括:
外围接口,其被配置为与主机系统进行通信;
网络接口,其被配置为在安全通信会话中接收网络分组;
处理器,其被配置为执行操作系统(OS)软件和安全通信软件栈,以在安全通信会话中处理至少一个接收到的网络分组;以及
安全通信引擎,其被配置为在安全通信会话中执行密码操作并生成至少一个解密分组,其中,所述至少一个解密分组经由外围接口被提供给主机系统。
2.根据权利要求1所述的片上系统(SoC),其中,所述操作系统(OS)软件包括网络软件栈,并且所述处理器被配置为执行网络软件栈以在安全通信会话中处理至少一个接收到的网络分组。
3.根据权利要求2所述的片上系统(SoC),其中,所述网络软件栈包括传输控制协议/互联网协议(TCP/IP)软件栈,并且所述处理器被配置为执行所述传输控制协议/互联网协议(TCP/IP)软件栈以处理至少一个接收到的网络分组,并且将已处理的至少一个网络分组传递到安全通信软件栈。
4.根据权利要求1至3中任一项所述的片上系统(SoC),还包括:网络操作转移引擎,其被配置为:
从网络接口接收的网络分组中识别出至少一个安全通信分组;并且
将所识别的至少一个安全通信分组转发给处理器以进行处理。
5.根据权利要求4所述的片上系统(SoC),其中,所述网络操作转移引擎被配置为通过检查由所述网络接口接收的每个网络分组的目的地端口来识别所述至少一个安全通信分组。
6.根据权利要求4或5所述的片上系统(SoC),其中,所述网络操作转移引擎被配置为通过检查与由所述网络接口接收到的每个网络分组相关联的应用层有效载荷来识别所述至少一个安全通信分组。
7.根据权利要求6所述的片上系统(SoC),其中,所述网络操作转移引擎被配置为通过解封装与所述应用层有效载荷相关联的记录报头来检查所述应用层有效载荷。
8.根据权利要求2至7中的任一项所述的片上系统(SoC),其中,所述处理器被配置为在所述安全通信会话中的握手过程期间执行所述网络软件栈以处理握手分组。
9.根据权利要求1至8中的任一项所述的片上系统(SoC),其中,所述安全通信软件栈包括开放安全套接字层(OpenSSL)软件栈。
10.根据权利要求1至9中任一项所述的片上系统(SoC),其中,所述外围接口包括外围组件互连快速(PCIe)接口。
11.根据权利要求1至10中的任一项所述的片上系统(SoC),其中,所述安全通信引擎包括RSA密码,椭圆曲线(EC)密码或高级加密标准(AES)密码中的至少一项。
12.一种用于执行安全通信操作的硬件计算机外围卡,该硬件计算机外围卡包括:
硬件连接器,其被配置为与主机系统耦合;以及
片上系统(SoC),其包括:
外围接口,其被配置为通过所述硬件连接器与所述主机系统通信;
网络接口,其被配置为在安全通信会话中接收网络分组;
处理器,其被配置为执行操作系统(OS)软件和安全通信软件栈,以在所述安全通信会话中处理至少一个接收到的网络分组;
安全通信引擎,其被配置为在安全通信会话中执行密码操作并生成至少一个解密分组,其中,所述至少一个解密分组通过外围接口提供给主机系统。
13.根据权利要求12所述的硬件计算机外围卡,其中,所述外围接口包括外围组件互连快速(PCIe)接口,并且所述硬件连接器包括PCIe连接器。
14.一种由耦合至主机系统的片上系统(SoC)进行的执行安全通信操作的方法,该方法包括:
通过片上系统(SoC)的网络接口从客户端设备接收网络分组;
确定接收到的网络分组是否为安全通信分组;
响应于确定所述网络分组为安全通信分组,将所述安全通信分组发送至在所述片上系统(SoC)上执行的安全通信软件栈;并且
通过在握手过程中基于安全通信分组,在SoC上执行的安全通信软件栈建立客户端设备与主机系统之间的安全通信会话。
15.根据权利要求14所述的方法,包括:
基于所接收的网络分组的目的地端口,确定所述网络分组是否是安全通信分组。
16.根据权利要求14或15所述的方法,包括:
基于与和所接收的网络分组相关联的应用层有效载荷相关联的记录报头,来确定所接收的网络分组是否是安全通信分组。
17.根据权利要求14至16中的任一项所述的方法,包括:
由安全通信引擎解密在所建立的安全通信会话中从所述客户端设备接收到的加密网络分组;并且
将解密的网络分组发送到主机系统。
18.根据权利要求17所述的方法,包括:
通过外围组件互连快速(PCle)接口将解密的网络分组发送到所述主机系统。
19.根据权利要求14至18中任一项所述的方法,其中,使用所述安全通信引擎来执行密码操作包括:
根据RSA算法,椭圆曲线(EC)算法或高级加密标准(AES)算法中的至少一项来执行所述密码操作。
20.一种由耦合至主机系统的片上系统(SoC)进行的执行安全通信操作的方法,该方法包括:
通过片上系统(SoC)的网络接口从客户端设备接收网络分组;
确定接收到的网络分组是否为安全通信分组;
响应于确定接收到的网络分组为安全通信分组,将该安全通信分组发送至在片上系统(SoC)上执行的安全通信软件栈;
所述安全通信软件栈将与所述安全通信分组关联的一个或多个参数转发给所述片上系统(SoC)的安全通信引擎;
所述安全通信引擎根据一种或多种密码算法对所述安全通信分组进行解密,以生成解密后的网络分组;并且
经由外围接口将解密的网络分组发送给主机。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/663,616 US11153289B2 (en) | 2017-07-28 | 2017-07-28 | Secure communication acceleration using a System-on-Chip (SoC) architecture |
US15/663,616 | 2017-07-28 | ||
PCT/US2018/043970 WO2019023505A1 (en) | 2017-07-28 | 2018-07-26 | ACCELERATION OF SECURE COMMUNICATION USING A SYSTEM ARCHITECTURE ON CHIP (SOC) |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110999248A true CN110999248A (zh) | 2020-04-10 |
CN110999248B CN110999248B (zh) | 2022-07-08 |
Family
ID=65038334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880050502.1A Active CN110999248B (zh) | 2017-07-28 | 2018-07-26 | 使用片上系统(SoC)体系结构的安全通信加速 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11153289B2 (zh) |
CN (1) | CN110999248B (zh) |
WO (1) | WO2019023505A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798377B2 (en) | 2014-10-08 | 2017-10-24 | Apple Inc. | Methods and apparatus for recovering errors with an inter-processor communication link between independently operable processors |
US10671134B2 (en) * | 2018-01-10 | 2020-06-02 | International Business Machines Corporation | Memory modules with secondary, independently powered network access path |
US11792307B2 (en) | 2018-03-28 | 2023-10-17 | Apple Inc. | Methods and apparatus for single entity buffer pool management |
CN110677250B (zh) | 2018-07-02 | 2022-09-02 | 阿里巴巴集团控股有限公司 | 密钥和证书分发方法、身份信息处理方法、设备、介质 |
CN110795774B (zh) | 2018-08-02 | 2023-04-11 | 阿里巴巴集团控股有限公司 | 基于可信高速加密卡的度量方法、设备和系统 |
CN110795742B (zh) | 2018-08-02 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 高速密码运算的度量处理方法、装置、存储介质及处理器 |
US10846224B2 (en) | 2018-08-24 | 2020-11-24 | Apple Inc. | Methods and apparatus for control of a jointly shared memory-mapped region |
CN110874478B (zh) | 2018-08-29 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 密钥处理方法及装置、存储介质和处理器 |
US11533170B2 (en) * | 2018-12-17 | 2022-12-20 | Intel Corporation | Hardware mechanisms for link encryption |
US11829303B2 (en) | 2019-09-26 | 2023-11-28 | Apple Inc. | Methods and apparatus for device driver operation in non-kernel space |
US11477123B2 (en) | 2019-09-26 | 2022-10-18 | Apple Inc. | Methods and apparatus for low latency operation in user space networking |
US11558348B2 (en) | 2019-09-26 | 2023-01-17 | Apple Inc. | Methods and apparatus for emerging use case support in user space networking |
US11606302B2 (en) | 2020-06-12 | 2023-03-14 | Apple Inc. | Methods and apparatus for flow-based batching and processing |
US11704271B2 (en) * | 2020-08-20 | 2023-07-18 | Alibaba Group Holding Limited | Scalable system-in-package architectures |
US11775359B2 (en) | 2020-09-11 | 2023-10-03 | Apple Inc. | Methods and apparatuses for cross-layer processing |
US11954540B2 (en) | 2020-09-14 | 2024-04-09 | Apple Inc. | Methods and apparatus for thread-level execution in non-kernel space |
US11799986B2 (en) | 2020-09-22 | 2023-10-24 | Apple Inc. | Methods and apparatus for thread level execution in non-kernel space |
US12047502B2 (en) * | 2021-05-05 | 2024-07-23 | Verizon Patent And Licensing Inc. | Systems and methods for backing up a hardware key |
US11882051B2 (en) | 2021-07-26 | 2024-01-23 | Apple Inc. | Systems and methods for managing transmission control protocol (TCP) acknowledgements |
US11876719B2 (en) | 2021-07-26 | 2024-01-16 | Apple Inc. | Systems and methods for managing transmission control protocol (TCP) acknowledgements |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060123479A1 (en) * | 2004-12-07 | 2006-06-08 | Sandeep Kumar | Network and application attack protection based on application layer message inspection |
CN1809057A (zh) * | 2005-01-18 | 2006-07-26 | 英业达股份有限公司 | 通过装置卸载减轻主机负载的系统及其方法 |
CN104170312A (zh) * | 2011-12-15 | 2014-11-26 | 英特尔公司 | 用于使用硬件安全引擎通过网络进行安全通信的方法和设备 |
US20150222627A1 (en) * | 2012-09-18 | 2015-08-06 | Thomson Licensing | Method and device for securely accessing a web service |
US20160352870A1 (en) * | 2015-05-26 | 2016-12-01 | Cavium, Inc. | Systems and methods for offloading inline ssl processing to an embedded networking device |
CN106341417A (zh) * | 2016-09-30 | 2017-01-18 | 贵州白山云科技有限公司 | 一种基于内容分发网络的https加速方法和系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6725371B1 (en) * | 1999-06-30 | 2004-04-20 | Intel Corporation | Secure packet processor |
US7685436B2 (en) * | 2003-10-02 | 2010-03-23 | Itt Manufacturing Enterprises, Inc. | System and method for a secure I/O interface |
US20050251856A1 (en) * | 2004-03-11 | 2005-11-10 | Aep Networks | Network access using multiple authentication realms |
US7987272B2 (en) * | 2004-12-06 | 2011-07-26 | Cisco Technology, Inc. | Performing message payload processing functions in a network element on behalf of an application |
US8417868B2 (en) * | 2006-06-30 | 2013-04-09 | Intel Corporation | Method, apparatus and system for offloading encryption on partitioned platforms |
US8006297B2 (en) * | 2007-04-25 | 2011-08-23 | Oracle America, Inc. | Method and system for combined security protocol and packet filter offload and onload |
US8295306B2 (en) * | 2007-08-28 | 2012-10-23 | Cisco Technologies, Inc. | Layer-4 transparent secure transport protocol for end-to-end application protection |
US8250356B2 (en) * | 2008-11-21 | 2012-08-21 | Motorola Solutions, Inc. | Method to construct a high-assurance IPSec gateway using an unmodified commercial implementation |
US8739272B1 (en) * | 2012-04-02 | 2014-05-27 | Mcafee, Inc. | System and method for interlocking a host and a gateway |
US20130318268A1 (en) * | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Offloading of computation for rack level servers and corresponding methods and systems |
US9602498B2 (en) * | 2013-10-17 | 2017-03-21 | Fortinet, Inc. | Inline inspection of security protocols |
US9419954B1 (en) * | 2014-06-10 | 2016-08-16 | Lockheed Martin Corporation | Storing and transmitting sensitive data |
US10250571B2 (en) * | 2015-08-24 | 2019-04-02 | Cavium, Llc | Systems and methods for offloading IPSEC processing to an embedded networking device |
US9838321B2 (en) * | 2016-03-10 | 2017-12-05 | Google Llc | Systems and method for single queue multi-stream traffic shaping with delayed completions to avoid head of line blocking |
-
2017
- 2017-07-28 US US15/663,616 patent/US11153289B2/en active Active
-
2018
- 2018-07-26 WO PCT/US2018/043970 patent/WO2019023505A1/en active Application Filing
- 2018-07-26 CN CN201880050502.1A patent/CN110999248B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060123479A1 (en) * | 2004-12-07 | 2006-06-08 | Sandeep Kumar | Network and application attack protection based on application layer message inspection |
CN1809057A (zh) * | 2005-01-18 | 2006-07-26 | 英业达股份有限公司 | 通过装置卸载减轻主机负载的系统及其方法 |
CN104170312A (zh) * | 2011-12-15 | 2014-11-26 | 英特尔公司 | 用于使用硬件安全引擎通过网络进行安全通信的方法和设备 |
US20150222627A1 (en) * | 2012-09-18 | 2015-08-06 | Thomson Licensing | Method and device for securely accessing a web service |
US20160352870A1 (en) * | 2015-05-26 | 2016-12-01 | Cavium, Inc. | Systems and methods for offloading inline ssl processing to an embedded networking device |
CN106341417A (zh) * | 2016-09-30 | 2017-01-18 | 贵州白山云科技有限公司 | 一种基于内容分发网络的https加速方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110999248B (zh) | 2022-07-08 |
WO2019023505A1 (en) | 2019-01-31 |
US11153289B2 (en) | 2021-10-19 |
US20190036893A1 (en) | 2019-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110999248B (zh) | 使用片上系统(SoC)体系结构的安全通信加速 | |
US20220174050A1 (en) | Cloud storage using encryption gateway with certificate authority identification | |
EP3603001B1 (en) | Hardware-accelerated payload filtering in secure communication | |
EP3391620B1 (en) | Systems and methods for secure multi-party communications using a proxy | |
US8873746B2 (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 | |
US7913261B2 (en) | Application-specific information-processing method, system, and apparatus | |
US20150358313A1 (en) | Systems and methods for secured communication hardware security module and network-enabled devices | |
US7716730B1 (en) | Cryptographic offload using TNICs | |
CN111819824A (zh) | 在无中间人代理的情况下解密传输层安全流量 | |
US10691619B1 (en) | Combined integrity protection, encryption and authentication | |
US20160277372A1 (en) | Optimization of a secure connection with enhanced security for private cryptographic keys | |
US10291600B2 (en) | Synchronizing secure session keys | |
US11824999B2 (en) | Chosen-plaintext secure cryptosystem and authentication | |
WO2018231519A1 (en) | Cloud storage using encryption gateway with certificate authority identification | |
US20100223457A1 (en) | Generation and/or reception, at least in part, of packet including encrypted payload | |
US11126567B1 (en) | Combined integrity protection, encryption and authentication | |
CN115622772A (zh) | 一种金融业务服务的金融数据传输方法及应用网关 | |
CN107276996A (zh) | 一种日志文件的传输方法及系统 | |
CN113206815A (zh) | 用于加解密的方法、可编程交换机和计算机程序产品 | |
US11677727B2 (en) | Low-latency MACsec authentication | |
CN110995730B (zh) | 数据传输方法、装置、代理服务器和代理服务器集群 | |
KR101653956B1 (ko) | 암호화된 트래픽을 모니터링하는 방법 및 장치 | |
CN118138275A (zh) | 远程直接内存访问方法、装置、设备及存储介质 | |
US20230403136A1 (en) | Computer and Network Interface Controller Securely Offloading Encryption Keys and Encryption Processing to the Network Interface Controller | |
WO2024137108A1 (en) | Methods for migrating private hardware security keys and devices thereof |
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 |