可信计算集群的集群密钥获取方法及装置与流程

文档序号:20509693发布日期:2020-04-24 18:22阅读:283来源:国知局
可信计算集群的集群密钥获取方法及装置与流程

本说明书一个或多个实施例涉及数据安全领域,尤其涉及可信计算集群的集群密钥获取方法及装置。



背景技术:

可信计算集群是由运行在可信执行环境(trustedexecutionenvironment,tee)中的多个可信计算节点所构成的计算集群。可信计算集群能够提供不同类型的数据计算服务。可信计算节点具有一定的隔离能力,这种隔离能力能够防止其他应用程序包括操作系统或驱动等窥探和篡改可信计算节点的应用程序和数据,进而保证数据计算的安全性。同一个可信计算集群中的不同可信计算节点,可以执行相同的计算任务,进而可以更好地提供同一服务。

因此,希望能有改进的方案,可以更加便利地、安全地将多个可信计算节点形成可信计算集群。



技术实现要素:

本说明书一个或多个实施例描述了可信计算集群的集群密钥获取方法及装置,可以更加便利地、安全地获取可信计算集群的集群密钥。具体的技术方案如下。

第一方面,提供了一种可信计算集群的集群密钥获取方法,通过处于可信执行环境tee中的第一可信计算节点执行,所述方法包括:

获取所述第一可信计算节点的配置信息;其中,所述配置信息包括配置的第一服务,以及用于标识所述第一可信计算节点是否为第一个配置所述第一服务的可信计算节点的标识信息;

当所述标识信息表示所述第一可信计算节点不是第一个配置所述第一服务的可信计算节点时,向服务注册发现平台发送针对所述第一服务的访问请求;

接收所述服务注册发现平台针对所述访问请求返回的响应消息;其中,所述响应消息包括配置了所述第一服务的第二可信计算节点的第一地址信息;

利用所述第一地址信息,与所述第二可信计算节点之间进行远程ra认证,建立ra通道;

通过建立的ra通道,从所述第二可信计算节点中获取集群密钥,作为所述第一可信计算节点和所述第二可信计算节点所在的可信计算集群的集群密钥。

在另一种实施例中,在从所述第二可信计算节点中获取集群密钥之后,该方法还包括:

使用所述第一可信计算节点的第二地址信息向所述服务注册发现平台进行服务注册,以使所述服务注册发现平台将所述第二地址信息加入所述第一服务对应的注册列表中。

在另一种实施例中,所述服务注册发现平台还用于管理包括所述第一可信计算节点在内的多个可信计算节点;

所述获取所述第一可信计算节点的配置信息的步骤,包括:

接收服务注册发现平台发送的所述第一可信计算节点的配置信息;其中,所述配置信息由所述服务注册发现平台依据服务配置请求从多个可信计算节点中选择第一可信计算节点并为其进行配置而得到。

在另一种实施例中,所述服务注册发现平台存储有所述第一可信计算节点的第二地址信息;所述使用所述第一可信计算节点的第二地址信息向所述服务注册发现平台进行服务注册的步骤,包括:

配置所述第一可信计算节点的状态为可服务状态,并使用所述第二地址信息与所述服务注册平台进行通信连接,以使所述服务注册发现平台在通过通信连接确定所述第一可信计算节点处于可服务状态时将所述第二地址信息加入所述第一服务对应的注册列表中。

在另一种实施例中,方法还包括:

当所述标识信息表示所述第一可信计算节点是第一个配置所述第一服务的可信计算节点时:

生成集群密钥;

使用所述第一可信计算节点的第二地址信息向所述服务注册发现平台进行服务注册,以使所述服务注册发现平台将所述第二地址信息加入所述第一服务对应的注册列表中。

在另一种实施例中,在从所述第二可信计算节点中获取集群密钥之后,方法还包括:

利用所述第一可信计算节点的硬件标识,生成对称密钥;

采用所述对称密钥对所述集群密钥进行加密,得到第一加密数据;

将所述第一加密数据存储至本地磁盘空间。

在另一种实施例中,在从所述第二可信计算节点中获取集群密钥之后,方法还包括:

当存在待持久化的隐私数据时,利用所述集群密钥对所述隐私数据进行加密,得到第二加密数据,将所述第二加密数据存储至数据存储平台。

