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

与可信执行环境的安全通信

文献发布时间:2023-06-19 12:19:35


与可信执行环境的安全通信

背景技术

最近开发了智能网络接口控制器(NIC)来分流(offload)通常由中央处理单元(CPU)执行的处理。例如,设备可以包括智能NIC以执行历史上由CPU执行的网络业务流处理。在一些示例中,智能NIC在云环境的上下文中实现,其中,多个服务器成组操作以执行功能。这种服务器通常处理或传递诸如用户数据、密码等敏感信息。然而,当敏感数据在CPU和智能NIC之间和/或在服务器之间交换时,数据可能由于安全攻击而受到损害。

附图说明

参考附图给出详细说明。在附图中,附图标记的最左边的数字表示附图标记首次出现的附图。在不同附图中使用相同的附图标记表示相似或相同的项目或特征。

图1例示了其中可以实现本文所述技术的示例环境。

图2例示了建立系统的可信部分与系统的另一部分之间的安全信道并且通过该安全信道提供数据的示例性处理。

图3例示了通过安全信道提供数据的示例性处理。

图4例示了建立可信执行环境(TEE)部件与智能网络接口控制器(NIC)之间的该安全通信信道并且通过安全通信信道提供数据的示例性处理。

图5例示了向系统上的部件安全地提供密文密钥的示例性处理。

图6例示了与可信执行环境(TEE)部件建立安全通信信道并且从TEE部件接收密文密钥的示例性处理。

具体实施方式

本发明涉及在系统的可信部分与系统的另一部分之间建立安全信道并通过安全信道提供敏感数据。例如,系统可以实现可信执行环境(TEE)。实现TEE和/或在TEE内执行的硬件和/或软件可以被称为TEE部件。TEE部件可以建立与系统上的部件的安全通信信道,系统上的部件诸如被配置成加密/解密数据和/或执行其它操作的智能网络接口控制器(NIC)。TEE部件可以从服务提供方接收一个或更多个密文密钥,并经由安全通信信道向该部件提供该一个或更多个密文密钥。该部件可以在向另一设备发送数据之前使用该一个或更多个密文密钥来加密数据,解密从另一设备接收的数据,或以其他方式对数据进行加密/解密。在示例中,这样的技术可以避免损害该一个或更多个密文密钥和/或用该一个或更多个密文密钥加密数据。

为了例示,服务提供方可以以安全的方式向系统(例如计算设备)供给一个或更多个密文密钥。例如,系统可以实现TEE部件以在安全环境中执行各种操作。在示例中,TEE部件可以与服务提供方进行证明(attestation)(例如,远程证明)以建立第一安全通信信道。第一安全通信信道上的通信可以用会话密文密钥加密。然后,服务提供方可以通过第一安全通信信道向TEE部件提供消息(例如,密钥分组)。该消息可以包括可以由系统的部件使用的一个或更多个密文密钥。消息可以用会话密文密钥加密。在示例中,消息还包括指示用于与其它系统通信的密文密钥的映射数据。TEE部件可以用会话密文密钥对消息进行解密,以识别一个或更多个密文密钥、映射数据和/或为该消息的一部分的任何其它数据。

TEE部件可以向系统的一个或更多个部件供给(例如,提供)一个或更多个密文密钥。例如,TEE部件可以与系统上的智能NIC建立第二安全通信信道。为此,TEE部件和/或NIC可以交换数据并利用先前存储在TEE部件和/或NIC中的密文密钥或其它数据验证所交换的数据,例如在配置期间。当交换数据以建立第二安全通信信道时,TEE部件和/或NIC可以指定用于通信的密文密钥(例如,用于对数据进行加密的密文密钥)。TEE部件然后可以向NIC提供包括源自服务提供方的该一个或更多个密文密钥和/或映射数据的消息。该消息可以用为第二安全通信信道指定的密文密钥进行加密。NIC可以用密文密钥解密该消息以识别消息内的一个或更多个密文密钥和/或映射数据。

NIC可以然后使用该一个或更多个密文密钥和/或映射数据来对数据进行加密/解密。例如,NIC可以经由第二安全通信信道从TEE部件接收数据。NIC可以基于源自服务提供方的一个或更多个密文密钥中的密文密钥来加密数据。NIC然后可以将加密数据发送到服务提供方、另一系统或任何其它设备。在示例中,NIC可以使用映射数据来识别在对数据进行加密时使用哪个密文密钥(例如,选择被指定用于系统与特定接收设备之间的通信的密文密钥)。

在示例中,本文讨论的技术可以使系统的部件能够以安全方式接收数据。例如,系统的TEE部件可以从服务提供方接收密文密钥,并将密文密钥安全地供给到系统的部件,诸如NIC或其他部件。在示例中,部件可以验证TEE部件是可信实体,并基于该验证来接收密文密钥。在示例中,该技术可以允许该部件在该部件没有对服务提供方的安全接入的情况下以安全方式从服务提供方接收数据。虽然讨论了用NIC执行的多个示例,但是这些技术可以用任何部件来实现,诸如图形处理单元(GPU)、安全密码处理器、视频卡、数字信号处理器、摄像头、音频编解码器等。

