发明内容
本说明书一个或多个实施例描述了建立和重建可信通道的方法及装置,从而使得用户可以与整个可信计算集群,简单又安全地建立可信通道。
根据第一方面,提供了一种形成可信计算集群的方法,所述方法通过第一可信计算单元执行,包括:
获取第二可信计算单元的第二单元报告,所述第二单元报告由所述第二可信计算单元生成,包括所述第二可信计算单元的签名信息;
将所述第二单元报告发送至第三方认证机构,以获得第二认证结果;
向所述第二可信计算单元提供第一单元报告,所述第一单元报告包括所述第一可信计算单元的签名信息,以供所述第二可信计算单元获得针对第一可信计算单元的第一认证结果;
在所述第一认证结果和第二认证结果均为认证通过时,与所述第二可信计算单元进行秘钥传输通信,以使得所述第一可信计算单元和第二可信计算单元维护共同的集群秘钥。
在一个实施例中,第一可信计算单元和第二可信计算单元均实现为可信围圈enclave。
根据一种实施方式,上述第二单元报告还包括,所述第二可信计算单元的硬件和软件信息,以及运行时环境信息。
在一个实施例中,所述第二可信计算单元的签名信息依赖于所述第二可信计算单元的硬件秘钥。
在一种实施方式中,第一可信计算单元被指定为主单元,第二可信计算单元被指定为从单元。在这样的情况下,第一可信计算单元与第二可信计算单元的秘钥传输通信包括,将第一可信计算单元维护的第一秘钥作为集群秘钥,传输给第二可信计算单元。
进一步地,在一个实施例中,在第一可信计算单元未加入已有可信计算集群的情况下,上述第一可信计算单元维护的第一秘钥可以是,第一可信计算单元生成的初始集群秘钥。
在另一实施例中,第一可信计算单元已加入已有可信计算集群,在这样的情况下,上述第一可信计算单元维护的第一秘钥为所述已有可信计算集群的集群秘钥。
根据一个实施例,第二可信计算单元维护有第二秘钥对,其中包括第二公钥和第二私钥;在这样的情况下,第一可信计算单元通过以下方式将其第一秘钥传输给所述第二可信计算单元:
获取所述第二公钥;
利用所述第二公钥对所述第一秘钥进行加密,得到加密秘钥;
将所述加密秘钥传输给所述第二可信计算单元。
在另一种实施方式中,第一可信计算单元被指定为从单元,第二可信计算单元被指定为主单元。在这样的情况下,第一可信计算单元与第二可信计算单元的秘钥传输通信包括,第一可信计算单元从第二可信计算单元获取第二秘钥作为集群秘钥。
进一步地,根据一个实施例,第一可信计算单元维护有第一秘钥对,其中包括第一公钥和第一私钥;在这样的情况下,第一可信计算单元通过以下方式获取第二秘钥:
将所述第一公钥提供给所述第二可信计算单元;
从所述第二可信计算单元接收到加密秘钥,该加密秘钥是利用所述第一公钥对第二秘钥加密得到;
利用所述第一私钥对所述加密秘钥进行解密,得到所述第二秘钥。
在一个实施例中,第一可信计算单元维护有生成的初始集群秘钥;在获取上述第二秘钥后,第一可信计算单元用获取的第二秘钥替换所述初始集群秘钥。
在又一种实施方式中,第一可信计算单元和第二可信计算单元为对等单元;在这样的情况下,第一可信计算单元与第二可信计算单元的秘钥传输通信包括,与第二可信计算单元进行秘钥协商,将协商的秘钥作为所述集群秘钥。
进一步地,在一个实施例中,第一可信计算单元维护有第一秘钥对,其中包括第一公钥和第一私钥,第二可信计算单元维护有第二秘钥对,其中包括第二公钥和第二私钥;与第二可信计算单元进行秘钥协商包括:
从所述第二可信计算单元获取所述第二公钥;
基于所述第一公钥,第一私钥和所述第二公钥,生成协商秘钥。
根据第二方面,提供了一种用于形成可信计算集群的装置,所述装置部署在第一可信计算单元中,包括:
报告获取模块,配置为获取第二可信计算单元的第二单元报告,所述第二单元报告由所述第二可信计算单元生成,包括所述第二可信计算单元的签名信息;
认证模块,配置为将所述第二单元报告发送至第三方认证机构,以获得第二认证结果;
报告提供模块,配置为向所述第二可信计算单元提供第一单元报告,所述第一单元报告包括所述第一可信计算单元的签名信息,以供所述第二可信计算单元获得针对第一可信计算单元的第一认证结果;
秘钥传输模块,配置为在所述第一认证结果和第二认证结果均为认证通过时,与所述第二可信计算单元进行秘钥传输通信,以使得所述第一可信计算单元和第二可信计算单元维护共同的集群秘钥。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,将多个可信计算单元形成为可信计算集群。在形成可信计算集群的过程中,两个可信计算单元必须首先进行双向的彼此身份认证,在双方认证均通过的情况下,才进行秘钥传输,使得双方拥有相同的秘钥作为集群秘钥。如此,确保加入到可信计算集群的各个计算单元都是可信计算单元,建立起可信计算集群。并且,进一步确保集群秘钥不会泄露,从而确保建立起来的集群是更可信的计算集群。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
如前所述,根据传统方案,当用户设备需要与多个可信计算单元进行通信时,用户设备需要与这些可信计算单元分别单独建立可信通道,这个过程对于用户设备来说,复杂而繁琐。
为了简化用户设备与多个可信计算单元之间的通信方式,根据一种实施方案构思,提供一个可信路由单元作为中转。具体地,当用户设备希望与可信计算单元1和单元2均进行可信通信时,用户设备仅需要与可信路由单元建立可信通道,例如称为可信通道A。之后,可信路由单元分别与可信计算单元1和2建立内部可信通道B和可信通道C。可信路由单元由于同时建立有可信通道A,B,C,因此,它持有用于这3个可信通道的秘钥Ka,Kb,Kc。
当用户设备通过可信通道A与可信路由单元进行数据传输时,用户设备用Ka对数据进行加密。可信路由单元接收到用户设备传输的数据后,首先利用维持的秘钥Ka,对数据解密,得到原数据,然后再分别使用秘钥Kb,Kc,对原始数据进行加密,将如此加密的数据,分别通过可信通道B和可信通道C,传输给可信计算单元1和可信计算单元2。如此,用户设备无需分别与多个可信计算单元单独建立可信通道,只需与可信路由单元建立可信通道,经由可信路由单元的中转,而连接到多个可信计算单元。
以上的方案对可信路由单元的处理性能和稳定性均有很高的要求。
另一方面,根据另一种构思,在本说明书一种实施方式中,将多个可信计算单元形成为可信计算集群,可信计算集群对外表现为一个整体,使得用户设备可以对该可信计算集群进行统一接入,来简化用户设备的操作。
为了达到这样的目的,根据本说明书中的实施例,要求可信计算集群中的各个可信计算单元互相验证对方的身份,并且所有可信计算单元维护共同的集群秘钥。集群秘钥可以用于在集群内部传播数据时进行加密,如此只有本集群的可信计算单元才可以获得内部传播的数据。
图1示出根据本说明书一个实施例的实施场景示意图。如图1所示,根据一个实施例,将可信计算单元A,B,C,D,E形成为一个可信计算集群RC。可信计算单元A,B,C,D,E的每一个均维护一个相同的秘钥Ec,该秘钥即作为集群RC的集群秘钥。可以理解,尽管图1示出了5个可信计算单元,但是可信计算集群中可以包含任意数量的多个可信计算单元。
根据一种实施方式,通过集群管理器来管理和记录各个可信计算集群的建立。在一个实施例中,集群管理器维护有集群信息表,其中记录有各个集群中包含的各个可信计算单元的信息。通常来说,在多个可信计算单元成功构建成一个可信计算集群之后,会向集群管理器进行注册,通知集群管理器该可信计算集群的建立。如此,集群管理器根据接收到的注册信息,维护和更新上述集群信息表。
对于形成的可信计算集群,用户设备U可以与其中的任意可信计算单元建立可信通道,从而实现与整个可信计算集群建立可信通道。
下面描述上述可信计算集群的形成过程。
根据本说明书的一个或多个实施例,为了形成可信计算集群,多个可信计算单元之间需要互相验证对方的身份,并传播集群秘钥。这个过程可以拆解为,多次执行的、两个可信计算单元之间验证身份并统一秘钥的基本过程。下面就描述该基本过程的执行方式。
图2示出根据一个实施例的将两个可信计算单元形成为可信计算集群的过程示意图。如图2所示,两个可信计算单元分别记为,可信计算单元A和可信计算单元B。在一些情况下,又称为第一可信计算单元和第二可信计算单元。然而,需要理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。
第一/第二可信计算单元可以是具有一定隔离能力从而保证计算安全性的计算模块或计算设备。在一个实施例中,第一/第二可信计算单元实现为可信围圈enclave;更具体的,可信围圈enclave例如采用SGX或Trust Zone等技术而实现。在其他实施例中,第一/第二可信计算单元可以通过其他形式实现,例如采用了安全隔离手段的虚拟机或者运行实例。
为了形成可信计算集群,第一和第二可信计算单元首先要互相验证对方的身份。如图2所示,在步骤S21,第一可信计算单元获取第二可信计算单元生成的单元报告,称为第二单元报告;在步骤S22,第一可信计算单元将所述第二单元报告发送至第三方认证机构,以获得第二认证结果。
需要理解,上述单元报告是可信计算单元产生的、用于描述自身配置状况和运行状况的报告文件。在一个实施例中,单元报告包括对应可信计算单元的软件和硬件信息,例如其上安装的软件的属性信息,和硬件的描述信息。更具体的,软件的属性信息例如包括,各个软件的名称和版本等,硬件的描述信息例如包括,各种硬件的指标,比如CPU主频,内存容量等等。
在一个实施例中,单元报告还包括对应可信计算单元的运行时环境信息,从而更全面地描述当前的运行状况。
在一个实施例中,单元报告还可以包括其他用户自定义的数据,以根据需要描述和定义可信计算单元的其他信息。
另一方面,单元报告包括对应可信计算单元的签名信息,以此保证单元报告的真实可靠,防止伪造和篡改。签名信息可以通过各种签名方式得到,例如哈希算法,加密算法等。
在一个具体实施例中,签名信息依赖于对应可信计算单元的硬件秘钥,该硬件秘钥唯一对应于实体硬件,如此确保单元报告中的签名信息确实是由基于该硬件的可信计算单元产生。更具体的,在一个例子中,可信计算单元所基于的某个硬件提供一个硬件根秘钥(root key),可以基于该硬件根秘钥派生出加密秘钥,利用该加密秘钥执行一定的加密算法,得到上述签名信息。
根据以上对单元报告的描述,第二单元报告由第二可信计算单元生成,其中至少包括第二可信计算单元的签名信息,以及第二可信计算单元的软件和硬件信息。
需要说明的是,在本说明书的实施场景中,假定各个可信计算单元在投入使用之前,会向第三方认证机构进行注册,因此,该第三方认证结构登记有各个可信计算单元的配置状况。
例如,在上述第一/第二可信计算单元均为通过Intel SGX实现的可信围圈enclave的情况下,该第三方认证机构即为Intel认证服务器(Attesation Service)。在可信计算单元通过其他方式实现的情况下,该第三方认证机构可以是生产、部署对应可信计算单元的机构或其关联机构。
由于第三方认证机构的可信认证能力,在步骤S22,第一可信计算单元将所述第二单元报告发送至第三方认证机构进行认证。
在一个实施例中,第一可信计算单元通过与第三方认证机构约定的通信协议,将第二单元报告发送至第三方认证机构。例如,第一可信计算单元可以提供客户端TLS(传输层安全性)证书,并通过MTLS(相互传输层安全性)协议,向第三方认证机构发送第二单元报告。
在接收到第二单元报告后,第三方认证机构可以基于该单元报告,对第二可信计算单元的安全性和可信性进行认证。具体地,第三方认证机构可以根据第二单元报告中的签名信息,认证该单元报告是否真实无篡改;根据维护的各个可信计算单元预先注册的信息,判断是否与该第二单元报告中的软件和硬件信息一致,进而判断该第二可信计算单元是否确实可信。
然后,第三方认证机构将针对第二单元报告的认证结果,在此称为第二认证结果,返回给第一可信计算单元。该第二认证结果可以是认证通过或不通过的结果,也可以包含更多说明信息,例如认证不通过情况下的原因等等。
另一方面,在步骤S23,第一可信计算单元也将自身的单元报告,即第一单元报告,提供给第二可信计算单元;然后在步骤S24,由第二可信计算单元将获得的第一单元报告也发送至第三方认证机构进行认证。
参见前述对单元报告的描述,上述第一单元报告由第一可信计算单元产生,其中包括第一可信计算单元的签名信息,以及第一可信计算单元的硬件和软件信息。可选的,还可以包含更多信息,例如第一可信计算单元的运行时环境信息等。于是,第二可信计算单元获得该第一单元报告后,将其发送至第三方认证机构进行认证,从而获得针对该第一单元报告的第一认证结果。
以上过程与前述步骤S21和S22相似,不再赘述。
需要说明的是,以上步骤S21-S24可以按照不同的顺序和不同的方式来执行。
在一个实施例中,步骤S21和S23可以采用请求/响应的方式。例如,在步骤S21,第一可信计算单元向第二可信计算单元发出请求,第二可信计算单元收到请求后,将生成的第二单元报告返回给第一可信计算单元。步骤S23类似执行。
在一个实施例中,步骤S21和步骤S23可以交互顺序执行,即,第一可信计算单元也可以首先向第二可信计算单元提供自己的单元报告,然后请求获取第二单元报告。或者,两个步骤也可以并行执行。又或者,第一可信计算单元可以在确定第二单元报告认证通过之后,才将自己的第一单元报告提供给第二可信计算单元。这些变体实施方式均在本方案的构思范围之内。
简而言之,第一可信计算单元和第二可信计算单元,需要双向地彼此验证对方的身份,从第三方认证机构获得认证结果。只有在双方的认证结果,即前述的第一认证结果和第二认证结果,均为认证通过时,才执行步骤S25,第一可信计算单元与第二可信计算单元进行秘钥传输通信,以使得两者维护共同的集群秘钥。
在不同情况下,步骤S25有多种不同的执行方式。
在一个实施例中,第一可信计算单元和第二可信计算单元均未加入已有的可信计算集群,且为两个对等的计算单元。在这样的情况下,需要基于这两个可信计算单元新建一个可信计算技集群,两个可信计算单元之间可以采用秘钥协商的方式,确定出一个共同的秘钥,作为该新建集群的集群秘钥。
第一可信计算单元和第二可信计算单元可以采用各种秘钥协商方式,确定出共同的秘钥。例如,采用DH(Diffie-Hellman)密钥交换方法,或者采用基于椭圆曲线的ECDH秘钥交换方式,等等。
图3示出在一个具体例子中,两个可信计算单元之间进行秘钥协商的示意图。在图3的例子中,第一可信计算单元A本地维持有非对称的公钥私钥对(KA-Pub,KA-Pri),第二可信计算单元B也维持有自己的非对称公钥私钥对(KB-Pub,KB-Pri)。为了协商出共同的秘钥,第一可信计算单元A与第二可惜计算单元B彼此交换自己的公钥。也就是,可信计算单元A将其本地的公钥私钥对中的公钥KA-Pub发送给第二可信计算单元B,并接收第二可信计算单元B的公钥KB-Pub。
接着,第一可信计算单元A利用预定的加密算法SE,基于本地的公钥私钥对KA-Pub,KA-Pri,以及接收到的第二可信计算单元B的公钥KB-Pub,可以计算得到秘钥K1,即:
K1=SE(KA-Pub,KA-Pri,KB-Pub)
第二可信计算单元B也利用上述加密算法,基于自身的公钥私钥对KB-Pub,KB-Pri,以及接收到的可信计算单元A的公钥KA-Pub,计算出一个会话秘钥K1’,即:
K1’=SE(KB-Pub,KB-Pri,KA-Pub)
加密算法SE可以被设计为,使得SE(KA-Pub,KA-Pri,KA-Pub)=SE(KB-Pub,KB-Pri,KA-Pub),即K1=K1’。于是,第一可信计算单元A和第二可信计算单元B可以计算得到相同的秘钥K1,从而实现秘钥协商。
在实现秘钥协商的基础上,第一可信计算单元和第二可信计算单元可以形成一个可信计算集群,两者均持有协商到的秘钥K1,作为集群秘钥。
如前所述,可以设置有集群管理器,用于管理和维护形成的可信计算集群。在一个实施例中,在形成可信计算集群的过程中,集群管理器也可以参与进行管理。在一个实施例中,对于未加入已有可信计算集群的第一可信计算单元和第二可信计算单元,集群管理器将两者中的一个设置为主单元,另一个设置为从单元。
图4示出根据一个实施例在两个可信计算单元之间进行秘钥传输的过程。在图4的例子中,假定可信计算单元A被指定为主单元,可信计算单元B被指定为从单元。
初始地,可信计算单元A和可信计算单元B均把自己作为一个独立集群,各自生成初始集群秘钥,即Xa和Xb。之后,将可信计算单元A和B形成一个新建可信计算集群。为此,在可信计算单元A和B互相验证对方身份之后,开始进行秘钥传输。
作为主单元,可信计算单元A将自己生成的初始集群秘钥Xa作为新建集群的集群秘钥,传输给从单元B。
在一个实施例中,为了传输的安全,对该秘钥进行加密传输。一般的,可信计算单元A和B各自都维护有非对称秘钥对,例如可信计算单元B维持有非对称公钥私钥对(KB-Pub,KB-Pri)。于是,可信计算单元A可以首先请求获取可信计算单元B的公钥KB-Pub,然后用该公钥KB-Pub对要传输的秘钥Xa加密,得到加密秘钥E(Xa);之后,将该加密秘钥E(Xa)传输给可信计算单元B。
作为从单元,可信计算单元B从主单元A获取秘钥Xa作为新建集群的集群秘钥。
更具体的,在一个实施例中,为了传输的安全,需要对该秘钥进行加密传输。于是,可信计算单元B可以将其本地维护的非对称公钥私钥对(KB-Pub,KB-Pri)中的公钥KB-Pub提供给主单元A,之后从主单元A接收到用该公钥KB-Pub加密过的加密秘钥E(Xa)。然后,可信计算单元B利用对应的私钥KB-Pri对该加密秘钥E(Xa)进行解密,可以得到传输的秘钥Xa。
在一个实施例中,在获取到主单元A的秘钥Xa之后,可信计算单元B作为从单元,用获得的秘钥Xa替换自己生成的初始集群秘钥Xb。如此,用于存储集群秘钥的数据项内容被更新为Xa。
通过以上过程,可信计算单元A和可信计算单元B可以形成一个可信计算集群,两者均持有相同到的秘钥Ka,作为该形成的可信计算集群的集群秘钥。
在另一实施例中,第一可信计算单元和第二可信计算单元中,有一个已经加入已建立的可信计算集群,拥有了该集群的集群秘钥。此时,第一可信计算单元和第二可信计算单元之间的秘钥传输,作用是使得另一个可信计算单元也加入到该可信计算集群中。此时,已加入到已有可信计算集群的可信计算单元会被集群管理器设定为主单元,另一个会被设定为从单元。
图5示出根据一个实施例在两个可信计算单元之间进行秘钥传输的过程。在图5的例子中,假定可信计算单元A已经加入已建立的可信计算集群RC,因此,持有该集群的集群秘钥XC。另一可信计算计算单元B还未加入到该可信计算集群中。相应地,可信计算单元A被设定为主单元,可信计算单元B被设定为从单元。
在秘钥传输之前,可信计算单元A维持的是已加入集群RC的集群秘钥XC,可信计算单元B维持其生成的初始集群秘钥Xb。在可信计算单元A和B互相验证对方身份之后,开始进行秘钥传输。
作为主单元,可信计算单元A将自己维持的秘钥XC作为集群秘钥,传输给从单元B。
在一个实施例中,为了传输的安全,对该秘钥XC进行加密传输。加密方式与参见图4描述类似,不再赘述。
作为从单元,可信计算单元B从主单元A获取秘钥XC作为集群秘钥。
在加密传输的情况下,可信计算单元B需要先对获取的数据进行解密,进而得到秘钥XC。该过程与参见图4描述类似,不再赘述。
在一个实施例中,在获取到主单元A传输的秘钥XC之后,可信计算单元B作为从单元,用获得的秘钥XC替换自己生成的初始集群秘钥Xb。如此,可信计算单元B与可信计算单元A维持了相同的秘钥XC。
图5与图4的主要不同在于,主单元A传输给从单元B的秘钥XC,是主单元A已经加入的已有可信计算集群RC的集群秘钥。从单元B在获取到该秘钥XC之后,由于拥有了集群秘钥,而加入到该已有集群RC。
通过在以上各种情况下的对应执行方式,第一可信计算单元和第二可信计算单元通过秘钥传输,维护共同的集群秘钥。
回顾以上过程,在建立可信计算集群的过程中,第一可信计算单元和第二可信计算单元必须首先进行双向的彼此身份认证,在双方认证均通过的情况下,才进行秘钥传输。如此,确保加入到可信计算集群的各个计算单元都是可信计算单元,并确保集群秘钥不会泄露,从而确保建立起来的集群是真正可信的计算集群。
如果只进行单向的认证,则存在一定的安全风险。一方面,有可能由冒充的非可信节点将恶意的秘钥作为集群秘钥传递给可信节点,导致整个集群内持有的秘钥不再是保密的,使得整个集群不满足可信要求;另一方面,也有可能可信节点将集群的保密秘钥传递给非可信节点,这同样会导致集群秘钥的泄露,从而使得整个集群不满足可信要求。
而在本说明书实施例的方案中,通过采用双向的身份认证,来避免以上的安全风险,确保建立形成真正安全可信的计算集群。
通过以上方式形成的可信计算集群,其中的每个成员拥有共同的集群秘钥,并且该集群秘钥仅由集群成员拥有。如此,可信计算集群可以作为一个整体与用户设备通信,便利用户设备的访问和接入。
例如,回看图1,当用户设备U想要与可信计算集群Rc通信时,该用户设备U可以选择与其中的任意一个可信计算单元,例如单元B,协商出数据加密秘钥k,从而建立可信通道。由于单元B归属于可信计算集群Rc,因此可以将上述数据加密秘钥k在集群Rc内部传播。可信计算集群Rc通过本说明书实施例的方案而建立,因此可以确保,集群每个成员的安全可信,并且可以确保,该数据加密秘钥k仅在集群Rc内部安全传播。例如,可以利用Rc的集群秘钥Ec对k进行加密,之后进行传播。如此,仅集群成员才可以解密获得该数据加密秘钥k。随着秘钥k的传播,集群中各个可信计算单元均获取到该数据加密秘钥k,相当于均加入到上述可信通道。
或者,在另一种方案中,可信计算集群Rc中每个成员维护的集群秘钥,是专属于集群的非对称秘钥对中的集群私钥X,而集群公钥Y可以对外公开。这样,用户设备U可以通过集群公钥Y建立可信通道,访问集群中的任意可信计算单元;而每个可信计算单元由于都拥有对应的集群私钥X,而加入到与用户设备U的可信通道中。
综合以上,通过按照本说明书实施例的方式建立可信计算集群,可以确保集群的安全性和可信可靠性。对于这样的可信计算集群,用户设备U可以简单便捷地与整个可信计算集群建立可信通道,进行通信。
根据另一方面的实施例,还提供一种用于形成可信计算集群的装置。图6示出根据一个实施例的集群形成装置的示意性框图。该集群形成装置部署在第一可信计算单元中。如图6所示,该集群形成装置600包括:
报告获取模块61,配置为获取第二可信计算单元的第二单元报告,所述第二单元报告由所述第二可信计算单元生成,包括所述第二可信计算单元的签名信息;
认证模块62,配置为将所述第二单元报告发送至第三方认证机构,以获得第二认证结果;
报告提供模块63,配置为向所述第二可信计算单元提供第一单元报告,所述第一单元报告包括所述第一可信计算单元的签名信息,以供所述第二可信计算单元获得针对第一可信计算单元的第一认证结果;
秘钥传输模块64,配置为在所述第一认证结果和第二认证结果均为认证通过时,与所述第二可信计算单元进行秘钥传输通信,以使得所述第一可信计算单元和第二可信计算单元维护共同的集群秘钥。
在一个实施例中,上述第一可信计算单元和第二可信计算单元均实现为可信围圈enclave。
根据一种实施方式,所述第二单元报告还包括,所述第二可信计算单元的硬件和软件信息,以及运行时环境信息。
在一个实施例中,第二可信计算单元的签名信息依赖于所述第二可信计算单元的硬件秘钥。
在一种实施场景中,第一可信计算单元被指定为主单元,第二可信计算单元被指定为从单元。在这样的情况下,秘钥传输模块64配置为:将第一可信计算单元维护的第一秘钥作为所述集群秘钥,传输给所述第二可信计算单元。
在一种情况下,第一可信计算单元未加入已有可信计算集群。在这样的情况下,上述第一可信计算单元维护的第一秘钥可以是,第一可信计算单元生成的初始集群秘钥。
在另一种情况下,第一可信计算单元已加入已有可信计算集群。在这样的情况下,上述第一可信计算单元维护的第一秘钥为所述已有可信计算集群的集群秘钥。
根据一种实施方式,第二可信计算单元维护有第二秘钥对,其中包括第二公钥和第二私钥;在这样的情况下,秘钥传输模块64可以配置为:
获取所述第二公钥;
利用所述第二公钥对所述第一秘钥进行加密,得到加密秘钥;
将所述加密秘钥传输给所述第二可信计算单元。
在另一种实施场景中,第一可信计算单元被指定为从单元,第二可信计算单元被指定为主单元。在这样的情况下,秘钥传输模块64配置为:从第二可信计算单元获取第二秘钥作为所述集群秘钥。
根据一种实施方式,第一可信计算单元维护有第一秘钥对,其中包括第一公钥和第一私钥;在这样的情况下,所述秘钥传输模块64可以进一步配置为:
将所述第一公钥提供给所述第二可信计算单元;
从所述第二可信计算单元接收到加密秘钥,该加密秘钥是利用所述第一公钥对第二秘钥加密得到;
利用所述第一私钥对所述加密秘钥进行解密,得到所述第二秘钥。
进一步地,在一个实施例中,第一可信计算单元维护有生成的初始集群秘钥;在这样的情况下,秘钥传输模块64进一步配置为,用获取的所述第二秘钥替换所述初始集群秘钥。
在又一种实施场景中,第一可信计算单元和第二可信计算单元为对等单元;在这样的情况下,秘钥传输模块64配置为:与第二可信计算单元进行秘钥协商,将协商的秘钥作为所述集群秘钥。
进一步的,在一个实施例中,第一可信计算单元维护有第一秘钥对,其中包括第一公钥和第一私钥,第二可信计算单元维护有第二秘钥对,其中包括第二公钥和第二私钥;相应的,秘钥传输模块64配置为:
从所述第二可信计算单元获取所述第二公钥;
基于所述第一公钥,第一私钥和所述第二公钥,生成协商秘钥。
通过以上装置,将第一和第二可信计算单元形成为可信计算集群。其中,这两个可信计算单元必须首先进行双向的彼此身份认证,在双方认证均通过的情况下,才进行秘钥传输,使得双方拥有相同的秘钥作为集群秘钥。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。