第二方面,提供了一种可信计算集群的集群密钥获取装置,部署在处于tee中的第一可信计算节点中,所述装置包括:

第一获取单元,配置为获取所述第一可信计算节点的配置信息;其中,所述配置信息包括配置的第一服务,以及用于标识所述第一可信计算节点是否为第一个配置所述第一服务的可信计算节点的标识信息;

发送单元,配置为当所述标识信息表示所述第一可信计算节点不是第一个配置所述第一服务的可信计算节点时,向服务注册发现平台发送针对所述第一服务的访问请求;

接收单元,配置为接收所述服务注册发现平台针对所述访问请求返回的响应消息;其中,所述响应消息包括配置了所述第一服务的第二可信计算节点的第一地址信息;

认证单元,配置为利用所述第一地址信息,与所述第二可信计算节点之间进行远程ra认证,建立ra通道;

第二获取单元,配置为通过建立的ra通道,从所述第二可信计算节点中获取集群密钥,作为所述第一可信计算节点和所述第二可信计算节点所在的可信计算集群的集群密钥。

在另一种实施例中,装置还包括第一注册单元,配置为:

在从所述第二可信计算节点中获取集群密钥之后,使用所述第一可信计算节点的第二地址信息向所述服务注册发现平台进行服务注册,以使所述服务注册发现平台将所述第二地址信息加入所述第一服务对应的注册列表中。

在另一种实施例中,所述服务注册发现平台还用于管理包括所述第一可信计算节点在内的多个可信计算节点;

所述第一获取单元,具体配置为:

接收服务注册发现平台发送的所述第一可信计算节点的配置信息;

其中,所述配置信息由所述服务注册发现平台依据服务配置请求从多个可信计算节点中选择第一可信计算节点并为其进行配置而得到。

在另一种实施例中,所述服务注册发现平台存储有所述第一可信计算节点的第二地址信息;所述第一注册单元,使用所述第一可信计算节点的第二地址信息向所述服务注册发现平台进行服务注册时,包括:

配置所述第一可信计算节点的状态为可服务状态,并使用所述第二地址信息与所述服务注册平台进行通信连接,以使所述服务注册发现平台在通过通信连接确定所述第一可信计算节点处于可服务状态时将所述第二地址信息加入所述第一服务对应的注册列表中。

在另一种实施例中,装置还包括:

生成单元,配置为当所述标识信息表示所述第一可信计算节点是第一个配置所述第一服务的可信计算节点时,生成集群密钥;

第二注册单元,配置为当所述标识信息表示所述第一可信计算节点是第一个配置所述第一服务的可信计算节点时,使用所述第一可信计算节点的第二地址信息向所述服务注册发现平台进行服务注册,以使所述服务注册发现平台将所述第二地址信息加入所述第一服务对应的注册列表中。

在另一种实施例中,装置还包括:

第一存储单元,配置为在从所述第二可信计算节点中获取集群密钥之后,利用所述第一可信计算节点的硬件标识,生成对称密钥,采用所述对称密钥对所述集群密钥进行加密,得到第一加密数据,将所述第一加密数据存储至本地磁盘空间。

在另一种实施例中,装置还包括:

第二存储单元,配置为在从所述第二可信计算节点中获取集群密钥之后,当存在待持久化的隐私数据时,利用所述集群密钥对所述隐私数据进行加密,得到第二加密数据,将所述第二加密数据存储至数据存储平台。

第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面提供的任一项方法。

第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面提供的任一项方法。

根据本说明书实施例提供的方法及装置,第一可信计算节点可以通过向服务注册平台发送针对第一服务的访问请求,来获取到同样配置了第一服务的第二可信计算节点的第一地址信息,这样第一可信计算节点便可以通过第一地址信息与第二可信计算节点进行通信,通过更安全的ra通道获取第二可信计算节点中的集群密钥,无需通过配置第三方设备,而使得第三方设备利用自身的协调功能使第一可信计算节点从第二可信计算节点中获取集群密钥,因此能够更加便利地、安全地获取可信计算集群的集群密钥。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书披露的一个实施例的实施场景示意图;

图2为一个实施例中可信计算集群的集群密钥获取方法的流程示意图;

图3为一个实施例中提供的针对配置信息获取方式的流程示意图;