在示例中,这些技术在诸如云计算架构等的一组计算设备的上下文中实现。举例来说,该技术可以用于一组服务器内以安全方式交换数据(例如,第一服务器可以使用由服务提供方提供的密文密钥与第二服务器通信而不损害数据)。在其它示例中,该技术在其它上下文中实施,例如在客户机装置之间,在客户机装置与服务器之间和/或在其它类型的装置之间。

提供该简短介绍是为了方便读者,而不是要限制权利要求书的范围,也不是要限制随后的部分。此外,以下详细描述的技术可以以多种方式和多种上下文来实现。参照以下附图提供了示例实现方式和上下文,如下文更详细描述的。然而,应当理解,以下实现方式和上下文仅为示例。

示例环境

图1例示了其中可以实现本文所述技术的示例环境100。环境100包括服务提供方102,服务提供方102与系统104通信以向系统104提供一个或更多个密文密钥。系统104可以使用密文密钥来与服务提供方102和/或系统106通信。在示例中,服务提供方102和系统104(在一些情况下,和/或系统106)可以经由网络108通信。

服务提供方102可以包括一个或更多个计算设备,例如一个或更多个台式计算机、膝上型计算机、服务器等。一个或更多个计算设备可以被配置在集群、数据中心、云计算环境或其组合中。在一个示例中,一个或更多个计算设备提供云计算资源,包括计算资源、存储资源等。

服务提供方102的一个或更多个计算设备可以包括处理器110、存储器112和网络接口控制器(NIC)114。处理器110、存储器112和/或NIC 114可以彼此通信地耦接。处理器110可以包括例如一个或更多个微处理器、一个或更多个微型计算机、一个或更多个微控制器、一个或更多个数字信号处理器、一个或更多个中央处理单元(CPU)、一个或更多个图形处理单元(GPU)、一个或更多个安全处理器(例如安全密码处理器)等。

存储器112可以包括用于供给密文密钥118的密钥供给部件116。密钥供给部件116可以使用任何类型的算法(例如,密钥得出函数或其他算法)来生成密文密钥118。密文密钥118可以存储在存储器112中。密钥供给部件116可以向系统104、系统106和/或另一系统提供密文密钥118中的一个或更多个。密钥供给部件116可以表示在由处理器110执行时使处理器110执行操作的可执行指令。

