掌桥专利:专业的专利平台
掌桥专利
首页

安全加密的通信机制

文献发布时间:2024-04-18 20:01:23


安全加密的通信机制

相关申请

本申请要求于2021年12月10日提交的美国申请第17/547,655号的权益,该美国申请的完整内容由此通过引用结合在本文中。

背景技术

在云数据中心中,云服务提供商(Cloud service provider;CSP)使得用户能够在使用共享物理基础设施的同时设置可控制的虚拟云网络(Virtual Cloud Network;VCN)。VCN允许用户分配私有IP地址空间、创建他们自己的子网、定义路由表、以及配置防火墙。这通过使用隧穿协议创建覆盖网络(诸如虚拟可扩展局域网(Virtual Extensible localarea network;VXLAN))来完成,该协议将层2帧封装在通过物理底层网络路由的层3UDP分组中。虽然覆盖虚拟网络隔离来自不同用户的网络流量,但它无法在数据在不受信任的物理网络上行进时保护数据的机密性和完整性。

附图说明

在所附附图中,以示例方式而不是以限制方式图示出本文中所描述的概念。出于说明简单和清楚起见,附图中所图示出的要素不一定是按比例绘制的。在认为适当的情况下,已在附图之间重复了附图标记以指示对应的或类似的要素。

图1是具有加速器设备的用于安全I/O的计算设备的至少一个实施例的简化框图;

图2是图1的计算设备的加速器设备的至少一个实施例的简化框图;

图3是图1和图2的计算设备的环境的至少一个实施例的简化框图;

图4示出了根据本公开的实现方式的计算设备;

图5示出了常规覆盖网络;

图6示出了平台的一个实施例;

图7A和图7B示出了网络中的平台的实施例;

图8是示出在平台之间建立安全加密通信信道的一个实施例的流程图;

图9是示出在机器之间建立密钥交换的过程的一个实施例的序列图;以及

图10示出了说明性电子计算设备的示意图的一个实施例。

具体实施方式

尽管本公开的概念易于具有各种修改和替代形式,但是,本公开的特定实施例已作为示例在附图中示出并将在本文中详细描述。然而,应当理解,没有将本公开的概念限制于所公开的特定形式的意图,而相反,意图旨在涵盖符合本公开和所附权利要求书的所有修改、等效方案和替代方案。

说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可包括或可以不一定包括该特定特征、结构或特性。而且,此类短语不一定是指同一实施例。进一步地,当结合实施例来描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例来实施此类特征、结构或特性均落在本领域技术人员的知识范围之内。附加地,应当领会,以“A、B和C中的至少一者”的形式包括在列表中的项可意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。类似地,以“A、B或C中的至少一者”的形式列出的项可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。

在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的多个实施例也可被实现为由暂态或非暂态机器可读(例如,计算机可读)存储介质承载或存储于其上的、可由一个或多个处理器读取并执行的指令。机器可读存储介质可被具体化为用于以可由机器读取的形式存储或传送信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘、或其他介质设备)。

在附图中,一些结构或方法特征可按特定布置和/或排序示出。然而,应当领会,此类特定布置和/或排序可以不是必需的。相反,在一些实施例中,可以以与在说明性附图中示出的不同的方式和/或次序来布置此类特征。附加地,在特定附图中包括结构或方法特征不意味着暗示在所有实施例中都需要此类特征,并且在一些实施例中,可以不包括此类特征,或此类特征可以与其他特征组合。

现在参考图1,具有加速器设备的用于安全I/O的计算设备100包括处理器120和加速器设备136,诸如现场可编程门阵列(field-programmable gate array;FPGA)。在使用中,如下文进一步描述的,由处理器120建立的受信任执行环境(trusted executionenvironment;TEE)与加速器136安全地通信数据。数据可以使用存储器映射的I/O(memory-mapped I/O;MMIO)事务或直接存储器访问(direct memory access;DMA)事务来传输。例如,TEE可以执行包括经加密的数据的MMIO写入事务,并且加速器136对数据进行解密并且执行写入。作为另一示例,TEE可以执行MMIO读取请求事务,并且加速器136可以读取所请求的数据、对该数据进行加密并且执行包括经加密的数据的MMIO读取响应事务。作为又一示例,TEE可以配置加速器136来执行DMA操作,并且加速器136执行存储器传输、执行密码操作(即,加密或解密)并且转发结果。如下文进一步描述的,TEE和加速器136生成用于所传输的数据的认证标签(authentication tag;AT)并且可以使用那些AT来验证事务。计算设备100由此可以将计算设备100的不受信任软件(诸如操作系统或虚拟机监视器)保持在TEE的受信任代码库(trusted code base;TCB)和加速器136之外。由此,计算设备100可以保护来自计算设备100的所有者(例如,云服务提供商)或计算设备100的其他租户的、由TEE和加速器136交换或以其他方式处理的数据。因此,计算设备100可以通过允许安全使用加速器设备来改进多租户环境的安全和性能。

计算设备100可被具体化为能够执行本文中所描述的功能的任何类型的设备。例如,计算设备100可以被具体化为,但不限于,计算机、膝上型计算机、平板计算机、笔记本计算机、移动计算设备、智能电话、可穿戴计算设备、多处理器系统、服务器、工作站和/或消费电子设备。如图1所示,说明性计算设备100包括处理器120、I/O子系统124、存储器130和数据存储设备132。附加地,在一些实施例中,说明性部件中的一个或多个说明性部件可被并入另一部件中,或以其他方式形成另一部件的部分。例如,在一些实施例中,存储器130或其部分可被并入处理器120中。

处理器120可被具体化为能够执行本文中所描述的功能的任何类型的处理器。例如,处理器120可被具体化为(一个或多个)单核心处理器或(一个或多个)多核心处理器、数字信号处理器、微控制器、或其他处理器或处理/控制电路。如图所示,处理器120说明性地包括安全飞地(enclave)支持122,安全飞地支持122允许处理器120建立被称为安全飞地的受信任执行环境,在该受信任执行环境中,执行代码可以被测量、验证和/或以其他方式被确定是真实的。附加地,安全飞地中所包括的代码和数据可以被加密或者以其他方式被保护以免由在安全飞地之外执行的代码访问。例如,安全飞地中所包括的代码和数据当被执行时或者当被存储在处理器120的某些受保护的缓存存储器中时可以由处理器120的硬件保护机制来保护。安全飞地中所包括的代码和数据当被存储在共享缓存或主存储器130中时可以被加密。安全飞地支持122可以被具体化为处理器指令扩展集,该处理器指令扩展集允许处理器120在存储器130中建立一个或多个安全飞地。例如,安全飞地支持122可被具体化为