图4为一个实施例中提供的利用集群密钥进行数据持久化的示意图;

图5为一个实施例中可信计算集群的集群密钥获取装置的示意性框图。

具体实施方式

下面结合附图,对本说明书提供的方案进行描述。

图1为本说明书披露的一个实施例的实施场景示意图。该实施场景包括服务注册发现平台100和节点1、节点2、节点3等多个节点。其中,服务注册发现平台100包括能够实施服务注册发现机制的计算机、服务器、分布式设备等。

节点包括处于可信执行环境(trustedexecutionenvironment,tee)中的可信计算节点。处于可信执行环境中的节点,可以理解为,应用了tee技术的节点。可信计算节点又称为tee节点或可信计算单元。tee节点可以实现在实体计算机中,其隔离能力能够防止其他应用程序窥探和篡改可信计算节点的应用程序和数据,保证计算的安全性。tee节点可以是可信的计算围圈(enclave),且可以采用软件保护扩展(softwareguardextension,sgx)或信任域(trustzone)等技术来实现。例如,根据sgx技术,通过提供一系列cpu指令码,允许用户代码创建具有高访问权限的私有内存区域而形成计算围圈。其他应用程序,包括操作系统os、bios系统、虚拟机系统等,均不能访问围圈中的数据,也就不能窥探和篡改其中应用程序的状态和数据。不同的tee节点能够提供不同的服务,例如,订单服务、库存服务、退换货服务、搜索服务、推荐服务等。tee节点可以提供与配置的服务对应的计算任务,以提供配置的服务。

tee节点在配置服务以后,可以向服务注册发现平台100进行服务注册。服务注册发现平台100可以管理配置的服务,并保存配置服务的tee节点的地址信息。该地址信息包括端口和互联网协议地址(internetprotocol,ip)等信息。这样,当一个服务需要访问另一个服务时,可以通过服务注册发现平台100获取到配置该服务的tee节点的地址信息,进而通过获取的地址信息访问对应的服务。

例如,在图1中,节点1、节点2和节点3分别配置了服务a、服务b和服务b,并且这三个节点均向服务注册发现平台100进行了服务注册,服务注册发现平台100保存有这三个服务对应的节点的地址信息。当服务a需要访问服务b时,节点1首先通过服务发现机制从服务注册发现平台100中获取到节点2的地址信息,再利用该地址信息对节点2中的服务b进行服务调用。

在实际的应用场景中,存在为已经配置的服务增加副本节点的需求,以及根据需要继续增加服务节点的需求。这样,可以针对同一服务配置多个节点,以便实现负载均衡或者节点故障时的持续性服务提供,进而更好地为用户提供服务。

当某服务已经配置在一个tee节点中时,该tee节点可以生成集群密钥,以便为后续形成可信计算集群做准备。如果再为该服务配置一个副本节点a,则配置了同样服务的副本节点a与该tee节点在同时具备集群密钥时即形成了可信计算集群。在此之后,如果继续为该服务配置副本节点b,则在副本节点b获取该集群密钥时,认为该副本节点b加入了该可信计算集群。另一种可能的情况是,在很短的时间段内(同时)为该服务配置副本节点a和副本节点b,则副本节点a和副本节点b中首先获取集群密钥的节点,认为与该tee节点形成了可信计算集群,后获取集群密钥的节点,认为加入了已经形成的可信计算集群。下述集群密钥获取方法,包含了上述的形成可信计算集群和加入可信计算集群这两种情况。

图2为一个实施例提供的可信计算集群的集群密钥获取方法的流程示意图,其中包括:服务注册发现平台100、tee节点200和tee节点300。tee节点200和tee节点300的地址信息分别采用add2和add3表示,并且tee节点200为首先配置服务a的节点,tee节点300为配置服务a的副本节点。本实施例集群密钥的获取方法可以通过以下步骤s210~s280说明。

步骤s210,tee节点200获取针对自身的配置信息,该配置信息包括配置的第一服务(以下采用服务a表示第一服务),以及表示tee节点200是第一个配置服务a的可信计算节点的标识信息。

配置信息中的第一服务可以包括第一服务的镜像文件,还可以包括第一服务的虚拟地址。tee节点在接收到第一服务的镜像文件时,可以利用该镜像文件来配置该第一服务,例如获取该镜像文件中第一服务的程序代码,并将该程序代码加载到节点内存的相应位置。