服务提供方102可以实现NIC 114以与另一设备通信,例如经由网络108。NIC 114可以包括以无线方式和/或经由线缆(例如,以太网、光信道等)发送/接收数据的电子电路。NIC 114可以实现为一个或更多个硬件逻辑部件,诸如一个或更多个处理器、片上系统(SoC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。另外地或可选地,NIC 114可以包括存储器。

在示例中,NIC 114被实现为智能NIC,其被配置成执行各种操作,诸如加密/解密、控制业务流(例如导向)、实现防火墙、报告业务流量等。NIC 114可以独立于处理器110所执行的操作来执行这些操作(例如,可以不采用CPU周期)。在示例中,NIC 114可以向从服务提供方102发送的数据添加附加的加密层。例如,NIC 114可以从密钥供给部件116或任何其他部件接收数据,对数据进行加密(即使数据已经在诸如应用层的较高层进行了加密),并经由网络108发送加密数据。以类似的方式,NIC 114可以解密经由网络108接收的数据。

系统104和/或系统106可以各自包括多种计算设备中的任何一种,诸如服务器、膝上型计算机、台式计算机、智能电话、移动电话、个人数字助理(PDA)、电子书设备、平板计算机、便携式计算机、游戏设备、个人媒体播放器设备或任何其他计算设备。在一些示例中,系统104和/或系统106可以被配置在集群、数据中心、云计算环境或其组合中。在一个示例中,系统104和/或系统106向诸如客户机设备的远程设备提供包括计算资源、存储资源等的云计算资源。

系统104可以包括处理器120、存储器122和部件124。处理器120、存储器122和/或部件124可以彼此通信地耦接。处理器120可以包括例如一个或更多个微处理器、一个或更多个微型计算机、一个或更多个微控制器、一个或更多个数字信号处理器、一个或更多个中央处理单元(CPU)、一个或更多个图形处理单元(GPU)、一个或更多个安全处理器(例如,安全密码处理器)等。

在图1的示例中,处理器120和/或存储器122可以实现可信执行环境(TEE)126。TEE126可以包括存储器122的隔离区域(有时称为飞地)和/或处理器120的安全部分。TEE 126可以允许以安全方式执行指令和/或存储数据。例如,TEE 126可以提供比通用操作系统级别高的攻击。在一些示例中,TEE 126至少部分地由

实现TEE 126和/或在TEE 126内执行的硬件和/或指令可称为TEE部件128。在示例中,应用(或指令)可以包括在TEE 126外部(例如,在主存储器的非安全部分内和/或用通用CPU指令)实现的部分和/或在TEE 126内(例如,在主存储器的安全部分内和/或用特定CPU指令)实现的部分。例如,系统104可以执行应用以执行功能。这里,处理器120可以执行应用的与TEE 126外部的敏感数据或算法不相关的第一部分,并且执行应用的与TEE 126内部的敏感数据或算法相关的第二部分。在示例中,敏感数据仅在TEE 126内进行解密/加密和/或处理。

在示例中,TEE部件128可以与服务提供方102进行证明(例如,远程证明)以建立安全通信信道130。远程证明可以是设备向远程设备认证其硬件/软件配置的处理。在各示例中,服务提供方102和/或TEE部件128可以与诸如图1中未示出的第三方服务等证明服务通信。在进行证明时,TEE部件128和/或服务提供方102可以指定用于通信的密文密钥(例如,与安全通信信道130相关联的密文密钥)。即,经由安全通信信道130发送/接收的通信可以用密文密钥加密/解密。

在建立安全通信信道130时,服务提供方102可以向TEE部件128发送包括映射数据和/或一个或更多个密文密钥(诸如密文密钥118)的消息(例如,密钥分组)。该消息可以用与安全通信信道130相关联的密文密钥进行加密。TEE部件128可以解密消息以识别消息中的映射数据和/或一个或更多个密文密钥。映射数据和/或一个或更多个密文密钥可以存储在TEE 126中(例如,作为密文密钥132存储在存储器122的隔离区域中)。从服务提供方102接收的一个或更多个密文密钥可以包括部件124在与服务提供方102、系统106和/或另一系统通信时可以使用的密文密钥。

映射数据通常可以表示密文密钥到系统的映射。例如,映射数据可以表示部件124在与第一系统通信时应当用第一密文密钥来来对数据进行加密/解密,而在与第二系统通信时应当用第二密文密钥来对数据进行加密/解密。在示例中,第一密文密钥和/或第二密文密钥可以是临时密钥。

TEE部件128还可以建立与部件124的安全通信信道134。例如,TEE部件128和/或部件124可以交换数据,并利用先前存储在TEE部件128和/或部件124中的密文密钥或其它数据来验证所交换的数据,诸如在配置期间,如下所述。当交换数据以建立安全通信信道134时,TEE部件128和/或部件124可以指定用于通信的密文密钥。

TEE部件128然后可以经由安全通信信道134向部件124提供消息。该消息(例如,密钥分组)可以包括源自服务提供方102的映射数据和/或一个或更多个密文密钥,诸如密文密钥118。消息可以用与安全通信信道134相关联的密文密钥来加密。部件124可以解密该消息以识别消息中的映射数据和/或一个或更多个密文密钥。部件124可以将映射数据和/或一个或更多个密文密钥存储在存储器136中(例如,作为密文密钥138)。

部件124可以使用存储在存储器136中的密文密钥138和/或映射数据来对数据进行加密/解密和/或执行各种其它操作。在一个示例中,部件124可以经由安全通信信道134从TEE部件128接收数据。部件124可以基于密文密钥138中的至少一个密文密钥来对数据进行加密。部件124然后可以将加密数据发送到服务提供方102、系统106或另一设备。在另一示例中,可以从服务提供方102、系统106和/或另一设备接收数据并基于密文密钥138对其解密。当与另一设备的通信被加密时,这种通信可以被称为通过安全通信信道。例如,发送到服务提供方102或从服务提供方102接收的数据可以通过安全通信信道140,而发送到系统106或从系统106接收的数据可以通过安全通信信道142。

在示例中,系统104和/或系统106可以被配置成组并且协作地操作以执行一个或更多个操作(例如,在云环境中)。这里,可以实现本文讨论的技术以使系统104能够以安全方式与系统106和/或该组中的另一系统通信。例如,该技术可以使部件124能够以安全方式接收一个或更多个密文密钥,以加密/解密由系统104发送/接收的信息。在示例中,部件124可以使用映射数据来识别在与组中的特定系统通信时使用哪个密文密钥。换句话说,部件124可以使用映射数据来选择被指定用于系统104与特定系统之间的通信的密文密钥。通过加密该组中的系统之间的通信和/或分配不同的密文密钥,该技术可以确保敏感数据在该组系统内保持受保护。虽然在图1中例示了两个系统,但是可以实现任意数量的系统,例如五个、十个、二十个、三十个等。

部件124可以包括网络接口控制器(NIC)(例如,智能NIC、通用NIC等)、图形处理单元(GPU)、安全密码处理器、视频卡、数字信号处理器、摄像头、音频编解码器等。部件124可以用硬件逻辑部件144和/或存储器136来实现。硬件逻辑部件144可以是一个或更多个处理器、片上系统(SoC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。在示例中,存储器136可以是硬件逻辑部件144的一部分。

在一个示例中,部件124可以被实现为与诸如服务提供方102、系统106这样的另一设备通信的NIC。NIC可以包括以无线方式和/或经由线缆(例如,以太网、光信道等)发送/接收数据的电子电路。在示例中,NIC被实现为智能NIC,其被配置成执行各种操作,诸如加密/解密、控制业务流(例如导向)、实现防火墙、报告业务流量等。NIC可以独立于处理器120所执行的操作来执行这些操作(例如,可不采用CPU周期)。在示例中,NIC可以向从系统104发送的数据添加附加的加密层。例如,NIC可以从TEE部件128或任何其它部件接收数据,对数据进行加密(即使数据已经在诸如应用层的较高层进行了加密),并发送加密数据。以类似的方式,NIC可以以解密在系统104处接收的数据。

存储器112、存储器122、存储器136和/或本文描述的任何其它存储器是计算机可读介质的示例。计算机可读介质可以采用易失性存储器的形式,例如随机存取存储器(RAM)和/或非易失性存储器,例如只读存储器(ROM)或闪存RAM。计算机可读介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或由计算设备的一个或更多个处理器执行的其它数据等信息的任何方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机可读介质的示例包括但不限于相变存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、光盘只读存储器(CD-ROM)、数字通用盘(DVD)或其他光存储、盒式磁带、磁带、磁盘存储或其他磁存储设备,或可以用于存储供计算设备访问的信息的任何其他非暂时性介质。如本文所定义的,计算机可读介质不包括暂时介质,诸如调制数据信号、载波和/或信号。

网络108可以包括PSTN(公共交换电话网)、因特网、本地内联网、PAN(个人区域网)、LAN(局域网)、WAN(广域网)、MAN(城域网)、虚拟专用网(VPN)、存储区域网(SAN)、移动电话网(MTN)或其它各种通信技术。网络108可以包括无线和/或有线连接。

虽然图1中未示出,但是系统106可以包括与系统104相同或相似的部件和/或实现与系统104相同或相似的功能。为例如,图1所示的系统104的部件可以表示系统106的部件。

在示例中,在初始化阶段期间,由于静态密文密钥(有时称为“原始静态密钥”)被指定用于部件124与服务提供方102之间的通信,部件124(例如,NIC)可以被配置成仅与服务提供方102通信。静态密文密钥(原始静态密钥)可以由部件124和服务提供方102在配置阶段期间存储。此外,在初始化阶段期间,TEE部件128和服务提供方102可以进行远程证明以验证彼此是可信的,这可以包括与证明服务(例如,第三方服务)通信。在执行进行证明时,TEE部件128和服务提供方102可以协商会话密文密钥(有时称为“sk”)以发送/接收密钥分组,密钥分组包括可以用于与各种系统通信的一个或更多个密文密钥。在接收到密钥分组时,TEE部件128可以将那些一个或更多个密文密钥转发到部件124上,使得系统104能够与也具有该一个或更多个密文密钥的各种系统通信。

在示例中,在发生事件(例如,启动等)时、在系统104请求时等,周期性地更新密文密钥。在一个示例中,服务提供方102可以周期性地或在任何其它时间向系统104提供更新的静态密文密钥(也称为旋转静态密钥),以在与服务提供方102通信时使用。在另一示例中,服务提供方102可以周期性地或在任何其它时间向系统104提供更新的动态密文密钥(也称为临时密文密钥),以在与系统106通信时使用。

示例性处理

图2至图6例示了采用本文所述技术的示例性处理200、300、400、500和600。为了便于说明,将处理200、300、400、500和600描述为在图1的环境100中执行。例如,处理200、300、400、500和600的一个或更多个单独操作可以由服务提供方102、系统104和/或系统106来执行。然而,处理200、300、400、500和600可以在其它环境中执行。此外,环境100可以用于执行其它处理。

处理200、300、400、500和600(以及本文描述的每个处理)被例示为逻辑流图,其各个操作表示可以在硬件、软件或其组合中实现的操作序列。在软件的上下文中,操作表示存储在一个或更多个计算机可读介质上的计算机可执行指令,当由一个或更多个处理器执行所述指令时,所述指令配置所述一个或更多个处理器以执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。描述操作的顺序不旨在被解释为限制,并且可以以任何顺序和/或并行地组合任何数目的所描述的操作来实现该处理。此外,可以省略任何单独的操作。

图2例示了建立系统的可信部分与系统的另一部分之间的安全信道并通过该安全信道提供数据的示例性处理200。为了便于说明,在图2中使用措辞“密钥”来表示密文密钥。

在202,服务提供方102可以生成密文密钥,诸如密文密钥118。例如,服务提供方102可以生成包括私有密文密钥(有时称为“SP_private_key”)和公共密文密钥(有时称为“SP_public_key”)的密钥对。服务提供方102还可以生成静态密文密钥(有时称为“原始静态密钥”)。在示例中,可以在第一次与部件124通信时使用静态密文密钥。密文密钥可以存储在服务提供方102处。

在204,部件124可以生成和/或存储密文密钥,诸如密文密钥138。例如,部件124可以生成和/或存储包括私有密文密钥(有时称为“NIC_private_key”)和公共密文密钥(有时称为“NIC_public_key”)的密钥对。在示例中,部件124可以将公共密文密钥与服务提供方102相关联(例如,注册)。服务提供方102可以维护组中各个部件的公共密文密钥(例如,系统组中各个NIC的公共密文密钥)的记录。

在204,部件124还可以存储静态密文密钥(原始静态密钥)和/或在服务提供方102处生成的公共密钥(SP_public_key)。在示例中,静态密文密钥(原始静态密钥)和/或在服务提供方102处生成的公共密钥(SP_public_key)可以被硬编码到部件124中。

在示例中,操作204在首次启动部件124时执行。例如,部件124可以执行操作204以将部件124与服务提供方102相关联。在执行操作204时,可以使用静态密文密钥(原始静态密钥)来对部件124与服务提供方102之间的通信进行加密/解密,直到指定了另一密文密钥为止。在示例中,静态密文密钥(原始静态密钥)可以在传输控制协议(TCP)层使用,诸如当部件124是NIC时。虽然静态密文密钥(原始静态密钥)可以在其它层和/或以其它方式使用。在示例中,部件124在执行操作204时仅可以与服务提供方102通信,因为静态密文密钥(原始静态密钥)现在被指定用于与服务提供方102的安全通信,而可能未指定其它密文密钥用于与其它实体的通信。

在206,TEE部件128可以存储密文密钥,诸如密文密钥132。例如,TEE部件128可以存储在服务提供方102处生成的公共密文密钥(SP_public_key)。在示例中,可以将公共密文密钥(SP_public_key)硬编码到TEE部件128中。例如,在TEE部件128至少部分地被实现为应用的情况下,当应用被写入时,公共密文密钥(SP_public_key)可以被硬编码到应用中。

在图2的示例中,操作202至操作206可以是配置阶段的一部分。在配置状态期间,如上所述,可以在服务提供方102、部件124和/或TEE部件128内配置一个或更多个密文密钥。在示例中,配置阶段可以包括将部件124连接到系统104,编写至少部分实现TEE部件128的应用等。然而,可以在任意时间执行操作202至操作206中的任何操作。

在208,服务提供方102和TEE部件128可以进行远程证明。例如,TEE部件128可以使用诸如可信第三方等证明服务向服务提供方102认证其硬件/软件配置。一旦被认证,服务提供方102(和/或TEE部件128)可以提供会话密钥(有时称为“sk”)以用于服务提供方102与TEE部件128之间的通信。这样,服务提供方102和TEE部件128可以协商以建立安全通信信道(例如,用于在安全通信信道130上通信的会话密文密钥)。

在示例中,会话密文密钥(sk)可以在应用层使用,诸如当TEE部件128至少部分地被实现为应用时。虽然可以在其它层和/或以其它方式使用会话密文密钥(sk)。因此,在示例中,系统104和服务提供方102之间的通信可以被加密/解密至少两次(例如,在应用层使用会话密钥(sk)加密/解密,并且在TCP使用静态密文密钥(原始静态密钥)或另一密文密钥(例如,如下所述的旋转静态密钥)加密/解密)。

在210,服务提供方102可以使用会话密文密钥(例如,经由安全通信信道130)向TEE部件128发送密钥分组。例如,可以使用会话密文密钥(sk)来对密钥分组加密。密钥分组可以包括:(i)由服务提供方102生成的静态密文密钥(有时称为“旋转静态密钥”),(ii)映射到由服务提供方102生成的系统的系统密文密钥(有时称为“临时密钥”),(iii)表示系统密文密钥到系统的映射的映射数据,(iv)由部件124生成的公共密文密钥(NIC_public_key),和/或(v)静态密文密钥(旋转静态密钥)、映射数据和公共密文密钥(NIC_public_key)的经签名的散列。经签名的散列可以通过由服务提供方102生成的私有密文密钥(SP_private_key)签名。在示例中,服务提供方102可以例如周期性地(例如,每天、每月、每周等)、在发生事件时和/或在任何其他时间更新静态密文密钥(旋转静态密钥)。

在212,TEE部件128可以从服务提供方102接收密钥分组。在用会话密文密钥(sk)对密钥分组进行了加密的示例中,TEE部件128可以解密该密钥分组以识别密钥分组内的数据。在示例中,TEE部件128可以计算密钥分组内的数据的散列,诸如静态密文密钥(旋转静态密钥)、映射数据和公共密文密钥(NIC_public_key)(例如,密钥分组的项(i)、(iii)和(iv))的散列。在示例中,使用私有密文密钥(SP_private_key)来对密钥分组中的经签名的散列进行加密。这里,使用相应的公共密文密钥(SP_public_key)来解密经签名的散列以获得散列。然后,可以将计算出的散列与从密钥分组解密的散列进行比较。如果被验证,则TEE部件128可以信任密钥分组和该密钥分组中的数据(例如,存储和/或使用该数据以用于进一步处理)。

在214,TEE部件128可以生成对称密文密钥(有时称为“s-n密钥”)和/或将对称密文密钥发送到部件124。在示例中,对称密文密钥(s-n密钥)可以是随机生成的密钥。此外,在示例中,对称密文密钥(s-n密钥)可以使用公共密文密钥(NIC_public_key)来加密,然后被发送到部件124。在示例中,公共密文密钥(NIC_public_key)的这种使用可以促进第一安全通信信道。在示例中,第一安全通信信道与非对称密钥(RSA)加密相关联。这里,在如下所述建立了第二安全通信信道时,TEE部件128和部件124就不再使用第一安全通信信道,因为与基于对称密钥的安全信道(其可以用于在TEE部件128和部件124之间建立的第二安全通信信道)相比,基于非对称密钥(RSA)的安全信道会具有较大的计算开销。

在216,部件124可以接收对称密文密钥(s-n密钥)和/或对加密的对称密文密钥(s-n密钥)进行解密。在示例中,部件124可以使用私有密文密钥(NIC_private_key)来解密从TEE部件128接收的数据以识别对称密文密钥(s-n密钥)。如果用私有密文密钥(NIC_private_key)进行解密,则部件124可以信任TEE部件128(例如,存储和/或使用对称密文密钥(s-n密钥)以用于进一步通信)和/或前进到操作218。

在218处,部件124可以使用对称密文密钥(s-n密钥)来加密公共密文密钥(NIC_public_key)和/或将公共密文密钥(NIC_public_key)发送到TEE部件128(例如,以加密格式)。

在220,TEE部件128可以接收公共密文密钥(NIC_public_key)和/或对加密的公共密文密钥(NIC_public_key)进行解密。

在示例中,TEE部件128可以使用对称密文密钥(s-n密钥)来解密从部件124接收的数据以识别公共密文密钥(NIC_public_key)。TEE部件128然后可以将从部件124接收的公共密文密钥(NIC_public_key)与存储在TEE部件128处(例如,从服务提供方102接收的)的公共密文密钥(NIC_public_key)进行比较。如果密文密钥匹配,则TEE部件128可以信任该部件124(例如,确定部件124被验证)和/或前进到操作222。

在222,TEE部件128可以向部件124发送密钥分组。密钥分组可以包括从服务提供方102接收的数据。例如,所述密钥分组可以包括:(i)由服务提供方102生成的静态密文密钥(旋转静态密钥)、(ii)映射到由服务提供方102生成的系统的系统密文密钥(临时密钥)、(iii)映射数据、(iv)由部件124生成的公共密文密钥(NIC_public_key),和/或(v)静态密文密钥(旋转静态密钥),映射数据和公共密文密钥(NIC_public_key)的经签名的散列。签名的散列可以由服务提供方102生成的私有密文密钥(SP_private_key)签名。在示例中,密钥分组可以用对称密文密钥(s-n密钥)加密。

在224,部件124可以从TEE部件128接收密钥分组。在示例中,部件124可以使用对称密文密钥(s-n密钥)来对密钥分组进行解密。在示例中,部件124可以计算密钥分组内的数据的散列,诸如静态密文密钥(旋转静态密钥)、映射数据和公共密文密钥(NIC_public_key)(例如,密钥分组的项(i)、(iii)和(iv))的散列。在示例中,使用私有密文密钥(SP_private_key)来对密钥分组中的经签名的散列进行加密。这里,使用相应的公共密文密钥(SP_public_key)来对经签名的散列进行解密以获得散列。然后,可以将计算出的散列与来自密钥分组的经解密的散列进行比较。如果被验证,则部件124可以信任密钥分组和该密钥分组中的数据(例如,存储和/或使用该数据以用于进一步处理)。

在图2的示例中,操作208至操作224可以是初始化阶段的一部分。如上所述,在初始化阶段期间,一个或更多个密文密钥可以以安全方式分发到不同实体。在示例中,初始化阶段可以包括建立系统104、系统106和/或服务提供方102(例如,将系统104与系统106分组和/或将系统104和/或系统106与服务提供方102相关联)、第一次执行TEE部件128(例如,在设备连接到光纤/以太网之后)等。然而,可以在任意时间执行操作208至操作224中的任何操作。

图3例示了通过安全信道提供数据的示例性处理300。为了便于说明,在图3中使用措辞“密钥”来表示密文密钥。在示例中,处理300可以在执行处理200之后执行。

在302,TEE部件128可以使用对称密文密钥(s-n)加密第一数据和/或将第一加密数据发送到部件124。在示例中,对称密文密钥(s-n)可以被指定用于TEE部件128与部件124之间的通信。这样,TEE部件128可以使用安全通信信道向部件124发送数据。在示例中,第一数据可以在用对称密文密钥(s-n)加密之前用会话密文密钥(sk)加密,因为第一数据目的地在于服务提供方102并且会话密文密钥(sk)被指定用于与服务提供方102的这种通信。

在304,部件124可以从TEE部件128接收第一加密数据和/或解密第一加密数据。例如,部件124可以用对称密文密钥(s-n)对第一加密数据进行解密。

在306,部件124可以使用静态密文密钥(旋转静态密钥)加密第一数据和/或将第一加密数据发送到服务提供方102。在示例中,静态密文密钥(旋转静态密钥)可以被指定用于部件124和服务提供方102之间的通信。

在308,服务提供方102可以接收第一加密数据和/或解密第一加密数据。例如,服务提供方102可以用静态密文密钥(旋转静态密钥)来对第一加密数据进行解密。在示例中,服务提供方102还可以使用会话密文密钥(sk)来解密第一数据。

在310,TEE部件128可以使用对称密文密钥(s-n)加密第二数据和/或将第二加密数据发送到部件124。

在312,部件124可以从TEE部件128接收第二加密数据和/或解密第二加密数据。例如,部件124可以用对称密文密钥(s-n)对第二加密数据进行解密。

在314,部件124可以使用指定用于与系统106通信的系统密文密钥(临时密钥)来加密第二数据和/或将第二加密数据发送到服务提供方102。在示例中,部件124可以使用映射数据来识别与系统106相关联的系统密文密钥。

在308,系统106可以接收第二加密数据和/或解密第二加密数据。例如,系统106可以用与系统106相关联的系统密文密钥(临时)来解密第二加密数据。

在图3的示例中,操作302至操作316可以是操作阶段的一部分。在操作阶段期间,数据可以通过安全信道发送到各种实体(例如,在TEE部件128或其它实体的运行时)。然而,可以在任意时间执行操作302至操作316中的任何操作。

虽然未在图3中例示,但在示例中,数据可以在系统104处接收和/或解密。例如,部件124可以从服务提供方102和/或系统106接收数据。部件124可以用适当的密文密钥(例如,与服务提供方102相关联的静态密文密钥(旋转静态密钥)和/或与系统106相关联的系统密文密钥(临时))来解密数据。部件124然后可以使用对称密文密钥(s-n)将数据发送到TEE部件128。

图4例示了建立可信执行环境(TEE)部件与智能网络接口控制器(NIC)之间的安全通信信道并通过该安全通信信道提供数据的示例性处理400。

在402,TEE部件可以为服务提供方与TEE部件建立第一安全通信信道。例如,TEE部件和服务提供方可以进行远程证明来指定/协商用于加密和/或解密TEE部件与服务提供方之间的通信的密文密钥(例如,会话密钥)。

在404,TEE部件可以经由第一安全通信信道从服务提供方接收消息。消息可以是使用指定针对在第一安全通信信道上通信的密文密钥而加密的。该消息可以包括第一密文密钥(例如,旋转静态密钥、临时密钥等)、映射数据、公共密文密钥(例如,用于智能网络接口控制器(NIC)并与服务提供方相关联)、经签名的散列等。第一密文密钥可以被指定用于与服务提供方、另一系统等通信。在示例中,消息可以是密钥分组。

在406,TEE部件可以建立用于TEE部件与智能网络接口控制器(NIC)的第二安全通信信道。例如,TEE部件可以与智能NIC通信以指定/创建用于加密和/或解密TEE部件与智能NIC之间的通信的第二密文密钥(例如,由TEE部件生成的对称密钥)。在一个示例中,TEE部件可以生成第二密文密钥,加密第二密文密钥以生成加密数据,和/或将加密数据发送到智能NIC。智能NIC可以对加密数据解密以识别第二密文密钥。

在408,TEE部件可以经由第二安全通信信道向智能NIC发送第一密文密钥。例如,第一密文密钥(例如,旋转静态密钥、临时密钥等)可以用第二密文密钥(例如,对称密钥)加密并发送给智能NIC。

在410,智能NIC可以经由第二安全通信信道从TEE部件接收数据。例如,该数据可以作为用第二密文密钥(例如,对称密文密钥)加密的加密数据来接收。

在412,智能NIC可以至少部分基于第一密文密钥将数据发送到服务提供方或系统。例如,智能NIC可以至少部分地基于第二密文密钥(例如对称密钥)对接收到的数据进行解密,至少部分地基于第一密文密钥(例如旋转静态密钥、临时密钥等)对数据进行加密以生成加密数据,并将加密数据发送到服务提供方或另一系统。

在414,TEE部件可以建立用于TEE部件与另一部件(例如,系统上除智能NIC之外的部件)的第三安全通信信道。例如,TEE部件可以与该另一部件(例如,GPU、视频卡、数字信号处理器、摄像头等)通信以指定/创建用于加密和/或解密TEE部件与该另一部件之间的通信的密文密钥(例如,同一对称密钥、附加对称密钥等)。

在416,TEE部件可以经由第三通信信道将第一密文密钥或另一密文密钥发送到该另一部件。在一个示例中,TEE部件可以识别由服务提供方供给以由该另一部件使用的另一密文密钥(例如,对称密钥)。TEE部件可能已经在来自服务提供方等的消息中接收到另一密文密钥。TEE部件可以通过第三安全通信信道以安全方式向另一部件提供另一密文密钥。在另一示例中,TEE部件可以将第一密文密钥同给到另一部件以在与服务提供方、另一系统等通信时使用。例如,其它部件可以是包括智能NIC的系统上的附加智能NIC。

图5例示了向系统上的部件安全地提供密文密钥的示例性处理500。

在502,系统的可信执行环境(TEE)部件可以与服务提供方进行证明。例如,TEE部件和/或服务提供方可以与证明服务通信以执行远程证明。

在504,TEE部件可以接收用于与服务提供方通信的会话密文密钥。例如,TEE部件和服务提供可以创建用于通信的密文密钥,诸如会话密文密钥。在示例中,操作504可以在与服务提供方进行证明后/或作为与服务提供方进行证明的一部分来执行。

在506,TEE部件可以从服务提供方接收消息。该消息可以包括一个或更多个密文密钥,例如用于与服务提供方通信的静态密文密钥、用于与另一系统通信的临时密文密钥等。在示例中,消息是密钥分组和/或用会话密文密钥进行了加密。此外,在示例中,系统包括服务器组中的第一服务器,而另一系统包括服务器组中的第二服务器。

在508处,TEE部件可至少部分地基于会话密文密钥来解密消息(在进行了加密的情况下)以识别一个或更多个密文密钥。

在510,TEE部件可以将一个或更多个密文密钥存储在与TEE部件相关联的TEE中。

在512,TEE部件可以验证包括在系统上的部件。例如,TEE部件可以与该部件通信以交换诸如密文密钥等数据,并验证该部件未被损害、是可信的等。该部件可以包括智能网络接口控制器(NIC)、图形处理单元(GPU)、安全密码处理器、视频卡、数字信号处理器、摄像头、音频编解码器等。

在514,TEE部件可以生成密文密钥。例如,TEE部件可以生成用于TEE部件和部件之间的通信的对称密文密钥。TEE部件可以将密文密钥发送到该部件。

在516,TEE部件可以对一个或更多个密文密钥进行加密以生成第一加密数据。例如,基于在512验证部件,TEE部件可以使用在514生成的密文密钥(例如,对称密文密钥)来加密在508识别的一个或更多个密文密钥以生成第一加密数据。

在518,TEE部件可以将第一加密数据发送到该部件以使用一个或更多个密文密钥。在示例中,可以基于在512验证部件来发送第一加密数据。

在520,TEE部件可以将第二加密数据发送到该部件以用一个或更多个密文密钥处理第二加密数据。例如,在运行时期间,TEE部件可以向部件发送用在514处生成的密文密钥(例如,对称密文密钥)加密的数据。该部件可以用在514处生成的密文密钥(例如,对称密文密钥)解密数据、用该一个或更多个密文密钥加密数据、并另一设备发送数据。

在522,TEE部件可以验证包括在系统上的另一部件和/或将第一加密数据(或其它数据)发送到另一部件以使用包括在第一加密数据中的一个或更多个密文密钥。

图6例示了与可信执行环境(TEE)部件建立安全通信信道并从TEE部件接收密文密钥的示例性处理600。

在602,网络接口控制器(NIC)可以建立与TEE部件的安全通信信道。

在604,NIC可以经由安全通信信道从TEE部件接收密文密钥和/或映射数据。在示例中,密文密钥和/或映射数据可以作为至少部分地基于与安全通信信道相关联的另一密文密钥而加密了的加密数据来接收。在接收了加密数据时,NIC可以对加密数据解密以识别密文密钥和/或映射数据和/或存储密文密钥和/或映射数据。

在606,NIC可以经由安全通信信道从TEE部件接收数据。在示例中,数据可以作为用与对设备的通信相关联的另一密文密钥加密了的加密数据来接收,例如与和服务提供方的通信相关联的会话密文密钥。

在608,NIC可以至少部分地基于映射数据来确定用(在604接收的)密文密钥来加密数据。例如,NIC可以确定数据被指定发送到特定设备,并基于映射数据确定与该特定设备相关联的密文密钥。虽然在使用映射数据的上下文中进行了讨论,但是在某些情况下,NIC可以以在不参照映射数据的情况下确定要使用的密文密钥。

在610,NIC可以至少部分地基于(在604接收的)密文密钥来对数据进行加密以生成加密数据。

在612,NIC可以将加密数据发送到诸如服务提供方、系统等设备。在示例中,数据是利用由设备生成和/或提供的密文密钥而加密的。

结论

尽管已经以特定于结构特征和/或方法动作的语言描述了实施方式,但是应当理解,本公开不必限于所描述的特定特征或动作。相反,特定特征和动作在本文中被作为实施实施方式的例示性形式公开。

相关技术
  • 与可信执行环境的安全通信
  • 基于可信平台控制模块(TPCM)和异构可信执行环境的信创隐私计算系统
技术分类

06120113250129