存储器130可以被具体化为能够执行本文中描述的功能的任何类型的易失性或非易失性存储器或数据存储。在操作中,存储器130可存储在计算设备100的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库以及驱动程序。如图所示,存储器130可经由I/O子系统124通信地耦合到处理器120,I/O子系统124可被具体化为用于促进与处理器120、存储器130以及计算设备100的其他部件的输入/输出操作的电路系统和/或部件。例如,I/O子系统124可被具体化为或以其他方式包括:存储器控制器中枢、输入/输出控制中枢、传感器中枢、主机控制器、固件设备、通信链路(即,点到点链路、总线链路、线路、电缆、光导、印刷电路板迹线等)和/或用于促进输入/输出操作的其他部件和子系统。在一些实施例中,存储器130可以例如经由集成存储器控制器中枢直接耦合到处理器120。附加地,在一些实施例中,I/O子系统124可以形成片上系统(system-on-a-chip;SoC)的部分,并且可与计算设备100的处理器120、存储器130、加速器设备136和/或其他部件一起被合并在单个集成电路芯片上。附加地或替代地,在一些实施例中,处理器120可以包括集成存储器控制器和系统代理,该系统代理可以被具体化为逻辑块,来自处理器核心和I/O设备的数据流量在被发送到存储器130之前在该逻辑块中汇聚。

如图所示,I/O子系统124包括直接存储器访问(DMA)引擎126和存储器映射的I/O(MMIO)引擎128。包括用安全飞地支持122建立的安全飞地的处理器120可以使用DMA引擎126通过一个或多个DMA事务和/或使用MMIO引擎128通过一个或多个MMIO事务与加速器设备136通信。计算设备100可以包括多个DMA引擎126和/或MMIO引擎128以用于基于处理器120与加速器136之间的带宽来处置DMA和MMIO读取/写入事务。尽管示出为被包括在I/O子系统124中,但是应当理解,在一些实施例中,DMA引擎126和/或MMIO引擎128可以被包括在计算设备100的其他部件(例如,处理器120、存储器控制器或系统代理)中,或者在一些实施例中可以被具体化为单独的部件。