该标识信息可以表示针对节点的配置模式,该配置模式可以包括初始节点模式或副本节点模式等。当tee节点是第一个配置服务a的可信计算节点时,认为该tee节点以初始节点模式启动。当tee节点不是第一个配置服务a的可信计算节点时,认为该tee节点以副本节点模式启动。该标识信息可以采用设定的字符表示,例如,采用1和0分别表示上述两种模式,或者采用a和b分别表示上述两种模式。

步骤s220,tee节点200生成集群密钥。该集群密钥可以以对称密钥或非对称密钥的形式来实现。

步骤s230,tee节点200使用tee节点200的地址信息add2向服务注册发现平台100进行服务注册。服务注册发现平台100在tee节点200完成服务注册之后将地址信息add2加入服务a对应的注册列表中。

其中,注册列表中包括服务对应的节点的地址信息。服务注册发现平台也可以采用注册列表之外的其他方式存储服务对应的节点的地址信息。

由于tee节点200在配置了服务a且生成集群密钥之后向服务注册发现平台100进行服务注册,因此认为注册列表中服务a对应的tee节点200已经具有集群密钥。

步骤s240,tee节点300获取针对自身的配置信息,该配置信息包括配置的服务a,以及表示tee节点300不是第一个配置服务a的可信计算节点的标识信息。

tee节点300在接收到服务a的镜像文件时,可以利用该镜像文件来配置该服务a,例如获取该镜像文件中服务a的程序代码,并将该程序代码加载到节点内存的相应位置。

tee节点300在获取配置信息并配置服务a之前,已经存在tee节点200配置了服务a。为了能够更好地提供服务,tee节点300可以继续执行后续的步骤,以获取到tee节点200生成的集群密钥,这样便可以与tee节点200形成可信计算集群,或者加入tee节点200所在的可信计算集群。

步骤s250,tee节点300向服务注册发现平台100发送针对服务a的访问请求。步骤s260,tee节点300接收服务注册发现平台100返回的响应消息。

服务注册发现平台100针对该访问请求向tee节点300返回响应消息。响应消息包括配置了服务a的tee节点200的地址信息add2。具体的,服务注册发现平台100在获取到该访问请求时,可以从注册列表中获取服务a对应的tee节点的地址信息,即add2。注册列表中服务a对应的tee节点200具有集群密钥。当注册列表中服务a对应的tee节点包含多个时,可以从中选择一个tee节点,将该选择的tee节点的地址信息添加至响应消息中。

访问请求可以包含服务a的虚拟地址。服务注册发现平台100可以依据该虚拟地址,从注册列表中获取服务a对应的tee节点的地址信息。具体的,服务注册发现平台100可以通过集群实现,该集群中包含域名系统(domainnamesystem,dns)解析服务器。该dns解析服务器可以依据该虚拟地址,从注册列表中获取服务a对应的tee节点的地址信息。

服务注册发现平台100可以接收配置了服务b的tee节点发送的针对服务a的访问请求,并返回服务a对应的tee节点的地址信息。此为服务b对服务a的访问。在本实施例中,服务注册发现平台100可以接收配置了服务a的tee节点(但未开始提供服务)发送的针对服务a的访问请求,并返回服务a对应的tee节点的地址信息。此为服务a对服务a的访问。利用该服务a对服务a的访问,能够使得还没有集群密钥的tee节点获取到具有集群密钥的tee节点的地址信息。

步骤s270,tee节点300利用地址信息add2,与tee节点200之间进行远程ra认证,建立ra通道。tee节点300可以从响应消息中获取地址信息add2。

为了使得集群密钥的传输过程更加安全可信,tee节点之间在传输密钥时可以进行可信认证,认证通过之后再同步集群密钥。其中,可信认证包括确认对方运行在tee环境中,以及确认对方运行同样的计算任务,即具有同样的代码哈希等。tee节点中运行的计算任务对应的程序代码,可以称为代码哈希。运行的计算任务即服务a对应的计算任务。代码哈希可以用于标识节点中运行的计算任务。配置了同一服务的可信计算节点,其代码哈希相同。