数据存储设备132可被具体化为被配置成用于数据的短期存储或长期存储的任何类型的一个或多个设备,诸如例如,存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器、非易失性闪存或其他数据存储设备。计算设备100还可以包括通信子系统134,通信子系统134可被具体化为能够实现计算设备100与其他远程设备之间通过计算机网络(未示出)的通信的任何通信电路、设备或其集合。通信子系统134可被配置成用于使用任何一种或多种通信技术(例如,有线或无线通信)以及相关联的协议(例如,以太网、

加速器设备136可被具体化为现场可编程门阵列(field-programmable gatearray;FPGA)、专用集成电路(application-specific integrated circuit;ASIC)、协处理器、或能够执行加速功能(例如,加速应用功能、加速网络功能或其他加速功能)的其他数字逻辑设备、GPU等。说明性地,加速器设备136是FPGA,该FPGA可被具体化为包括在制造之后可被配置的可编程数字逻辑资源的集成电路。FPGA可以包括例如通过可配置数据交换进行通信的可配置逻辑块阵列。加速器设备136可以经由诸如外围总线(例如,PCI快速(PCIExpress)总线)或处理器间互连(例如,管芯内互连(in-die interconnect;IDI)或快速路径互连(QuickPath Interconnect;QPI))之类的高速连接接口、或经由任何其他适当的互连耦合到处理器120。加速器设备136可以经由DMA、MMIO或其他数据传输事务从处理器120接收用于处理的数据和/或命令并且将结果数据返回到处理器120。

如图所示,计算设备100可以进一步包括一个或多个外围设备138。外围设备138可以包括任何数量的附加输入/输出设备、接口设备、硬件加速器和/或其他外围设备。例如,在一些实施例中,外围设备138可以包括触摸屏、图形电路系统、图形处理单元(graphicalprocessing unit;GPU)和/或处理器图形、音频设备、麦克风、相机、键盘、鼠标、网络接口、和/或其他输入/输出设备、接口设备、和/或外围设备。

计算设备100还可包括网络接口控制器(network interface controller;NIC)150。NIC 150使得计算设备100能够经由网络与另一计算设备100通信。在实施例中,NIC150可包括可编程(或智能)NIC、基础设施处理单元(infrastructure processing unit;IPU)或数据中心处理单元(datacenter processing unit;DPU),这些设备可被配置成用于基于分组类型、连接或其他分组特性来执行不同动作。

现在参考图2,示出了现场可编程门阵列(FPGA)200的说明性实施例。如图所示,FPGA 200是加速器设备136的一个潜在实施例。说明性的FPGA 200包括安全MMIO引擎202、安全DMA引擎204、一个或多个加速器功能单元(accelerator functional unit;AFU)206、以及存储器/寄存器208。如下文进一步描述的,安全MMIO引擎202和安全DMA引擎204对在处理器120(例如,由处理器建立的安全飞地)与FPGA 200(例如,一个或多个AFU 206)之间传输的数据执行内嵌认证的密码操作。在一些实施例中,安全MMIO引擎202和/或安全DMA引擎204可以拦截、过滤或以其他方式处理FPGA 200的一个或多个缓存一致互连、内部总线或其他互连上的数据流量。

每个AFU 206可被具体化为被配置成用于执行加速任务的FPGA 200的逻辑资源。每个AFU 206可以与由计算设备100在安全飞地或其他受信任执行环境中执行的应用相关联。每个AFU 206可以由计算设备100的租户或其他用户配置或以其他方式供应。例如,每个AFU 206可以与被编程到FPGA 200的比特流图像相对应。如下文进一步描述的,由每个AFU206处理的数据(包括与受信任执行环境交换的数据)可以被密码保护以免受计算设备100的不受信任部件的影响(例如,被保护免受在租户飞地的受信任代码库之外的软件的影响)。每个AFU 206可以访问或以其他方式处理存储器/寄存器208中所存储的数据,存储器/寄存器208可被具体化为FPGA 200的内部寄存器、缓存、SRAM、存储装置或其他存储器。在一些实施例中,存储器208还可以包括耦合到FPGA 200的外部DRAM或其他专用存储器。

现在参考图3,在说明性实施例中,计算设备100在操作期间建立环境300。说明性环境300包括受信任执行环境(TEE)302和加速器136。TEE 302进一步包括受信任代理303、主机密码引擎304、事务调度器306、主机验证器308和直接存储器访问(DMA)管理器310。加速器136包括加速器密码引擎312、存储器范围选择引擎313、加速器验证器314、存储器映射器316、认证标签(AT)控制器318和DMA引擎320。环境300的各个部件可被具体化为硬件、固件、软件或其组合。由此,在一些实施例中,环境300中的部件中的一个或多个部件可被具体化为电路系统或电气设备的集合(例如,主机密码引擎电路系统304、事务调度器电路系统306、主机验证器电路系统308、DMA管理器电路系统310、加速器密码引擎电路系统312、加速器验证器电路系统314、存储器映射器电路系统316、AT控制器电路系统318和/或DMA引擎电路系统320)。应当领会的是,在此类实施例中,主机密码引擎电路系统304、事务调度器电路系统306、主机验证器电路系统308、DMA管理器电路系统310、加速器密码引擎电路系统312、加速器验证器电路系统314、存储器映射器电路系统316、AT控制器电路系统318和/或DMA引擎电路系统320中的一个或多个可以形成计算设备100的处理器120、I/O子系统124、加速器136和/或其他部件的部分。附加地,在一些实施例中,说明性部件中的一个或多个说明性部件可以形成另一部件的部分,和/或说明性部件中的一个或多个说明性部件可以相互独立。

TEE 302可被具体化为计算设备100的受信任执行环境,该受信任执行环境使用计算设备100的硬件支持(诸如处理器120的安全飞地支持122)被认证并且被保护免受未经授权的访问。说明性地,TEE 302可被具体化为使用英特尔SGX技术建立并通过TDX技术利用的一个或多个安全飞地。TEE 302还可包括计算设备100的一个或多个驱动器、库或其他部件,或者以其他方式与计算设备100的一个或多个驱动器、库或其他部件对接,从而与加速器136对接。

主机密码引擎304被配置成用于基于存储器映射的I/O(MMIO)事务生成认证标签(AT)并且将该AT写入到加速器136的AT寄存器。对于MMIO写入请求,主机密码引擎304进一步被配置成用于对数据项进行加密以生成经加密的数据项,并且AT响应于对数据项进行加密而生成。对于MMIO读取请求,AT基于与MMIO读取请求相关联的地址而生成。

事务调度器306被配置成用于在将经计算的AT写入到AT寄存器之后将存储器映射的I/O事务(例如,MMIO写入请求或MMIO读取请求)调度到加速器136。MMIO写入请求可以与经加密的数据项一起被调度。

主机验证器308可以被配置成用于验证MMIO写入请求成功地响应调度MMIO写入请求。验证MMIO写入请求成功可以包括安全地读取加速器136的状态寄存器、安全地读取来自加速器136的MMIO写入的地址处的值、或者读取返回由加速器136计算的AT值的加速器136的AT寄存器,如下文所描述。对于MMIO读取请求,主机验证器308可以进一步被配置成用于基于从加速器136调度的MMIO读取响应中所包括的经加密的数据项来生成AT;从加速器136的寄存器中读取所报告的AT;并且确定由TEE 302生成的AT是否与由加速器136报告的AT相匹配。主机验证器308可以进一步被配置成用于在那些AT不匹配的情况下指示错误,从而提供了数据在从TEE 302到加速器136的路上不被修改的保证。

加速器密码引擎312被配置成用于执行与MMIO事务相关联的密码操作并且用于响应于MMIO事务被调度而基于MMIO事务生成AT。对于MMIO写入请求,密码操作包括对从TEE302接收到的经加密的数据项进行解密以生成数据项,并且AT基于经加密的数据项被生成。对于MMIO读取请求,密码操作包括对来自加速器136的存储器的数据项进行加密以生成经加密的数据项,并且AT基于该经加密的数据项被生成。

加速器验证器314被配置成用于确定由TEE 302写入的AT是否与由加速器136确定的AT相匹配。加速器验证器314进一步被配置成用于在那些AT不匹配的情况下丢弃MMIO事务。对于MMIO读取请求,加速器验证器314可以被配置成用于响应于丢弃MMIO读取请求而生成被污染的AT,并且可以进一步被配置成用于响应于丢弃MMIO读取请求而将具有被污染的数据项的MMIO读取响应调度到TEE 302。

存储器映射器316被配置成用于响应于确定由TEE 302写入的AT与由加速器136生成的AT相匹配而提交MMIO事务。对于MMIO写入请求,提交事务可以包括将数据项存储在加速器136的存储器中。存储器映射器316可以进一步被配置成用于响应于存储数据项而设置状态寄存器以指示成功。对于MMIO读取请求,提交事务可以包括读取加速器136的存储器中的地址处的数据项以及将具有经加密的数据项的MMIO读取响应调度到TEE 302。

DMA管理器310被配置成用于将初始化命令安全地写入到加速器136以初始化安全DMA传输。DMA管理器310进一步被配置成用于安全地配置指示主机存储器缓冲器、加速器136缓冲器和传输方向的描述符。传输方向可以是主机到加速器136或加速器136到主机。DMA管理器310进一步被配置成用于将终结命令安全地写入到加速器136以终结用于安全DMA传输的认证标签(AT)。初始化命令、描述符和终结命令可以各自用MMIO写入请求安全地写入和/或配置。DMA管理器310可以进一步被配置成用于响应于安全地配置描述符来确定是否传输附加数据,终结命令可以响应于确定没有附加数据剩余用于传输而安全地写入。

AT控制器318被配置成用于响应于来自TEE 302的初始化命令而初始化AT。AT控制器318进一步被配置成用于响应于来自TEE 302的终结命令而终结AT。

DMA引擎320被配置成用于响应于来自TEE 302的描述符而在主机存储器缓冲器与加速器136缓冲器之间传输数据。对于从主机到加速器136的传输,传输数据包括从主机存储器缓冲器复制经加密的数据以及响应于对经加密的数据进行解密而将明文数据转发到加速器136缓冲器。对于从加速器136到主机的传输,传输数据包括从加速器136缓冲器复制明文数据以及响应于对明文数据进行加密而将经加密的数据转发到主机存储器缓冲器。

加速器密码引擎312被配置成用于响应于传输数据而对数据执行密码操作并且响应于传输数据而更新AT。对于从主机到加速器136的传输,执行密码操作包括对经加密的数据进行解密以生成明文数据。对于从加速器136到主机的传输,执行密码操作包括对明文数据进行加密以生成经加密的数据。

主机验证器308被配置成用于基于安全DMA传输来确定预期AT,用于响应于安全写入终结命令而从加速器136读取AT,并且用于确定来自加速器136的AT是否与预期AT相匹配。主机验证器308可以进一步被配置成用于在AT匹配的情况下指示成功,并且用于在AT不匹配的情况下指示失败。

图4图示出计算设备400的另一实施例。计算设备400表示通信和数据处理设备,该通信和数据处理设备包括或表示(但不限于)智能语音命令设备、智能个人助理、家庭/办公自动化系统、家用电器(例如,洗衣机、电视机等)、移动设备(例如,智能电话、平板计算机等)、游戏设备,手持设备、可穿戴设备(例如,智能手表、智能手环等)、虚拟现实(virtualreality;VR)设备、头戴式显示器(head-mounted display;HMD)、物联网(Internet ofThings;IoT)设备、膝上型计算机、桌面型计算机、服务器计算机、机顶盒(例如,基于互联网的有线电视机顶盒等)、基于全球定位系统(global positioning system;GPS)的设备、汽车信息娱乐设备、等等。

在一些实施例中,计算设备400包括任何数量和类型的其他智能设备或与任何数量和类型的其他智能设备一起工作或嵌入任何数量和类型的其他智能设备或促进任何数量和类型的其他智能设备,这些智能设备诸如(但不限于)自主机器或人工智能代理,诸如机械代理或机器、电子代理或机器、虚拟代理或机器、机电代理或机器等。自主机器或人工智能代理的示例可以包括(但不限于)机器人、自主交通工具(例如,自动驾驶汽车、自动飞行飞机、自动航行船舶、等)、自主装备(自操作建设交通工具、自操作医疗装备等)等等。进一步地,“自主交通工具”不限于汽车,而是可以包括任何数量和类型的自主机器,诸如机器人、自主装备、家居自主设备等,并且与此类自主机器相关的任何一个或多个任务或操作可以与自主驾驶可互换地引用。

进一步地,例如,计算设备400可以包括主控集成电路(“IC”)的计算机平台(诸如片上系统(“SoC”或“SOC”)),该计算机平台将计算设备400的各个硬件和/或软件部件集成在单个芯片上。

如所图示,在一个实施例中,计算设备400可以包括任何数量和类型的硬件和/或软件部件,诸如(但不限于)图形处理单元(“GPU”或简称为“图形处理器”)416、图形驱动器(也称为“GPU驱动器”、“图形驱动器逻辑”、“驱动器逻辑”、用户模式驱动器(UMD)、用户模式驱动器框架(UMDF)、或简称为“驱动器”)415、中央处理单元(“CPU”或简称为“应用处理器”)412、硬件加速器414(诸如例如,FPGA、ASIC、重新调整用途的CPU或重新调整用途的GPU)、存储器408、网络设备、驱动器等,以及诸如触摸屏、触摸面板、触摸板、虚拟或常规键盘、虚拟或常规鼠标、端口、连接器之类的输入/输出(I/O)源404,等等。计算设备400可包括用作计算设备400的硬件和/或物理资源与用户之间的接口的操作系统(OS)406。

应当领会,对于某些实现方式,可利用比在上文中所描述的示例更少或更多地配备的系统。因此,取决于众多因素,诸如价格约束、性能要求、技术改进或其他情况,计算设备400的配置可以因实现方式而异。

实施例可以被实现为以下各项中的任何一项或其组合:使用母板互连的一个或多个微芯片或集成电路、硬线逻辑、由存储器设备存储并由微处理器执行的软件、固件、专用集成电路(ASIC)、和/或现场可编程门阵列(FPGA)。作为示例,术语“逻辑”、“模块”、“部件”、“引擎”、“电路系统”、“元件”和“机制”可包括软件、硬件和/或其组合,诸如固件。

计算设备400可主控(一个或多个)网络接口设备以提供对网络的访问,所述网络诸如,LAN、广域网(WAN)、城域网(MAN)、个域网(PAN)、蓝牙、云网络、移动网络(例如,第3代(3G)、第4代(4G)等)、内联网、互联网等。(一个或多个)网络接口可包括例如具有天线(其可表示一个或多个天线)的无线网络接口。(一个或多个)网络接口也可包括例如用于经由网络电缆与远程设备通信的有线网络接口,所述网络电缆可以是例如以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。

实施例可以被提供为例如计算机程序产品,该计算机程序产品可包括一种或多种机器可读介质,该一种或多种机器可读介质具有存储于其上的机器可执行指令,这些机器可执行指令在由一个或多个机器(诸如,计算机、计算机的网络或其他电子设备)执行时可使得这一个或多个机器执行根据本文中所描述的实施例的操作。机器可读介质可包括但不限于:软盘、光盘、CD-ROM(致密盘只读存储器)以及磁光盘、ROM、RAM、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪存存储器、或者适合于存储机器可执行指令的其他类型的介质/机器可读介质。

此外,实施例可作为计算机程序产品被下载,其中,经由通信链路(例如,调制解调器和/或网络连接)、借助于在载波或其他传播介质中实体化和/或由载波或其他传播介质调制的一个或多个数据信号,可将程序从远程计算机(例如,服务器)传输至作出请求的计算机(例如,客户端)。

贯穿本文档,术语“用户”可以被可互换地称为“观看者”、“观察者”、“说话者”、“个人”、“个体”、“终端用户”等等。要注意的是,贯穿本文档,如“图形域”之类的术语可以与“图形处理单元”、“图形处理器”或简单地与“GPU”可互换地引用,并且类似地,“CPU域”或“主机域”可以与“计算机处理单元”、“应用处理器”或简单地与“CPU”可互换地引用。

要注意的是,贯穿本文档,可以可互换地使用如“节点”、“计算节点”、“服务器”、“服务器设备”、“云计算机”、“云服务器”、“云服务器计算机”、“机器”、“主机”、“设备”、“计算设备”、“计算机”、“计算系统”等之类的术语。要进一步注意的是,贯穿本文档,可以可互换地使用如“应用”、“软件应用”、“程序”、“软件程序”、“包”、“软件包”等之类的术语。并且,贯穿本文档,可以可互换地使用如“作业”、“输入”、“请求”、“消息”等术语。

图5示出了示例性覆盖网络500。如本文中所使用,覆盖网络是构建在底层网络基础设施(底层网络)顶部上的虚拟网络,而底层网络是在其上构建覆盖网络的物理基础设施(例如,负责跨网络递送分组的底层网络)。作为结果,底层网络向覆盖网络提供服务。如图5所示,网络500包括两个主机(主机1和主机2),每个主机主控两个虚拟机(VM):主机1内的VM1和VM2以及主机2内的VM3和VM4。在一个实施例中,VM1和VM3可被包括在一个虚拟网络中,而VM2和VM4可被包括在另一虚拟网络中。在进一步实施例中,每个VM具有虚拟以太网和IP地址。然而,不同虚拟网络上的VM可具有相同的IP地址。每个虚拟网络可由唯一虚拟可扩展局域网(VXLAN)网络ID(VXLAN Network ID;VNI)来标识。例如,用于VM1和VM3的虚拟网络可具有的VNI为100,而VM2和VM4可以在由VNI为200进行标识的虚拟网络上。附加地,主机1和主机2各自包括隧道端点(tunneling endpoint;TEP)以在虚拟覆盖网络上的目的地虚拟以太网地址/VNI与物理底层网络上的IP地址之间进行转译。

在VM1要与VM3通信的情况下,VM1创建带有与VM3相关联的目的地MAC地址的以太网帧。TEP1将目的地MAC地址转译为主机2的IP地址。VXLAN封装报头包括该“外部”IP地址。原始以太网帧被封装在UDP/IP/VXLAN分组中。当该分组到达主机2时,外部VXLAN/IP/UDP报头被剥离并且内部以太网帧被递送到VM3。

如上所示,覆盖网络隔离来自不同VM的网络流量,但不保护经由不受信任物理网络传输的数据的机密性和完整性。通常实施上层安全协议(例如,传输层安全(TransportLayer Security;TLS)和网际协议安全(Internet Protocol Security;IPsec))来保护数据的机密性和完整性。典型地,CSP在主控宾客VM的物理机之间建立IPsec信道,由此保护直到层3的物理网络上的分组。然而,对于机密计算,CSP是不受信任的,并且因此将需要执行它们自己的用户控制的加密。这种用户控制的加密可使用TLS或IPsec对VM内的封装分组执行。

然而,IPsec加密必须执行两次(例如,在外部L3分组层和内部L3分组层两者处)。附加地,每一对VM都需要唯一IPsec安全关联(SA),这在考虑到每个主机可能包括的VM时代表存储器和管理方面的大量开销。例如,主机内的每个VM包括其自己的加密密钥以经由IPsec SA协议加密消息。由于每个主机可包括数千个VM,因此主机需要存储并管理数千个加密密钥。

根据一个实施例,公开了一种机制,用于保护从第一主机内的多个VM经由两个物理主机之间的共享IPsec信道传输到第二主机内的多个VM的数据。在这样的实施例中,受信任网络接口卡被实现来用于在主机之间传输数据,而不将CSP包括在VM的受信任计算库(Trusted Compute Base;TCB)中。

图6示出了根据本文的实现方式的描绘平台600的框图。在一个实现方式中,说明性平台600可包括用于在操作期间建立TEE 610的处理器605。平台600可以与例如参考图1和图2描述的计算设备100以及图4中的计算设备400相同。TEE 610的建立可与上文参考图3关于建立TEE的讨论相符,并且这样的讨论在这里类似地适用于图6。

如图所示,TEE 610进一步包括应用614。平台600的各个部件可被具体化为硬件、固件、软件或其组合。由此,在一些实施例中,平台600的部件中的一个或多个部件可被具体化为电路系统或电气设备的集合。附加地,在一些实施例中,说明性部件中的一个或多个说明性部件可以形成另一部件的部分,和/或说明性部件中的一个或多个说明性部件可以相互独立。

TEE 610可被具体化为平台600的受信任执行环境,该受信任执行环境使用平台600的硬件支持进行认证和保护以防止未授权的访问。TEE 610还可包括平台600的一个或多个驱动器、库或其他部件,或者以其他方式与平台600的一个或多个驱动器、库或其他部件对接,从而与加速器对接。

平台600还包括NIC 620,NIC 620可以与上文讨论的NIC 150相当。如图6所示,NIC620包括密码引擎613,密码引擎613包括加密器/解密器615。密码引擎613被配置成用于经由其部件实现应用与网络设备之间的受保护数据传输。在这里的实现方式中,密码引擎613被TEE 610信任以实现应用(诸如在TEE 610中运行的应用614)与通过网络连接的远程计算平台之间的受保护数据传输。

加密器/解密器615被配置成用于执行与数据传输事务(诸如RDMA事务)相关联的密码操作。对于RDMA事务,密码操作包括加密由应用614生成的数据项以生成经加密的数据项,或者解密发送到应用614的数据项以生成经解密的数据项。

图7A和图7B示出了在覆盖网络700内的平台600的实施例。在图7A中,网络700包括耦合到平台600B的平台600A。在该实施例中,平台600A包括TEE 610A和TEE 610B,TEE 610A和TEE 610B分别主控VM1和VM2。类似地,平台600B包括TEE 600C和TEE 600D,TEE 600C和TEE 600D分别主控VM3和VM4。根据一个实施例,每个VM可包括由

附加的,平台600A包括NIC 620A,NIC 620A例如经由网络通信地耦合到平台600B内的NIC 620B。根据一个实施例,平台600内的每个NIC 620耦合到主控VM的处理器605(或机器),并且被每个TEE 610信任以将其数据与平台600上的其他VM或NIC软件客户端隔离并保护该数据免受平台600上的其他VM或NIC软件客户端的影响。例如,保护与VM1的NIC 620通信免受VM2的影响,并且保护与VM2的NIC 620通信免受VM1的影响。因此,每个TEE 610提供其主控的VM与NIC 620之间的安全路径。在进一步实施例中,受信任通信信道(例如,IPsec或TLS)可建立在NIC 620A与NIC 620B之间,用于保护从平台600A处的VM1和VM2传输到平台600B处的VM3和VM4的数据。在这样的实施例中,密码引擎613被实现来加密/解密在各个平台600之间传输的数据。由于每个NIC 620被每个TEE 610信任,因此NIC 620内的密码引擎613被允许代表TEE 610进行加密。

在一个实施例中,网络700包括受信任实体750,用于建立平台600A与平台600B之间的受信任通信信道。受信任实体750可以是跟踪在每个平台600处被主控的VM的网络编排器控制器。图7B示出了包括经由NIC 620A至620耦合的平台600A至600N的网络700的另一实施例,其中每个平台600耦合到受信任实体750。

图8是示出在平台之间建立安全加密通信信道(安全信道)的一个实施例的流程图。在开始安全信道发起之前,启动平台600A和平台600B处的VM(例如,分别为VM1和VM3)并且建立VCN(例如,VNI=100),处理框810。在处理框820处,由VM请求安全信道。在一个实施例中,VM1和VM3各自向其本地NIC(例如,经由平台600A和平台600B处的不受信任虚拟化软件)请求IPsec信道。在进一步实施例中,VM1和VM3还可请求特定的加密算法和强度。VM无法直接请求安全信道,或者查询安全信道是否已经存在,这是因为VM不知道物理底层网络和相关联的IP地址;平台上的网络虚拟化软件知道那些细节。

在判定框830处,做出关于安全信道是否当前可用的确定(例如,与请求中包括的强度相同或强度更大的信道)。如果否,则在物理NIC之间发起IPsec的密钥交换协议(互联网密钥交换(IKE)),处理框840。如上所述,平台内的每个受信任NIC用于经由内部密码引擎建立安全信道,而不是经由TEE软件建立安全信道。在一个实施例中,在平台600A和平台600B上运行的不受信任软件促进两个相应NIC之间的IKE协议消息的交换。如本文所使用,互联网密钥交换(IKE)被实现以在端点之间建立安全信道,以交换通知和协商IPsec SA。IPsec SA指定由通信主机识别的安全属性。

图9是示出在平台(或机器)之间建立密钥交换的过程的一个实施例的序列图。如图9所示,协议开始于主机中的一个主机查询本地NIC以确定两个机器之间(在物理底层网络级)是否存在NIC管理的IPsec SA。如果存在这样的IPsec SA,则协议终止并且该设置跳到下一步骤以验证IPsec存在。如果否,则在两个NIC之间交换IKE协议的四个消息,其中两个机器充当直通代理。在一个实施例中,SA的安全敏感性细节(例如,加密密钥)只被协议末尾处的NIC知道,并且不被两个机器上的促进消息交换的不受信任软件MC1和MC2知道。一旦协议已经完成执行,NIC就用关于SA的信息来编程它们的内部安全策略数据库(SecurityPolicy Database;SPD)和安全关联数据库(Security Association database;SADB)。

一旦已经建立安全信道或在判定框830处确定安全信道先前已被建立(图8),VM上的TEE就锁定它们各自的NIC的配置(例如,包括TEP条目和IPsec SA)并且准备好经由VCN通信,处理框850。在一个实施例中,VM TEE无法验证已经在平台之间建立IPsec信道,因为它涉及在两个平台上的在TEE外部的不受信任虚拟化软件。因此,两个VM使用受信任实体(编排器)来验证已经建立IPsec信道。

在处理框860处,VM(例如,VM1)利用受信任实体验证是否已经建立安全信道以保护VM1虚拟IP/MAC地址与其他VM的虚拟IP/MAC地址(例如,VM2虚拟IP/MAC地址)之间的通信信道。受信任实体知道VM1在平台600A上并且VM2在平台600B上。因此,在处理框870处,受信任实体对平台600A上的NIC进行查询(例如,经由受信任软件)以确定与VM2的虚拟MAC地址相对应的IP地址,并且随后将该IP地址提供给VM1。

在一个实施例中,使用平台600A NIC中的锁定TEP数据库条目来用平台600B NIC的IP地址进行响应。类似地,受信任实体对平台600B上的NIC进行查询以确定与VM1的虚拟MAC地址相对应的IP地址,并且使用平台600B NIC中的锁定TEP数据库条目来用平台600ANIC的IP地址进行响应。

在进一步实施例中,受信任实体随后对平台600A和平台600B上的NIC进行查询以确定两个平台上的层3端点(例如,平台600B NIC与平台600BNIC)之间是否存在IPsec SA。受信任实体还可以取回信息(例如,加密算法和强度)以传递给VM,以使得VM能够确认IPsecSA是否存在以及是否具有与所请求的加密强度相等或更强的加密强度。在又进一步实施例中,受信任实体可被委派来比较VM所请求的强度和现有IPsec SA强度,并且返回对连接的成功保护。算法可被扩展,以用较强的SA替换现有较弱的SA,或者添加较强的SA。

在处理框880处,平台600A和平台600B可以在VM从受信任实体接收到IPsec信道存在的确认之后使用VCN安全地通信。在一个实施例中,即使VM共享“外部”IPsec SA,通信也是安全的,这是因为VM依托它们的物理NIC来保护它们的消息,这些消息与来自那些机器上的其他VM的消息一起在物理接口上复用。因此,如果两个平台上的另一对VM需要安全地通信,则这对VM可以依赖于NIC使用相同的IPsec SA来保护它们在不受信任数据中心网络上的消息。作为结果,两个NIC使用单个安全通信信道来保护物理网络上的一对IP端点之间的消息。

图10是根据一些实施例的用于实现针对对抗性攻击的增强的保护的说明性电子计算设备的示意图。在一些实施例中,计算设备1000包括一个或多个处理器1010,一个或多个处理器1010包括一个或多个处理器核心1018和受信任执行环境(TEE)1064,该TEE包括机器学习服务飞地(MLSE)1080。在一些实施例中,计算设备1000包括硬件加速器(HW)1068,该硬件加速器包括密码引擎1082和机器学习模型1084。在一些实施例中,计算设备用于针对ML对抗性攻击提供增强的保护,如在图1-图9中所提供的。

计算设备1000可附加地包括以下各项中的一者或多者:缓存1062、图形处理单元(GPU)1012(在一些实现方式中,其可以是硬件加速器)、无线输入/输出(I/O)接口1020、有线I/O接口1030、存储器电路系统1040、功率管理电路系统1050、非暂态存储设备1060、以及用于连接至网络1072的网络接口1070。以下讨论提供对形成说明性的计算设备1000的部件的简洁的、一般性的描述。例如,非限制性计算设备1000可包括桌面型计算设备、刀片式服务器设备、工作站、或类似的设备或系统。

在实施例中,处理器核心1018能够执行机器可读指令集1014,从一个或多个存储设备1060读取数据和/或指令集1014,并且将数据写入到一个或多个存储设备1060。相关领域的技术人员将领会,所图示的实施例以及其他实施例可利用其他基于处理器的设备配置来实施,这些基于处理器的设备配置包括便携式电子设备或手持式电子设备(例如,智能电话)、便携式计算机、可穿戴计算机、消费电子产品、个人计算机(“PC”)、网络PC、小型计算机、服务器刀片、大型计算机、等等。

处理器核心1018可包括任何数量的硬连线或可配置电路,其中的一些或全部可包括部分或完全地设置在能够执行处理器可读指令的PC、服务器或其他计算系统中的电子部件、半导体器件和/或逻辑元件的可编程和/或可配置组合。

计算设备1000包括总线或类似的通信链路1016,总线或类似的通信链路1016能通信地耦合各种系统部件,并且促进各种系统部件之间的信息和/或数据的交换,这些系统部件包括处理器核心1018、缓存1062、图形处理器电路系统1012、一个或多个无线I/O接口1020、一个或多个有线I/O接口1030、一个或多个存储设备1060和/或一个或多个网络接口1070。计算设备1000在本文中能以单数形式引用,但是这不旨在将实施例限于单个计算设备1000,因为在某些实施例中,可存在合并、包括、或包含任何数量的能通信地耦合的、并置的、或远程联网的电路或设备的多于一个的计算设备1000。

处理器核心1018可包括能够执行机器可读指令集的任何数量、类型的当前可用的或未来开发的设备或这些设备的任何组合。

处理器核心1018可包括(或耦合到)但不限于任何当前的或未来开发的单核心或多核心处理器或微处理器,诸如:一个或多个片上系统(SOC);中央处理单元(CPU);数字信号处理器(DSP);图形处理单元(GPU);专用集成电路(ASIC)、可编程逻辑单元、现场可编程门阵列(FPGA)等。除非另有描述,否则图10中所示的各种框的构造和操作是常规设计的构造和操作。因此,此类框不需要在本文中进一步详细地描述,因为这些框将被相关领域的技术人员理解。将计算设备1000的部件中的至少一些部件互连起来的总线1016可采用任何当前可用的或未来开发的串行或并行总线结构或体系结构。

系统存储器1040可包括只读存储器(“ROM”)1042和随机存取存储器(“RAM”)1046。ROM 1042的部分可用于存储或以其他方式保留基本输入/输出系统(“BIOS”)1044。BIOS1044例如通过使处理器核心1018加载和/或执行一个或多个机器可读指令集1014来向计算设备1000提供基本功能。在实施例中,一个或多个机器可读指令集1014中的至少一些使得处理器核心1018的至少部分提供、创建、产生、转变和/或充当专用、指定且特定的机器,例如文字处理机、数字图像采集机、媒体播放机、游戏系统、通信设备、智能电话等等。

计算设备1000可包括至少一个无线输入/输出(I/O)接口1020。至少一个无线I/O接口1020可以能通信地耦合至一个或多个物理输出设备1022(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个无线I/O接口1020可以能通信地耦合至一个或多个物理输入设备1024(指点设备、触摸屏、键盘、触觉设备等)。至少一个无线I/O接口1020可包括任何当前可用的或未来开发的无线I/O接口。示例无线I/O接口包括但不限于:

计算设备1000可包括一个或多个有线输入/输出(I/O)接口1030。至少一个有线I/O接口1030可以能通信地耦合至一个或多个物理输出设备1022(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个有线I/O接口1030可以能通信地耦合至一个或多个物理输入设备1024(指点设备、触摸屏、键盘、触觉设备等)。有线I/O接口1030可包括任何当前可用的或未来开发的I/O接口。示例有线I/O接口包括但不限于:通用串行总线(USB)、IEEE 1394(“火线”)等等。

计算设备1000可包括一个或多个能通信地耦合的非暂态数据存储设备1060。数据存储设备1060可包括一个或多个硬盘驱动器(HDD)和/或一个或多个固态存储设备(SSD)。一个或多个数据存储设备1060可包括任何当前或未来开发的存储装置、网络存储设备和/或系统。此类数据存储设备1060的非限制性示例可包括但不限于任何当前或未来开发的非暂态存储装置或设备,诸如,一个或多个磁存储设备、一个或多个光存储设备、一个或多个电阻存储设备、一个或多个分子存储设备、一个或多个量子存储设备或其各种组合。在一些实现方式中,一个或多个数据存储设备1060可包括一个或多个可移除存储设备,诸如,能够能通信地耦合至计算设备1000和从计算设备1000解耦的一个或多个闪存驱动器、闪存存储器、闪存存储单元或类似装置或设备。

一个或多个数据存储设备1060可包括将相应的存储设备或系统通信地耦合至总线1016的接口或控制器(未示出)。一个或多个数据存储设备1060可存储、保留或以其他方式包含对于处理器核心1018和/或图形处理器电路系统1012和/或在处理器核心1018和/或图形处理器电路系统1012上执行或由处理器核心1018和/或图形处理器电路系统1012执行的一个或多个应用有用的机器可读指令集、数据结构、程序模块、数据存储、数据库、逻辑结构和/或其他数据。在一些实例中,一个或多个数据存储设备1060可以例如经由总线1016、或经由一个或多个有线通信接口1030(例如,通用串行总线或USB)、一个或多个无线通信接口1020(例如,

处理器可读指令集1014和其他程序、应用、逻辑集合和/或模块可整体或部分地存储在系统存储器1040中。此类指令集1014可整体或部分地从一个或多个数据存储设备1060被传输。指令集1014在由处理器核心1018和/或图形处理器电路系统1012执行期间可整体或部分地被加载、被存储、或以其他方式被保留在系统存储器1040中。

计算设备1000可包括功率管理电路系统1050,功率管理电路系统1050控制能量存储设备1052的一个或多个操作方面。在实施例中,能量存储设备1052可包括一个或多个主要的(即,非可重新充电的)电池或次要的(即,可重新充电的)电池或类似的能量存储设备。在实施例中,能量存储设备1052可包括一个或多个超级电容器或超超级电容器。在实施例中,功率管理电路系统1050可改变、调整或控制从外部功率源1054到能量存储设备1052和/或到计算设备1000的能量流。功率源1054可包括但不限于太阳能电力系统、商用电网、便携式发电机、外部能量存储设备、或其任何组合。

为方便起见,处理器核心1018、图形处理器电路系统1012、无线I/O接口1020、有线I/O接口1030、存储设备1060和网络接口1070被图示为经由总线1016通信地彼此耦合,由此提供上文所描述的部件之间的连接性。在替代实施例中,上文所描述的部件能以与图10中所图示的不同的方式通信地耦合。例如,上文所描述的部件中的一个或多个部件可直接耦合至其他部件,或者可经由一个或多个中间部件(未示出)彼此耦合。在另一示例中,上文所描述的部件中的一个或多个部件可被集成到处理器核心1018和/或图形处理器电路系统1012中。在一些实施例中,总线1016的全部或部分可被省略,并且使用合适的有线或无线连接直接地将部件彼此耦合。

下文提供本文中所公开的技术的说明性示例。技术的实施例可以包括下文所描述的示例中的任何一个或多个示例以及下文所描述的示例的任何组合。

示例1包括一种装置,该装置包括第一计算平台,该第一计算平台包括处理器和第一网络接口控制器,该处理器用于执行第一受信任执行环境(TEE)以主控第一多个虚拟机,该第一网络接口控制器用于经由编排控制器建立与第二计算平台的受信任通信信道。

示例2包括示例1的主题,其中受信任通信信道被实现来在第一多个虚拟机与第二计算平台处主控的第二多个虚拟机之间传输数据。

示例3包括示例1至2中任一项的主题,其中建立受信任通信信道包括:由第一TEE主控的第一虚拟机请求第一网络接口控制器在第一计算平台与由第二计算平台主控的第二虚拟机之间建立网际协议安全(IPsec)信道。

示例4包括示例1至3中任一项的主题,其中建立受信任通信信道包括:第一TEE锁定第一计算平台与第二计算平台之间的IPsec信道的配置。

示例5包括示例1至4中任一项的主题,其中建立受信任通信信道包括:第一虚拟机利用编排控制器验证IPsec信道是否已经被建立。

示例6包括示例1至5中任一项的主题,其中第一网络接口控制器包括隧道端点(TEP)数据库,用于接收来自编排控制器的第一查询,以确定第二计算平台处的第二网络接口控制器的网际协议(IP)地址。

示例7包括示例1至6中任一项的主题,其中建立受信任通信信道包括:编排控制器将第二网络接口控制器的TP提供给第一虚拟机。

示例8包括示例1至7中任一项的主题,其中建立受信任通信信道包括:第一网络接口控制器接收来自编排控制器的第二查询,以确定第一网络接口控制器与第二网络接口控制器之间是否存在IPsec安全关联(SA)层3信道。

示例9包括示例1至8中任一项的主题,其中建立受信任通信信道包括:确定IPsec信道不可用以及建立IPsec信道。

示例10包括一种方法,该方法包括:由第一计算平台的第一TEE主控的第一虚拟机请求该计算平台处的第一网络接口控制器在第一计算平台与由第二计算平台主控的第二虚拟机之间建立网际协议安全(IPsec)信道,在第一计算平台与第二计算平台之间建立IPsec信道,第一虚拟机利用编排控制器验证IPsec信道是否已经被建立,在第一虚拟机处从编排控制器接收与第二计算平台处的第二网络接口控制器相关联的网际协议(IP)地址,以及经由IPsec信道在第一计算平台与第二虚拟机之间传输数据。

示例11包括示例10的主题,进一步包括第一TEE锁定第一计算平台与第二计算平台之间的IPsec信道的配置。

示例12包括示例10至11中任一项的主题,其中第一虚拟机利用编排控制器验证包括:第一网络接口控制器接收来自编排控制器的第一查询,以确定第二计算平台处的第二网络接口控制器的IP地址。

示例13包括示例10至12中任一项的主题,其中第一虚拟机利用编排控制器验证进一步包括:第一网络接口控制器接收来自编排控制器的第二查询,以确定第一网络接口控制器与第二网络接口控制器之间是否存在IPsec安全关联(SA)层3信道。

示例14包括一种系统,该系统包括:第一计算平台,该第一计算平台包括第一处理器和第一网络接口控制器,该第一处理器用于执行第一受信任执行环境(TEE)以主控第一多个虚拟机,该第一网络接口控制器用于建立与第二计算平台的受信任通信信道;第二计算平台,该第二计算平台包括第二处理器和第二网络接口控制器,该第二处理器用于执行第二TEE以主控第二多个虚拟机,该第二网络接口控制器用于建立与第二计算平台的受信任通信信道;以及编排控制器,该编排控制器用于促进第一计算平台与第二计算平台之间的受信任通信信道。

示例15包括示例14的示例中任一项的主题,其中受信任通信信道被实现来在第一多个虚拟机与第二计算平台处主控的第二多个虚拟机之间传输数据。

示例16包括示例14至15中任一项的主题,其中建立受信任通信信道包括:由第一TEE主控的第一虚拟机请求第一网络接口控制器和由第二TEE主控的第二虚拟机在第一计算平台与第二计算平台之间建立网际协议安全(IPsec)信道。

示例17包括示例14至16中任一项的主题,其中建立受信任通信信道包括:第一TEE锁定第一计算平台与第二计算平台之间的IPsec信道的配置。

示例18包括示例14至17中任一项的主题,其中建立受信任通信信道包括:第一虚拟机利用编排控制器验证IPsec信道是否已经被建立。

示例19包括示例14至18中任一项的主题,其中第一网络接口控制器包括隧道端点(TEP)数据库,用于接收来自编排控制器的第一查询,以确定第二计算平台处的第二网络接口控制器的网际协议(IP)地址。

示例20包括示例14至19中任一项的主题,其中建立受信任通信信道包括:编排控制器将第二网络接口控制器的TP提供给第一虚拟机。

示例21包括至少一种计算机可读介质,该至少一种计算机可读介质具有存储在其上的指令,该指令在由一个或多个处理器执行时,使处理器用于:请求计算平台处的第一网络接口控制器在第一计算平台与第二计算平台之间建立网际协议安全(IPsec)信道,在第一计算平台与第二计算平台之间建立IPsec信道,利用编排控制器验证IPsec信道是否已经被建立,从编排控制器接收与第二计算平台处的第二网络接口控制器相关联的网际协议(IP)地址,以及经由IPsec信道在第一计算平台之间传输数据。

示例22包括示例21的示例中任一项的主题,具有存储在其上的指令,该指令在由一个或多个处理器执行时,进一步使处理器用于:锁定第一计算平台与第二计算平台之间的IPsec信道的配置。

示例23包括示例21至22中任一项的主题,其中利用编排控制器验证包括:第一网络接口控制器接收来自编排控制器的第一查询,以确定第二计算平台处的第二网络接口控制器的IP地址。

示例24包括示例21至23中任一项的主题,其中利用编排控制器验证进一步包括:第一网络接口控制器接收来自编排控制器的第二查询,以确定第一网络接口控制器与第二网络接口控制器之间是否存在IPsec安全关联(SA)层3信道。

示例25包括一种系统,该系统包括编排控制器,该编排控制器用于促进第一计算平台与第二计算平台之间的受信任通信信道。

示例26包括示例25的示例中任一项的主题,其中编排控制器从第一计算平台接收验证是否已经在第一计算平台与第二计算平台之间建立网际协议安全(IPsec)信道的请求。

示例27包括示例25至26中任一项的主题,其中编排控制器对来自第一计算平台内的网络接口控制器进行查询,以确定第二计算平台处的第二网络接口控制器的网际协议(IP)地址。

以上具体实施方式包括对所附附图的引用,所附附图形成具体实施方式的部分。附图通过图示方式示出可被实施的具体实施例。这些实施例在本文中还被称为“示例”。此类示例可包括除所示出或所描述的那些要素以外的要素。然而,还构想了包括所示出或所描述的要素的示例。而且,还构想了使用所示出或所描述的那些要素(或其一个或多个方面)的任何组合或排列的示例,或参考本文中所示出或所描述的特定示例(或其一个或多个方面),或参考本文中所示出或所描述的其他示例(或其一个或多个方面)。

在此文档中引用的出版物、专利和专利文档通过引用被整体结合在本文中,就好像通过引用单独地被结合那样。在本文档与通过引用结合的那些文档之间不一致的用法的情况下,所结合的(一个或多个)参考中的用法是对此文档的用法的补充;对于不可调和的不一致性,此文档中的用法占主导。

在本文档中,如在专利文档中常见的那样,使用术语“一”或“一个”以包括一个或多于一个,并且独立于“至少一个”或“一个或多个”的任何其他实例或用法。另外,“……的集合”包括一个或多个要素。在本文档中,使用术语“或”来指代非排他的“或”,使得“A或B”包括“A但非B”,“B但非A”,以及“A和B”,除非另外指示。在所附权利要求书中,术语“包含”和“其特征在于”被用作相应的术语“包括”和“其中”的普通英语等效词。此外,在所附权利要求书中,术语“包含(including)”和“包括(comprising)”是开放式的,也就是说,在权利要求中包括除此类术语之后列举的那些要素之外的要素的系统、设备、制品或过程仍被视为落在那项权利要求的范围内。此外,在所附权利要求中,术语“第一”、“第二”、以及“第三”等仅用作标记,并且不旨在表明它们的对象的数值顺序。

本文中引用的术语“逻辑指令”涉及可被一个或多个机器理解以用于执行一个或多个逻辑操作的表达。例如,逻辑指令可包括可由处理器编译器解释以用于对一个或多个数据对象执行一个或多个操作的指令。然而,这仅仅是机器可读指令的示例,并且示例不被限制在此方面中。

本文中引用的术语“计算机可读介质”涉及能够维持可由一个或多个机器感知的表达的介质。例如,计算机可读介质可包括用于存储计算机可读指令或数据的一个或多个存储设备。此类存储设备可包括存储介质(诸如例如,光、磁或半导体存储介质)。然而,这仅仅是计算机可读介质的示例,并且示例不被限制在此方面中。

本文中引用的术语“逻辑”涉及用于执行一个或多个逻辑操作的结构。例如,逻辑可包括基于一个或多个输入信号来提供一个或多个输出信号的电路系统。此类电路系统可包括接收数字输入并提供数字输出的有限状态机、或者响应于一个或多个模拟输入信号而提供一个或多个模拟输出信号的电路系统。此类电路系统能以专用集成电路(ASIC)或现场可编程门阵列(FPGA)的形式来提供。另外,逻辑可包括存储在存储器中的机器可读指令,与处理电路系统组合来执行此类机器可读指令。然而,这些仅仅是可提供逻辑的结构的示例,并且示例不被限制在此方面中。

本文中所描述的方法中的一些方法可被具体化为计算机可读介质上的逻辑指令。当在处理器上执行时,这些逻辑指令使得处理器被编程为实现所描述的方法的专用机器。当由逻辑指令配置以执行本文中所描述的方法时,处理器构成用于执行所描述的方法的结构。替代地,本文中所描述的方法可精简为例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等等之上的逻辑。

在说明书和权利要求书中,可使用术语“耦合的”和“连接的”及其衍生词。在特定示例中,“连接的”可用于指示两个或更多个元件彼此直接物理接触或电气接触。“耦合的”可意指两个或更多个元件直接物理接触或电气接触。然而,“耦合的”也可意指两个或更多个元件可能彼此并不直接接触,但是仍可彼此协作或交互。

说明书中对“一个示例”或“一些示例”的引用意指结合该示例描述的特定特征、结构或特性被包括在至少一个实现方式中。短语“在一个示例中”在本说明书中的各位置中的出现可以全部指同一示例或可以不都是指同一示例。

以上描述旨在是说明性而非限制性的。例如,可结合其他示例来使用以上所描述的示例(或其一个或多个方面)。诸如可由本领域普通技术人员在仔细阅读以上描述之后使用其他实施例。摘要允许读者快速地确定本技术公开的性质。提交该摘要,并且理解该摘要将不用于解释或限制权利要求书的范围或含义。而且,在以上具体实施方式中,各种特征可编组在一起以使本公开精简。然而,权利要求可以不陈述本文中所公开的每一特征,因为实施例可以表征所述特征的子集。进一步地,实施例可包括比特定示例中所公开的那些特征更少的特征。因此,所附权利要求由此被并入具体实施方式中,其中每项权利要求独立成为单独实施例。本文中所公开的实施例的范围应当参照所附权利要求书连同此类权利要求所赋予权利的等价方案的完整范围来确定。

虽然已经用特定于结构特征和/或方法动作的语言描述了示例,但应理解要求保护的主题可以不限于所描述的特定特征或动作。相反,特定特征和动作作为实现要求保护的主题的样本形式被公开。

相关技术
  • 一种人体健康监测方法及系统
  • 一种结构健康监测系统及其使用方法
  • 一种基于人脸识别的公共场所健康监测系统及方法
  • 一种基于睡眠大数据的智能健康监测与预警系统及方法
  • 一种金属屋面在线监测与健康管理系统及方法
  • 一种基于BIM的金属屋面健康监测系统及方法
技术分类

06120116547500