可信认证可以采用远程认证(remoteattestation,ra)。在进行ra认证时,tee节点200和tee节点300之间可以进行双向ra认证;也可以是,tee节点200对tee节点300进行ra认证,或者tee节点300对tee节点200进行ra认证。下面以tee节点200对tee节点300进行ra认证为例对ra认证进行说明,根据下述说明,可以在不做出创造性劳动的情况下得到tee节点300对tee节点200进行ra认证的具体实施方式。

tee节点200对tee节点300进行上述ra认证时,可以向tee节点300发送ra认证请求,tee节点300在接收到tee节点200发送的ra认证请求时向tee节点200返回认证信息,tee节点200利用该认证信息确认ra认证是否通过。上述过程可以至少包括以下实施方式。方式一,tee节点300发送的认证信息为报告文件。tee节点200在接收到tee节点300发送的报告文件时,可以将该报告文件发送至第三方认证机构,并获取第三方认证机构针对该报告文件确定的认证结果,利用该认证结果确认ra认证是否通过。方式二,tee节点300发送的认证信息即为认证结果。即tee节点300直接将报告文件发送至第三方认证机构,并获取第三方认证机构针对该报告文件确定的认证结果,将获取的认证结果作为认证信息发送至tee节点200。

其中,上述报告文件用于描述可信计算节点自身的配置状况和运行状况。具体的,该报告文件至少包括:可信计算节点的配置状况信息、运行状况信息、运行的计算任务的代码哈希以及签名信息等。其中,代码哈希可以唯一地标识运行的计算任务,签名信息可以保证报告文件真实可靠,识别伪造和篡改的情况。

第三方认证机构是可信的、具有认证能力的权威认证机构。并且,在各个可信计算节点投入使用之前,可以向该第三方认证机构进行注册。因此,该第三方认证机构保存有各个可信计算节点的配置状况信息、计算任务的代码哈希等信息,根据这些信息可以对报告文件的可信性和安全性进行认证。

例如,当tee节点是通过intelsgx实现的可信围圈(enclave)时,第三方认证机构可以为intel认证服务器(attestationservice)。

tee节点之间的ra认证,能够尽可能避免tee节点接收来自恶意节点的错误集群密钥,提高获取集群密钥时的安全性。

在上述认证结果表明认证通过之后,双方可以建立ra通道。

步骤s280,tee节点300通过建立的ra通道,从tee节点200中获取集群密钥,作为tee节点200和tee节点300所在的可信计算集群的集群密钥。在通过建立的ra通道获取到安全、正确的集群密钥时,tee节点300也能够为其他加入该可信计算集群的tee节点提供安全、正确的集群密钥,尽可能地保持集群密钥的正确传递。

在tee节点300获取到集群密钥之后,tee节点300可以使用自身的地址信息add3向服务注册发现平台100进行服务注册。服务注册发现平台100将地址信息add3加入服务a对应的注册列表中。因此,服务a对应的注册列表中的tee节点均具有该集群密钥。

针对以副本节点模式启动的tee节点300,在该tee节点300获取配置信息之后,并不直接向服务注册发现平台100进行服务注册,而是请求服务a对应的节点地址信息。在获取到tee节点200的地址信息add2之后,tee节点300利用该地址信息add2与tee节点200进行ra认证,建立ra通道,通过建立的ra通道,从tee节点200中获取集群密钥。在获取集群密钥之后,tee节点300可以执行向服务注册发现平台100进行服务注册,以使得服务注册发现平台100将tee节点300的地址信息加入服务a对应的注册列表中。

因此,针对处于tee中的第一可信计算节点,该第一可信计算节点在获取第一可信计算节点的配置信息之后,当配置信息中的标识信息表示第一可信计算节点不是第一个配置第一服务的可信计算节点时,向服务注册发现平台发送针对第一服务的访问请求,接收服务注册发现平台针对该访问请求返回的响应消息;利用响应消息中的第一地址信息,与第二可信计算节点之间进行远程ra认证,建立ra通道;通过建立的ra通道,从第二可信计算节点中获取集群密钥,作为第一可信计算节点和第二可信计算节点所在的可信计算集群的集群密钥。第一可信计算节点可以为上例中的tee节点200,也可以为tee节点300。

第一可信计算节点在从第二可信计算节点中获取集群密钥之后,还可以使用第一可信计算节点的第二地址信息向服务注册发现平台进行服务注册,以使服务注册发现平台将第二地址信息加入第一服务对应的注册列表中。

通过上述实施例的说明可知,第一可信计算节点可以通过向服务注册平台发送针对第一服务的访问请求,来获取到同样配置了第一服务的第二可信计算节点的第一地址信息,这样第一可信计算节点便可以通过第一地址信息与第二可信计算节点进行通信,通过更安全的ra通道获取第二可信计算节点中的集群密钥,无需通过配置第三方设备,而使得第三方设备利用自身的协调功能使第一可信计算节点从第二可信计算节点中获取集群密钥,因此能够更加便利地、安全地获取可信计算集群的集群密钥。

图3为一个实施例中提供的针对配置信息获取方式的流程示意图。图3沿用图2中多个对象的标记符号。服务注册发现平台100管理包括tee节点200和tee节点300在内的多个可信计算节点,并存储了tee节点200和tee节点300的地址信息add2和add3。服务注册发现平台100可以接收用户发送的服务配置请求。该服务配置请求包括待配置服务、待配置服务的节点数量以及节点的标识信息。例如,在服务配置请求1中,待配置服务包括服务a,待配置服务a的节点数量为1,标识信息为1(表示初始节点模式)。服务注册发现平台100可以依据该服务配置请求1,从管理的多个tee节点中选择1个tee节点(即tee节点200),并确定针对tee节点200的配置信息1,该配置信息1包括服务a的镜像文件以及标识信息1。服务注册发现平台100向tee节点200发送该配置信息1,tee节点200接收服务注册发现平台100发送的该配置信息1。

在此之后,服务注册发现平台100可以接收用户发送的服务配置请求2。在服务配置请求2中,待配置服务包括服务a,待配置服务a的节点数量为1,标识信息为2(表示副本节点模式)。服务注册发现平台100可以依据该服务配置请求2,从管理的多个tee节点中选择1个tee节点(即tee节点300),并确定针对tee节点300的配置信息2,该配置信息2包括服务a的镜像文件、服务a的虚拟地址以及标识信息2。服务注册发现平台100向tee节点300发送该配置信息2,tee节点300可以接收服务注册发现平台100发送的该配置信息2。

上例中,服务配置请求1和服务配置请求2可以通过一个服务配置请求来实现。例如服务配置请求中,待配置服务包括服务a,待配置服务a的节点数量为2,标识信息为1和2。服务注册发现平台100可以依据该服务配置请求,选择2个tee节点,并确定tee节点各自的配置信息。本说明书并不限定服务配置请求的实现方式。

根据上例可知,服务注册发现平台还可以用于管理包括第一可信计算节点在内的多个可信计算节点,并存储多个可信计算节点的地址信息。第一可信计算节点在获取配置信息时,可以接收服务注册发现平台发送的第一可信计算节点的配置信息。第一可信计算节点可以为上例中的tee节点200,也可以为tee节点300。

其中,配置信息由服务注册发现平台依据服务配置请求从多个可信计算节点中选择第一可信计算节点并为其进行配置而得到。

本实施例中,服务注册发现平台在实现图2所示实施例所述的功能基础上,还可以管理多个可信计算节点,并依据服务配置信息向可信计算节点配置服务,能够节省硬件设备,简化处理流程,提高处理效率。

在另一实施例中,在服务注册发现平台存储有第一可信计算节点的第二地址信息的情况下,第一可信计算节点使用自身的第二地址信息向服务注册发现平台进行服务注册时,可以配置第一可信计算节点的状态为可服务状态,并使用第二地址信息与服务注册平台进行通信连接。服务注册发现平台在通过通信连接确定第一可信计算节点处于可服务状态时,将第二地址信息加入第一服务对应的注册列表中。服务注册发现平台存储有第一可信计算节点的第二地址信息,因此能够尽可能复用服务注册发现平台的功能,减少tee节点与服务注册发现平台之间地址信息的传送。

其中,上述通信连接可以包括基于传输控制协议(transmissioncontrolprotocol,tcp)的连接。第一可信计算节点在配置自身的状态为可服务状态时,可以通过配置自身的服务a对应的端口状态为可服务状态,使得自身的状态为可服务状态。当端口状态为可服务状态时,第一可信计算节点可以通过该端口接收和发送信息。

下面沿用图3所示示意图对本实施例进行说明。使用tee节点300表示第一可信计算节点。tee节点300使用自身的地址信息add3向服务注册发现平台100进行服务注册时,可以包括配置tee节点300中与服务a对应的端口为可服务状态。服务注册发现平台100可以在向tee节点300发送配置信息之后,对tee节点300的端口进行探活。具体的,服务注册发现平台100可以利用地址信息add3尝试与tee节点300建立tcp连接。在该tcp连接成功时,服务注册发现平台100可以确定tee节点300处于可服务状态。或者,服务注册发现平台100可以在该tcp连接成功之后,向tee节点300发送包含预设信息(例如为“是否可以?”)的请求,当接收到tee节点300返回的包含指定内容(例如为“可以”)的消息时,确定tee节点300处于可服务状态。

本说明书提供的集群密钥获取方法,能够保证可信计算集群的集群密钥有冗余,当节点故障时,还可以启动新的副本节点来运行同样的计算任务,因此提高了服务的持续性。

如果可信计算集群中的多个可信计算节点位于同一个机房中,一旦该机房发生断电事故,多个可信计算节点中的集群密钥可能都会丢失,这可能导致以该集群密钥加密的数据无法被读取。

为了避免断电造成的集群密钥丢失,在另一实施例中,第一可信计算节点在从第二可信计算节点中获取集群密钥之后,还可以利用第一可信计算节点的硬件标识,生成对称密钥,采用对称密钥对集群密钥进行加密,得到第一加密数据,将第一加密数据存储至本地磁盘空间。

其中,硬件标识可以为cpu或内存等硬件的序列号。生成对称密钥时,可以直接将该硬件标识作为对称密钥,也可以在该硬件标识的基础上叠加随机数,得到对称密钥。

本地磁盘空间可以包括第一可信计算节点的cpu所在的物理机的硬盘。这样,即便多个可信计算节点所在的机房发生断电事故,可信计算节点也能够从自身所在的本地磁盘空间中读取第一加密数据,并依据硬件标识生成对称密钥,利用生成的对称密钥对第一加密数据解密,得到集群密钥,从而提高了集群密钥的安全性。

可信计算集群中的多个可信计算节点可以运行相同的计算任务,向客户端等提供同一服务。可信计算节点之间可以传输某些节点内部的隐私数据。同时,在处理客户端对服务的访问请求时,可信计算节点也可能产生隐私数据。上述隐私数据可以在进行加密处理后存储至数据存储平台。存储至数据存储平台的隐私数据,可以供可信计算集群中多个可信计算节点读取。

存在于可信计算节点中的隐私数据又称为瞬时数据,存在于可信计算节点中且等待存储至数据存储平台的瞬时数据,可以称为待持久化数据。可信计算节点中的瞬时数据可以包括程序数据、服务状态数据等,通常可以存储在可信计算节点的内存中,这种数据是没有永久保存的数据,容易丢失。将非持久保存的瞬时数据转换为持久保存的数据的过程,称为数据的持久化。将待持久化数据存储在数据存储平台内,是一种数据的持久化过程,并且存储在数据存储平台中的数据可以称为已持久化数据。

第一可信计算节点在从第二可信计算节点中获取集群密钥之后,还可以在存在待持久化的隐私数据时,利用该集群密钥对隐私数据进行加密,得到第二加密数据,将第二加密数据存储至数据存储平台。

数据存储平台可以包括分布式文件系统(hadoopdistributedfilesystem,hdfs)、对象存储服务(objectstorageservice,oss)和mysql数据库中的至少一个。hdfs为分布式的高可用存储平台,其分布式的存储能够提高所存储的隐私数据的安全性和可靠性。

例如,参见图4所示的利用集群密钥进行数据持久化的流程示意图,其中的tee节点200和tee节点300为同一可信计算集群中的节点,tee节点200使用集群密钥state-key对隐私数据a进行加密,得到加密数据a1。tee节点300使用集群密钥state-key对隐私数据b进行加密,得到加密数据b1。当加密数据a1和加密数据b1均存储至数据存储平台400之后,tee节点200和tee节点300可以从数据存储平台400中获取隐私数据a或隐私数据b。这样,提高了数据的可读取性。

集群密钥可以为对称密钥或非对称密钥。当待持久化的隐私数据包括用于在可信计算节点内部之间进行传输的第一隐私数据时,可以使用对称的集群密钥对第一隐私数据进行加密。当待持久化的隐私数据包括与客户端的服务访问相关的第二隐私数据时,可以使用非对称的集群密钥中的集群公钥对第二隐私数据进行加密,使用集群密钥中的集群私钥对加密后的第二隐私数据进行解密。客户端向可信计算节点发送的数据也可以使用集群公钥加密。针对采用上述方式加密的隐私数据,同一可信计算集群中的多个可信计算节点都可以从数据存储平台中对其进行读取,进而能够提高数据的安全性以及可读取性。

上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。

图5为一个实施例提供的可信计算集群的集群密钥获取装置的一种示意性框图。该装置实施例与图2所示方法实施例相对应。该装置500部署在处于tee中的第一可信计算节点中,装置500包括:

第一获取单元510,配置为获取所述第一可信计算节点的配置信息;其中,所述配置信息包括配置的第一服务,以及用于标识所述第一可信计算节点是否为第一个配置所述第一服务的可信计算节点的标识信息;

发送单元520,配置为当所述标识信息表示所述第一可信计算节点不是第一个配置所述第一服务的可信计算节点时,向服务注册发现平台发送针对所述第一服务的访问请求;

接收单元530,配置为接收所述服务注册发现平台针对所述访问请求返回的响应消息;其中,所述响应消息包括配置了所述第一服务的第二可信计算节点的第一地址信息;

认证单元540,配置为利用所述第一地址信息,与所述第二可信计算节点之间进行远程ra认证,建立ra通道;

第二获取单元550,配置为通过建立的ra通道,从所述第二可信计算节点中获取集群密钥,作为所述第一可信计算节点和所述第二可信计算节点所在的可信计算集群的集群密钥。

在一种实施方式中,装置500还包括第一注册单元(图中未示出),配置为:

在从所述第二可信计算节点中获取集群密钥之后,使用所述第一可信计算节点的第二地址信息向所述服务注册发现平台进行服务注册,以使所述服务注册发现平台将所述第二地址信息加入所述第一服务对应的注册列表中。

在一种实施方式中,所述服务注册发现平台还用于管理包括所述第一可信计算节点在内的多个可信计算节点;

所述第一获取单元510,具体配置为:

接收服务注册发现平台发送的所述第一可信计算节点的配置信息;

其中,所述配置信息由服务注册发现平台依据服务配置请求从多个可信计算节点中选择第一可信计算节点并为其进行配置而得到。

在一种实施方式中,所述服务注册发现平台存储有所述第一可信计算节点的第二地址信息;所述第一注册单元,使用所述第一可信计算节点的第二地址信息向所述服务注册发现平台进行服务注册时,包括:

配置所述第一可信计算节点的状态为可服务状态,并使用所述第二地址信息与所述服务注册平台进行通信连接,以使所述服务注册发现平台在通过通信连接确定所述第一可信计算节点处于可服务状态时将所述第二地址信息加入所述第一服务对应的注册列表中。

在一种实施方式中,装置500还包括:

生成单元(图中未示出),配置为当所述标识信息表示所述第一可信计算节点是第一个配置所述第一服务的可信计算节点时,生成集群密钥;

第二注册单元(图中未示出),配置为当所述标识信息表示所述第一可信计算节点是第一个配置所述第一服务的可信计算节点时,使用所述第一可信计算节点的第二地址信息向所述服务注册发现平台进行服务注册,以使所述服务注册发现平台将所述第二地址信息加入所述第一服务对应的注册列表中。

在一种实施方式中,装置500还包括:

第一存储单元(图中未示出),配置为在从所述第二可信计算节点中获取集群密钥之后,利用所述第一可信计算节点的硬件标识,生成对称密钥,采用所述对称密钥对所述集群密钥进行加密,得到第一加密数据,将所述第一加密数据存储至本地磁盘空间。

在一种实施方式中,装置500还包括:

第二存储单元(图中未示出),配置为在从所述第二可信计算节点中获取集群密钥之后,当存在待持久化的隐私数据时,利用所述集群密钥对所述隐私数据进行加密,得到第二加密数据,将所述第二加密数据存储至数据存储平台。

上述装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。

本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图2到图4所描述的方法。

本说明书还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图2到图4所描述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1