首页> 中国专利> 在用户和可信计算集群之间建立可信通道的方法及装置

在用户和可信计算集群之间建立可信通道的方法及装置

摘要

本说明书实施例提供一种在用户与可信计算集群之间建立可信通道的方法和装置。根据以上方法,当用户想要与可信计算集群建立可信通道时,用户仅需要与该集群中的任意的第一可信计算单元协商出会话秘钥,建立可信通道。然后,第一可信计算单元利用所属的可信计算集群共同的集群秘钥,对该会话秘钥进行加密,并发送给集群管理器。集群管理器将加密的会话秘钥在可信计算集群中传播,从而使得集群中的其他可信计算单元获取到会话秘钥,加入到该可信通道。于是,用户与整个可信计算集群建立起可信通道。

著录项

  • 公开/公告号CN109873801A

    专利类型发明专利

  • 公开/公告日2019-06-11

    原文格式PDF

  • 申请/专利权人 阿里巴巴集团控股有限公司;

    申请/专利号CN201811521029.9

  • 申请日2018-12-12

  • 分类号H04L29/06(20060101);

  • 代理机构11309 北京亿腾知识产权代理事务所(普通合伙);

  • 代理人陈霁;周良玉

  • 地址 英属开曼群岛大开曼资本大厦一座四层847号邮箱

  • 入库时间 2024-02-19 10:37:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-24

    授权

    授权

  • 2019-07-05

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20181212

    实质审查的生效

  • 2019-06-11

    公开

    公开

说明书

技术领域

本说明书一个或多个实施例涉及安全计算领域,尤其与可信计算集群建立可信通道的方法和装置。

背景技术

为了计算和数据传输的安全,常常使用可信计算单元进行可信计算和数据处理。其中可信计算单元可以保证其中的代码执行是安全的,外界包括操作系统或驱动等都无法获取内部的运行时内存等秘密。

在用户设备与可信计算单元交换要处理的数据之前,通常首先通过协商得到一个共同的加密秘钥,该秘钥除了通信的双方,其他任何人都不可能破解。双方之间的数据发送均通过该协商得出的秘钥来进行加密,如此,我们称为,用户设备与可信计算单元建立了可信通道,可以在该可信通道上安全传输保密数据。

在许多情况下,用户设备需要与可信计算平台中的多个可信计算单元进行通信。为此,用户设备往往需要与这些可信计算单元分别进行秘钥协商,分别单独建立可信通道。当可信平台中的可信计算单元数目增多,数量庞大时,用户接入会变得复杂繁琐,成本高昂。

因此,希望能有改进的方案,安全有效,且快速便捷地在用户与可信计算平台之间建立可信通道。

发明内容

本说明书一个或多个实施例描述了建立和重建可信通道的方法及装置,从而使得用户可以与整个可信计算集群,简单又安全地建立可信通道。

根据第一方面,提供了一种在用户和可信计算集群之间建立可信通道的方法,所述方法通过第一可信计算单元执行,所述第一可信计算单元归属于预先建立的第一可信计算集群,所述第一可信计算集群中的每个可信计算单元均维护有共同的第一集群秘钥,所述第一可信计算单元预先向集群管理器注册有所归属的所述第一可信计算集群的信息,所述方法包括:

与用户协商出第一会话秘钥,并建立与所述用户的第一可信通道,所述第一会话秘钥用于对通过所述第一可信通道传输的数据进行加密;

利用所述第一集群秘钥对所述第一会话秘钥进行加密,得到第一加密秘钥;

向所述集群管理器发出第一通知,其中包含所述第一加密秘钥,以使得所述集群管理器将所述第一加密秘钥传递给所述第一可信计算集群中的其他可信计算单元。

根据一个实施例,通过以下方式与用户协商出第一会话秘钥:

将本地的第一公钥和第一私钥所构成的秘钥对中的第一公钥发送给所述用户,并获取用户提供的用户公钥;基于所述第一公钥,第一私钥和所述用户公钥,生成第一会话秘钥。

在一个实施例中,在向所述集群管理器发出第一通知之前,方法还包括:

向所述集群管理器发送针对第一可信通道的标识请求消息;

获取所述集群管理器为所述第一可信通道分配的第一会话标识;

将所述第一会话标识包含在所述第一通知中。

根据第二方面,提供一种在用户和可信计算集群之间建立可信通道的方法,所述方法通过集群管理器执行,所述集群管理器用于管理至少一个预先建立的可信计算集群,所述方法包括:

从第一可信计算单元接收第一通知,所述第一通知中包括第一加密秘钥,所述第一加密秘钥是利用第一集群秘钥对第一会话秘钥进行加密而得到,所述第一会话秘钥是所述第一可信计算单元与用户建立的第一可信通道所对应的数据加密秘钥;

确定所述第一可信计算单元所属的第一可信计算集群,所述第一可信计算集群中的每个可信计算单元均维护有所述第一集群秘钥;

将所述第一加密秘钥传递给所述第一可信计算集群中的第二可信计算单元,以使得所述第二可信计算单元根据其维持的第一集群秘钥对所述第一加密秘钥进行解密以得到所述第一会话秘钥,从而基于所述第一会话秘钥而加入到所述第一可信通道中。

根据一种实施方式,上述方法还包括:

响应于所述第一可信计算单元针对所述第一可信通道的标识请求消息,为所述第一可信通道分配第一会话标识;

将所述第一可信计算单元添加到与所述第一会话标识对应的第一可信计算单元列表。

在一个实施例中,所述第一通知还包括第一会话标识,并且,所述方法还包括:将所述第一会话标识传递给所述第二可信计算单元;以及将所述第二可信计算单元添加到所述第一可信计算单元列表中。

根据一种事实方式,集群管理器利用维护的集群信息表,确定所述第一可信计算单元所属的第一可信计算集群,以及所述第一可信计算集群中包含的各个可信计算单元。

在一个实施例中,集群管理器还将所述第一加密秘钥传递给所述第一可信计算集群中的第三可信计算单元,以使得所述第三可信计算单元根据其维持的第一集群秘钥对所述第一加密秘钥进行解密以得到所述第一会话秘钥,从而基于所述第一会话秘钥而加入到所述第一可信通道中。

根据第三方面,提供一种在用户和可信计算集群之间重建可信通道的方法,所述方法通过第四可信计算单元执行,所述第四可信计算单元已与用户建立第二可信通道,所述第四可信计算单元归属于预先建立的第二可信计算集群,所述第二可信计算集群中的每个可信计算单元均维护有共同的第二集群秘钥,且所述第四可信计算单元预先向集群管理器注册有所归属的所述第二可信计算集群的信息,并从所述集群管理器获取有与所述第二可信通道对应的第二会话标识,所述方法包括:

响应于针对第二可信通道的秘钥更新请求,与所述用户协商出针对所述第二可信通道的第二会话秘钥,所述第二会话秘钥用于替代所述第二可信通道的原有秘钥,对传输的数据进行加密;

利用所述第二集群秘钥对所述第二会话秘钥进行加密,得到第二加密秘钥;

向所述集群管理器发出第二通知,其中包含所述第二加密秘钥和所述第二会话标识,以使得所述集群管理器将所述第二加密秘钥传递给与所述第二会话标识相关的其他可信计算单元。

根据第四方面,提供一种在用户和可信计算集群之间重建可信通道的方法,所述方法通过集群管理器执行,所述集群管理器用于管理至少一个预先建立的可信计算集群,所述方法包括:

从第四可信计算单元接收第二通知,所述第四可信计算单元归属于预先建立的第二可信计算集群,所述第二可信计算集群中的每个可信计算单元均维护有共同的第二集群秘钥,所述第二通知中包括第二会话标识和第二加密秘钥,所述第二会话标识对应于所述第四可信计算单元与用户已经建立的第二可信通道,所述第二加密秘钥是利用所述第二集群秘钥对第二会话秘钥进行加密而得到,所述第二会话秘钥是针对所述第二可信通道的更新秘钥;

根据所述第二会话标识,获取加入到所述第二可信通道的第二可信计算单元列表,所述第二可信计算单元列表包括所述第四可信计算单元以及同属于所述第二可信计算集群的至少一个其他可信计算单元;

将所述至少一个其他可信计算单元的每一个,均从所述第二可信计算单元列表中移除;

将所述第二加密秘钥传递给所述至少一个其他可信计算单元中的第五可信计算单元,以使得所述第五可信计算单元根据其维持的第二集群秘钥对所述第二加密秘钥进行解密以得到所述第二会话秘钥,从而基于所述第二会话秘钥而重新加入到所述第二可信通道中。

在一个实施例中,所述方法还包括,将所述第五可信计算单元添加到所述第二可信计算单元列表中。

根据第五方面,提供一种在用户和可信计算集群之间建立可信通道的装置,所述装置部署在第一可信计算单元中,所述第一可信计算单元归属于预先建立的第一可信计算集群,所述第一可信计算集群中的每个可信计算单元均维护有共同的第一集群秘钥,所述第一可信计算单元预先向集群管理器注册有所归属的所述第一可信计算集群的信息,所述装置包括:

秘钥协商模块,配置为与用户协商出第一会话秘钥,并建立与所述用户的第一可信通道,所述第一会话秘钥用于对通过所述第一可信通道传输的数据进行加密;

第一加密模块,配置为利用所述第一集群秘钥对所述第一会话秘钥进行加密,得到第一加密秘钥;

第一通知发送模块,配置为向所述集群管理器发出第一通知,其中包含所述第一加密秘钥,以使得所述集群管理器将所述第一加密秘钥传递给所述第一可信计算集群中的其他可信计算单元。

根据第六方面,提供一种在用户和可信计算集群之间建立可信通道的装置,所述装置部署在集群管理器中,所述集群管理器用于管理至少一个预先建立的可信计算集群,所述装置包括:

第一通知接收模块,配置为从第一可信计算单元接收第一通知,所述第一通知中包括第一加密秘钥,所述第一加密秘钥是利用第一集群秘钥对第一会话秘钥进行加密而得到,所述第一会话秘钥是所述第一可信计算单元与用户建立的第一可信通道所对应的数据加密秘钥;

集群确定模块,配置为确定所述第一可信计算单元所属的第一可信计算集群,所述第一可信计算集群中的每个可信计算单元均维护有所述第一集群秘钥;

第一传递模块,配置为将所述第一加密秘钥传递给所述第一可信计算集群中的第二可信计算单元,以使得所述第二可信计算单元根据其维持的第一集群秘钥对所述第一加密秘钥进行解密以得到所述第一会话秘钥,从而基于所述第一会话秘钥而加入到所述第一可信通道中。

根据第七方面,提供一种在用户和可信计算集群之间重建可信通道的装置,所述装置部署在第四可信计算单元中,所述第四可信计算单元已与用户建立第二可信通道,所述第四可信计算单元归属于预先建立的第二可信计算集群,所述第二可信计算集群中的每个可信计算单元均维护有共同的第二集群秘钥,且所述第四可信计算单元预先向集群管理器注册有所归属的所述第二可信计算集群的信息,并从所述集群管理器获取有与所述第二可信通道对应的第二会话标识,所述装置包括:

秘钥更新模块,配置为响应于针对第二可信通道的秘钥更新请求,与所述用户协商出针对所述第二可信通道的第二会话秘钥,所述第二会话秘钥用于替代所述第二可信通道的原有秘钥,对传输的数据进行加密;

第二加密模块,配置为利用所述第二集群秘钥对所述第二会话秘钥进行加密,得到第二加密秘钥;

第二通知发送模块,配置为向所述集群管理器发出第二通知,其中包含所述第二加密秘钥和所述第二会话标识,以使得所述集群管理器将所述第二加密秘钥传递给与所述第二会话标识相关的其他可信计算单元。

根据第八方面,提供一种在用户和可信计算集群之间重建可信通道的装置,所述装置部署在集群管理器中,所述集群管理器用于管理至少一个预先建立的可信计算集群,所述装置包括:

第二通知接收模块,配置为从第四可信计算单元接收第二通知,所述第四可信计算单元归属于预先建立的第二可信计算集群,所述第二可信计算集群中的每个可信计算单元均维护有共同的第二集群秘钥,所述第二通知中包括第二会话标识和第二加密秘钥,所述第二会话标识对应于所述第四可信计算单元与用户已经建立的第二可信通道,所述第二加密秘钥是利用所述第二集群秘钥对第二会话秘钥进行加密而得到,所述第二会话秘钥是针对所述第二可信通道的更新秘钥;

第二列表获取模块,配置为根据所述第二会话标识,获取加入到所述第二可信通道的第二可信计算单元列表,所述第二可信计算单元列表包括所述第四可信计算单元以及同属于所述第二可信计算集群的至少一个其他可信计算单元;

移除模块,配置为将所述至少一个其他可信计算单元的每一个,均从所述第二可信计算单元列表中移除;

第二传递模块,配置为将所述第二加密秘钥传递给所述至少一个其他可信计算单元中的第五可信计算单元,以使得所述第五可信计算单元根据其维持的第二集群秘钥对所述第二加密秘钥进行解密以得到所述第二会话秘钥,从而基于所述第二会话秘钥而重新加入到所述第二可信通道中。

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

根据第十方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面到第四方面的方法。

通过本说明书实施例提供的方法和装置,当用户想要与可信计算集群建立可信通道时,用户仅需要与该集群中的任意一个可信计算单元协商出会话秘钥,建立可信通道。接着,集群管理器会将加密的会话秘钥在可信计算集群中传播,从而使得集群中的其他可信计算单元获取到会话秘钥,加入到该可信通道。于是,用户与整个可信计算集群建立起可信通道。在这个过程中,用户不需要依次单独与各个可信计算单元协商和通信,也不需要关注可信计算集群的集群细节,对用户来说,建立可信通道的过程变得非常简单和清晰。

附图说明

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

图1示出根据本说明书一个实施例的可信计算单元、会话、会话节点的关系示意图;

图2为本说明书披露的一个实施例中可信通道的整个生命周期;

图3示出根据一个实施例的在用户与可信计算集群之间建立可信通道的示意图;

图4示出根据一个实施例的在用户与可信计算集群之间重建可信通道的流程图;

图5示出根据一个实施例的在用户与可信计算集群之间重建可信通道的流程图;

图6示出根据一个实施例的用于建立可信通道的建立装置的示意性框图;

图7示出根据一个实施例的用于建立可信通道的建立装置的示意性框图;

图8示出根据一个实施例的用于重建可信通道的重建装置的示意性框图;

图9示出根据一个实施例的用于重建可信通道的重建装置的示意性框图。

具体实施方式

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

根据本说明书实施例的方案,可以在用户与可信计算集群之间,安全而快速便捷地建立可信通道。上述可信计算集群可以是预先建立的集群,其中包括多个可信计算单元。可信计算单元可以是具有一定隔离能力从而保证计算安全性的计算模块或计算设备,例如是可信的计算容器enclave,比如采用SGX或Trust Zone等技术而实现。

多个可信计算单元通过互相认证身份,可以形成一个可信计算集群。在建立可信计算集群的过程中,各个可信计算单元会通过秘钥协商等方式,而维护一个共同的集群秘钥,这是本方案实施的前提和要求。

根据本说明书中的实施例,希望统一建立和维护用户与整个可信集群之间的可信通道,如此避免用户与各个可信计算单元之间单独建立通道的繁琐。

如果用户与可信计算集群建立起可信通道,则意味着用户与可信计算集群建立了可信关系。为了更清楚的进行描述,引入“会话(session)”的概念,来表示这种可信关系。也就是说,在本文中,会话可以认为是用户与可信计算集群建立的可信通道关系。

一个可信计算集群可以与多个用户建立多个可信关系,那就意味着该可信计算集群可以对应有多个可信通道,即多个会话。

如前所述,为了在用户和可信计算集群之间进行安全数据传输,通信双方会协商交换一个加密秘钥,本文中将该秘钥称为会话秘钥。会话秘钥与可信通道相对应,用于对通过该可信通道传输的数据进行加解密。

在以上会话的概念的基础上,结合会话秘钥,可以引申出会话节点的概念,用来表示可信计算集群中的可信计算单元在每个会话内对应的实体。由于一个可信计算集群可以有多个会话,因此每个可信计算单元可以对应有多个会话节点。

从会话的角度来说,一个会话可以对应一个或者多个会话节点。会话节点N是否加入了某个会话S的判断标准是,该会话节点N是否拥有会话S对应的正确的会话秘钥k。若会话节点N拥有正确的会话秘钥k,则认为会话节点N加入了会话S;若会话节点N没有正确的会话秘钥k,则认为会话节点N尚未加入会话S。

图1示出根据本说明书一个实施例的可信计算单元、会话、会话节点的关系示意图。在图1中,假定某个可信计算集群包括5个可信计算单元,分别记为A,B,C,D,E。另外,该可信计算集群具有3个会话,分别对应于与用户U1,U2和U3建立的可信通道1,通道2,和通道3。

在图1中,纵向示出各个可信计算单元与会话节点的关系。例如,可信计算单元A包括分别与会话1,2,3对应的会话节点A-1,A-2和A-3;可信计算单元B包括分别与会话1,2,3对应的会话节点B-1,B-2和B-3。

图1的横向示出各个会话与会话节点的关系。例如,会话1包括分别与计算单元A,B,C,D,E对应的会话节点A-1,B-1,C-1,D-1,E-1。但是,这些节点是否加入了对应会话,取决于该节点是否具有正确的会话秘钥。例如,在图1中,会话节点A-3由于不具有正确的会话秘钥,而没有加入到会话3。

以上描述了针对用户与可信计算集群的可信通道(或会话)的总体管理架构和构思。在这样的管理架构的基础上,可以安全快速地建立或重建用户与可信计算集群的可信通道。

图2为本说明书披露的一个实施例中可信通道的整个生命周期。如图2所示,首先,用户与可信计算集群中的某个可信计算单元(例如单元A)建立可信通道,即创建了一个会话。然后,对该会话进行扩张,使得集群中各个对应的会话节点(例如图1所示的会话节点)加入到该会话中。这个过程涉及将对应的会话秘钥在整个可信计算集群中传播。如此,可信计算集群中各个可信计算单元均得到了会话秘钥,于是,各个可信计算单元均加入到会话中,用户就与整个可信计算集群建立了可信通道。

在用户使用该可信通道与可信计算集群通信一段时间后,在一定情况下,可能需要更换会话秘钥。这时,需要对该会话进行收缩,将不具有最新会话秘钥的会话节点移除该会话,然后再次扩张会话,将最新的会话秘钥再次传播到整个集群。于是,用户与整个可信计算集群重建了可信通道。这个过程可以持续进行,直到需要销毁会话。

下面具体描述通过会话扩张建立可信通道的过程,以及通过会话收缩再扩张重建可信通道的过程。

图3示出根据一个实施例的在用户与可信计算集群之间建立可信通道的示意图。具体地,在图3的示例中,示出了在用户U与可信计算集群C1之间建立可信通道的过程,其中用户U代表用户所使用的计算设备或终端,可信计算集群C1是预先建立的一个可信计算集群,其中包括多个可信计算单元。在图3的示例中,沿用图1的例子,假定可信计算集群C1包括可信计算单元A,B,C,D,E。但是可以理解,在其他例子中,可信计算集群可以包括任意数量的可信计算单元。

一般地,通过集群管理器来管理建立的可信计算集群。在一个实施例中,集群管理器维护有集群信息表,其中记录有各个集群中包含的各个可信计算单元的信息。通常来说,在多个可信计算单元成功构建成一个可信计算集群之后,会向集群管理器进行注册,通知集群管理器该可信计算集群的建立。如此,集群管理器根据接收到的注册信息,维护和更新上述集群信息表。表1示出集群信息表的一个具体示例。

表1:集群信息表

需要说明的是,在构建可信计算集群的过程中,各个可信计算单元之间会互相验证身份,并进行秘钥协商,最终维护一个共同的集群秘钥。这是本方案的前提条件。因此,在以下说明中,当提及已经建立的可信计算集群,就意味着,该可信计算集群中每个可信计算单元均维护有该集群专有的集群秘钥。

当用户U想要与可信计算集群C1建立可信通道时,根据本说明书的实施例,用户U可以首先与集群C1中的任一个可信计算单元建立可信通道。为了描述简单,将首先与用户建立可信通道的任一可信计算单元称为第一可信计算单元。在一个具体例子中,第一可信计算单元例如是可信计算单元A。

为此,在图3的步骤31,可信计算单元A与用户U协商出会话秘钥K1,并建立与用户U的可信通道。为了描述的简单,下文将此可信通道称为第一可信通道。可以理解,上述会话秘钥K1针对或对应于第一可信通道,用于对通过第一可信通道进行传输的数据进行加解密。需要理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。

具体地,可信计算单元A与用户U可以通过多种方式进行秘钥协商,从而得到上述会话秘钥K1。

在一个具体例子中,可信计算单元A本地维持有非对称的公钥私钥对(KA-Pub,KA-Pri),用户U也维持有自己的非对称公钥私钥对(KU-Pub,KU-Pri)。为了协商出共同的会话秘钥,可信计算单元A与用户U彼此交换自己的公钥。也就是,可信计算单元A将其本地的公钥私钥对中的公钥KA-Pub发送给用户U,并从用户U接收到用户的公钥KU-Pub。

接着,可信计算单元A利用预定的加密算法SE,基于本地的公钥私钥对KA-Pub,KA-Pri,以及接收到的用户U的公钥KU-Pub,可以计算得到会话秘钥K1,即:

K1=SE(KA-Pub,KA-Pri,KU-Pub)

根据一种实施方式,用户U也利用上述加密算法,基于用户U的公钥私钥对KU-Pub,KU-Pri,以及接收到的可信计算单元A的公钥KA-Pub,计算出一个会话秘钥K1’,即:

K1’=SE(KU-Pub,KU-Pri,KA-Pub)

加密算法SE可以被设计为,使得SE(KA-Pub,KA-Pri,KU-Pub)=SE(KU-Pub,KU-Pri,KA-Pub)。于是,可信计算单元A将其计算得到的K1与用户U计算得到的K1’互相交换,在确认K1与K1’相等的情况下,完成秘钥协商。

如此,可信计算单元A与用户U会计算得到相同的会话秘钥K1,从而实现秘钥协商。

在其他实施例中,也可以使用本领域中已知或将来采用的其他秘钥协商方式。例如,通信双方交换一些设备信息,根据双方设备信息和约定算法,生成会话秘钥;或者,约定其中的一方根据任意方式生成会话秘钥,然后通知给另一方,等等。

在可信计算单元A与用户U协商得到第一会话秘钥K1的基础上,在步骤33,可信计算单元A利用所属的可信计算集群Ci的集群秘钥,以下称为第一集群秘钥E1,对上述第一会话秘钥K1进行加密,得到一个加密秘钥E1(K1)。如前所述,一个已经构建好的可信计算集群中,每个可信计算单元均维护有该集群专有的集群秘钥。对于可信集群集群C1来说,其中的每个可信计算单元A-E,均维护有集群秘钥E1。因此,可信计算单元A可以利用其维护的集群秘钥E1,采用预定加密算法,计算得到加密秘钥E1(K1)。

之后,在步骤35,可信计算单元A向集群管理器发送一个通知,下文称为第一通知,该第一通知中包含上述用集群秘钥E1加密得到的加密秘钥E1(K1)。

集群管理器从可信计算单元A接收到上述通知后,在步骤S37,首先确定可信计算单元A所归属的可信计算集群的信息。如前所述,在各个可信计算集群建立时,会向集群管理器进行注册,因此集群管理器维护有各个可信计算集群的信息。例如,通过表1的集群信息表维护集群的信息。

在步骤37,集群管理器可以通过查询维护的集群信息表,确定可信计算单元A所归属的可信计算集群,称为第一可信计算集群,还可以确定出该第一可信计算集群中所包含的其他可信计算单元。

例如,通过查询表1的集群信息表,集群管理器可以确定,可信计算单元A归属于可信计算集群C1,该可信计算集群中还包含可信计算单元B,C,D,E。

于是,接下来,在步骤S38,集群管理器将步骤S35中收到的第一通知中的加密秘钥E1(K1),传递给上述第一可信计算集群中的其他可信计算单元,在此将上述其他可信计算单元中的任意一个,称为第二可信计算单元,例如,传递给可信计算单元B。

如前所述,第一可信计算集群C1中的每个可信计算单元,均维护有共同的集群秘钥E1。因此,第二可信计算单元(例如单元B)接收到加密秘钥E1(K1)后,就可以利用其维护的集群秘钥E1,从加密秘钥E1(K1)中解密得到会话秘钥K1。一旦拥有了正确的会话秘钥K1,第二可信计算单元就可以加入到与用户U通信的第一可信通道中。

可以理解,在步骤S38之后,或者与步骤S38并行地,集群管理器可以将上述加密秘钥E1(K1)逐个传递给第一可信计算集群(C1)中的各个可信计算单元。例如集群管理器还在步骤S39将加密秘钥E1(K1)传递给第三可信计算单元,例如单元C,于是该可信计算单元C也加入到第一可信通道中;类似的,可信计算单元D,E也可以在接收到集群管理器传递的E1(K1),进而解密获取到K1后加入到第一可信通道中。

在一个实施例中,集群管理器可以将上述加密秘钥传递给第一可信计算集群中的所有可信计算单元,以使得每个可信计算单元均加入到第一可信通道中。在另一实施例中,集群管理器也可以根据预先设定的规则,或者根据需要,将上述加密秘钥传递给第一可信计算集群中的部分可信计算单元。例如,如果某个可信计算单元出现故障,或者处理性能出现严重下降,或者处理能力不足,集群管理器可以避免将上述加密秘钥传递给这样的可信计算单元。其中,可信计算单元的处理状态可以由可信计算单元定期向集群管理器进行报告,也可以由集群管理器统一评估和管理。

通过以上过程可以看到,当用户U想要与可信计算集群C1建立可信通道时,用户U仅需要与集群C1中的任意一个可信计算单元(例如单元A)协商出会话秘钥K1,建立第一可信通道。接着,集群管理器会将加密的会话秘钥E1(K1)在可信计算集群C1中传播,从而使得集群中的其他可信计算单元获取到会话秘钥,加入到该第一可信通道。于是,可以认为,用户U与整个可信计算集群建立了上述第一可信通道。在这个过程中,用户U不需要依次单独与各个可信计算单元协商和通信,也不需要关注可信计算集群C1的集群细节,对用户来说,建立可信通道的过程变得非常简单和清晰。

此外,在集群管理器传播秘钥时,传播的是利用集群秘钥E1进行加密的加密秘钥E1(K1),而该集群秘钥E1仅仅由对应的可信计算集群中的成员保有和维持。即使在传播过程中,加密秘钥E1(K1)被其他计算设备获取,但是该计算设备由于不具有对应的集群秘钥E1,仍然无法解密获知会话秘钥K1,从而无法加入到第一可信通道的会话中。如此,确保了可信通道建立的安全性。

进一步地,在一个实施例中,集群管理器不仅维护建立的集群信息,还以会话的形式管理和维护各个可信通道的状态,也即维护各个会话的状态。下面描述在以上建立第一可信通道的过程中,集群管理器对该第一可信通道对应的会话的管理。

在一种实施方式中,在可信计算单元A与用户U成功建立上述第一可信通道之后,可信计算单元A会向集群管理器发送一个消息,用以通知集群管理器,已新建一个可信通道,请求为该可信通道分配会话标识。

于是,在前述步骤31之后,步骤35之前,集群管理器为该第一可信通道分配一个会话标识,在此称为第一会话标识。在具体例子中,会话标识可以体现为会话id的形式,例如记为SID1。

在一个实施例中,集群管理器在分配上述第一会话标识之后,还针对该新建的第一会话标识,建立对应的可信计算单元列表,在此称为第一可信计算单元列表,用于记录加入到对应会话的可信计算单元。

由于针对第一可信通道的请求消息来自于第一可信计算单元A,说明该第一可信通道通过可信计算单元A创建,可信计算单元A已经加入该会话,因此,在一个具体例子中,集群管理器在创建上述第一可信计算单元列表时,就将第一可信计算单元A的单元标识添加到该第一可信计算单元列表中。

然后,集群管理器将该第一会话标识返回给可信计算单元A。于是,在一个实施例中,可信计算单元A还将以上获得的第一会话标识SID1,包含在上述第一通知中。此时,上述第一通知中包含针对第一可信通道的加密秘钥E1(K1),以及该第一可信通道对应的会话标识SID1,两者互相对应关联。

在另一具体例子中,集群管理器在接收到上述第一通知,确认第一可信计算单元A已获得针对第一可信通道的会话秘钥后,将第一可信计算单元A的单元标识添加与第一会话标识对应的第一可信计算单元列表中。

例如,此时该第一可信计算单元列表可以表示为:

SID1:<A>

接着,在步骤S38,集群管理器将加密秘钥E1(K1)传递给了第二可信计算单元,例如,可信计算单元B。在一个实施例中,集群管理器还将该第一会话标识SID1也传递给第二可信计算单元,使其知晓所加入的可信通道的会话标识。并且,集群管理器还将第二可信计算单元对应的单元标识添加到上述第一会话标识对应的第一可信计算单元列表中。此时,该第一可信计算单元列表可以表示为:

SID1:<A,B>

在后续集群管理器将加密秘钥E1(K1)又传递给了可信计算单元C,D,E之后,类似的,会将这些可信计算单元的单元标识也添加到上述第一可信计算单元列表中。此时,该列表可以表示为:

SID1:<A,B,C,D,E>

如此,通过会话标识和对应的可信计算单元列表,记录和管理与第一可信通道对应的会话的状态。

可以理解,与上述与第一可信通道对应的第一会话类似的,集群管理器记录和管理与各个可信通道对应的各个会话的状态。在一个具体例子中,集群管理器通过会话状态表记录各个会话的状态,会话状态表中记录各个会话标识对应的可信计算单元列表。表2示出在一个具体例子中的会话状态表。

表2:会话状态表

会话标识可信计算单元列表SID1A,B,C,D,ESID2A,B,C,DSID3G,H,I,M,N,P…………

通过这样的方式,可以在后续会话进行收缩和再次扩张时,持续管理会话状态。下面描述通过会话的收缩和再次扩张,在用户和可信计算集群之间重建可信通道的过程。

如前所述,用户可以通过与可信计算集群中的任意一个可信计算单元建立可信通道,而与整个可信计算集群建立可信通道,然后通过该可信通道与可信计算集群进行数据通信。在实际操作中,出于安全等原因,在一定条件满足的情况下,例如,满足了预设的秘钥更新时间间隔,或者已经使用该可信通道传输了预定量的数据等等,用户需要更换与可信计算集群之间的会话秘钥。这个过程我们称为可信通道的重建。

假定用户已与某个可信计算集群之间建立了可信通道。为了描述的简单,将此处的某个可信计算集群称为第二可信计算集群,建立的可信通道称为第二可信通道。可以理解,此处的第二可信计算集群与前述的第一可信计算集群(例如集群C1)可以是相同的集群,也可以是不同的集群。相应的,第二可信通道与前述的第一可信通道可以相同,也可以不同。

当用户想要更换针对第二可信通道的会话秘钥时,根据本说明书的一个或多个实施例,用户仅需要通过第二可信计算集群中的任意一个可信计算单元进行会话秘钥的更新。为了描述的简单,将该任意一个可信计算单元称为第四可信计算单元。

图4示出根据一个实施例的在用户与可信计算集群之间重建可信通道的流程图,该方法通过上述第四可信计算单元执行。该第四可信计算单元归属于预先建立的第二可信计算集群,第二可信计算集群已与用户建立第二可信通道。

下面结合具体例子进行说明。假定第二可信计算集群为表1所示的集群C2,其中包含有可信计算单元G,H,I,M,N,P。第二可信计算集群的信息已预先在集群管理器进行注册。另外,用户已通过与图3类似的方式与该可信计算集群C2建立有可信通道,该可信通道在本实施例中被称为第二可信通道。可以理解,在建立上述第二可信通道的过程中,集群管理器为该第二可信通道分配有第二会话标识,例如SID3,并通过例如表2的会话状况表,记录有该第二会话标识对应的可信计算单元列表。并且,集群管理器还将该第二会话标识返回给加入到该会话的各个可信计算单元,因此,可信计算单元G,H,I,M,N,P均获取有第二可信通道对应的第二会话标识。

现在假定用户通过其中的任意一个可信计算单元H,进行会话秘钥的更新。为此,通过第四可信计算单元H,执行以下过程。

在步骤41,响应于针对第二可信通道的秘钥更新请求,与用户协商出针对该第二可信通道的第二会话秘钥,所述第二会话秘钥用于替代第二可信通道的原有秘钥,对传输的数据进行加密。

在一个实施例中,上述秘钥更新请求由用户发起。例如,用户可以根据自身需要,发出秘钥更新请求。

在另一实施例中,上述秘钥更新请求也可以由集群管理器根据预定的管理规则而发起,例如每隔预定时间间隔,要求各个可信通道更新会话秘钥。

响应于针对第二可信通道的秘钥更新请求,第四可信计算单元,例如单元H,与用户协商出针对该可信通道的新的会话秘钥,在此称为第二会话秘钥,记为K2。秘钥协商的方式与建立可信通道时的方式相类似,不再赘述。可以理解,第二会话秘钥用于替代该第二可信通道的原有秘钥,对传输的数据进行加密。

接着,在步骤43,第四可信计算单元利用所属的第二计算集群的集群秘钥,即第二集群秘钥,对第二会话秘钥进行加密,得到第二加密秘钥。

例如,在第四可信计算单元为单元H的情况下,可信计算单元H由于归属于第二计算集群C2,因此维护有C2专属的第二集群秘钥E2。于是,可以利用第二集群秘钥E2对第二会话秘钥K2加密,得到第二加密秘钥E2(K2)。

另一方面,如前所述,在第四可信计算单元H预先建立或加入第二可信通道时,会从集群管理器获取有与第二可信通道对应的第二会话标识,例如SID3。因此,在步骤45,第四可信计算单元可以向集群管理器发出第二通知,其中包含第二加密秘钥E2(K2)和第二会话标识,以使得集群管理器将第二加密秘钥传递给与所述第二会话标识相关的其他可信计算单元。

接下来有关第二可信通道的会话收缩和再扩张的过程由集群管理器执行。

图5示出根据一个实施例的在用户与可信计算集群之间重建可信通道的流程图,该方法通过集群管理器执行。

如图5所示,在步骤51,集群管理器从第四可信计算单元接收到第二通知,其中包含第二加密秘钥和第二会话标识。其中第二会话标识对应于所述第四可信计算单元与用户已经建立的第二可信通道,第二加密秘钥是利用第二集群秘钥对更新得到的第二会话秘钥进行加密而得到。例如,与图4的步骤45对应的,集群管理器从可信计算单元H接收到第二通知,其中包含第二加密秘钥E2(K2)和第二会话标识SID3。

接着,在步骤53,集群管理器根据第二会话标识,获取加入到第二可信通道的第二可信计算单元列表,所述第二可信计算单元列表包括第四可信计算单元和同属于第二可信计算集群的至少一个其他可信计算单元。

如前所述,集群管理器用于管理各个预先建立的可信计算集群,例如将其记录为表1所示的集群信息表。此外,集群管理器还维护与各个可信计算集群建立起的各个会话的状态。在一个实施例中,集群管理器通过表2的会话状态表,记录和维护与各个可信计算集群建立起的各个会话的状态。

通过上述会话状态表,集群管理器可以查询得到,与第二会话标识对应的第二可信计算单元列表,其中记录有加入到第二可信通道的可信计算单元。参考图3的过程,可以理解,与第四可信计算单元一起加入到第二可信通道的单元,必然同属于第二可信计算集群。因此,上述第二可信计算单元列表中包含第四可信计算单元本身,以及同属于第二可信计算集群的至少一个其他可信计算单元。

例如,对于第二通知中包含的第二会话标识SID3,集群管理器通过例如表2的会话状态表,可以查询获知,与第二会话标识SID3对应的第二可信计算单元列表包括:

SID3:<G,H,I,M,N,P>

其中包括第四可信计算单元H自身,以及与单元H同属于第二可信计算集群C2的其他可信计算单元G,I,M,N,P。

接着,在步骤55,集群管理器将上述至少一个其他可信计算单元的每一个,均从第二可信计算单元列表中移除。也就是说,因为目前仅有第四可信计算单元获得了更新后的会话秘钥,因此认为,仅有第四可信计算单元保持在与第二可信通道对应的会话中,其他可信计算单元由于秘钥未更新,而被移除了该会话。因此,将这些可信计算单元从第二可信计算单元列表中移除。

继续沿用上例进行说明。在步骤53确定出与第二会话标识SID3对应的第二可信计算单元列表<G,H,I,M,N,P>之后,在步骤55,将该列表中除第四可信计算单元H之外的各个单元,均进行移除。此时,第二可信计算单元列表更新为:

SID3:<H>

之后,在步骤57,集群管理器将第二加密秘钥传递给上述至少一个其他可信计算单元中的第五可信计算单元,以使得所述第五可信计算单元根据其维持的第二集群秘钥对所述第二加密秘钥进行解密以得到所述第二会话秘钥,从而基于所述第二会话秘钥而重新加入到所述第二可信通道中。

需要说明的是,上述第五可信计算单元是之前加入到第二可信通道中的、除第四可信计算单元之外的任意一个可信计算单元,因此第五可信计算单元必然是与第四可信计算单元同属于上述第二可信集群,因此也维持有第二集群秘钥。如此,在第五可信计算单元接收到第二加密秘钥后,就可以利用第二集群秘钥对其解密,从而得到第二会话秘钥,也就是第二可信通道的新的会话秘钥。于是,第五可信计算单元就可以重新加入到第二可信通道中。

在一个实施例中,在将第二加密秘钥传递给第五可信计算单元后,集群管理器将第五可信计算单元的单元标识再次添加到第二可信计算单元列表中,以表明,第五可信计算单元重新加入到第二会话中。

按照同样的方式,集群管理器可以将第二加密秘钥逐个传递给之前加入到第二可信通道的各个可信计算单元,使得这些可信计算单元再次重新加入到第二可信通道。进一步地,集群管理器还可以将这些可信计算单元的单元标识也添加到第二可信计算单元列表中。

沿用以上的例子进行说明。在步骤55中,将第二可信计算单元列表中除第四可信计算单元H之外的各个单元,均进行移除。也就是被移除单元包括G,I,M,N,P。在步骤57,将第二加密秘钥E2(K2)传递给被移除单元中的第五可信计算单元,例如是单元G。于是,可信计算单元G可以利用其维护的第二集群秘钥E2对E2(K2)进行解密,得到针对第二可信通道的更新的会话秘钥K2,从而再次加入该第二可信通道。

另一方面,集群管理器还将可信计算单元G的单元标识,添加回第二可信计算单元列表中,此时,第二可信计算单元列表更新为:

SID3:<G,H>

之后,集群管理器还将第二加密秘钥E2(K2)传递给可信计算单元I,M,N,P,使得这些可信计算单元也再次加入第二可信通道。之后,第二可信计算单元列表又更新为:

SID3:<G,H,I,M,N,P>。

在以上过程中,在将第二可信计算单元列表中除第四可信计算单元之外的各个单元均进行移除时,与第二通道对应的第二会话被收缩到最小,仅包含第四可信计算单元。之后,随着将第二加密秘钥再次进行传播,第二会话再次扩张。例如,在收缩阶段,会话SID3中包含的节点收缩至<H>;之后,再次扩张为<G,H,I,M,N,P>。通过以上会话的收缩和再扩张过程,实现了用户与可信计算集群之间重建可信通道的过程。

在以上过程中,当用户U需要对已经建立的第二可信通道的会话秘钥进行更换时,用户U仅需要与集群中的任意一个可信计算单元协商出新的会话秘钥K2,集群管理器会将之前加入第二可信通道的可信计算单元剔除出对应的第二会话,然后将加密的会话秘钥E2(K2)在集群中再次传播,使得这些可信计算单元重新加入到该第二会话。整个过程用户不需要依次单独与各个可信计算单元协商和通信,也不需要关注可信计算集群的集群细节,重建的过程简单又安全。

根据另一方面的实施例,还提供一种在用户和可信计算集群之间建立可信通道的装置。图6示出根据一个实施例的用于建立可信通道的建立装置的示意性框图,且该建立装置部署在可信计算单元中。下面将该可信计算单元称为第一可信计算单元。该第一可信计算单元归属于预先建立的第一可信计算集群,所述第一可信计算集群中的每个可信计算单元均维护有共同的第一集群秘钥,所述第一可信计算单元预先向集群管理器注册有所归属的所述第一可信计算集群的信息。如图6所示,该建立装置600包括:

秘钥协商模块61,配置为与用户协商出第一会话秘钥,并建立与所述用户的第一可信通道,所述第一会话秘钥用于对通过所述第一可信通道传输的数据进行加密;

第一加密模块63,配置为利用所述第一集群秘钥对所述第一会话秘钥进行加密,得到第一加密秘钥;

第一通知发送模块65,配置为向所述集群管理器发出第一通知,其中包含所述第一加密秘钥,以使得所述集群管理器将所述第一加密秘钥传递给所述第一可信计算集群中的其他可信计算单元。

根据一个实施例,所述秘钥协商模块61配置为:

将本地的第一公钥和第一私钥所构成的秘钥对中的第一公钥发送给所述用户,并获取用户提供的用户公钥;

基于所述第一公钥,第一私钥和所述用户公钥,生成第一会话秘钥。

在一个实施例中,装置600还包括标识获取模块(未示出),配置为在所述第一通知发送模块65向所述集群管理器发出第一通知之前,执行以下步骤:

向所述集群管理器发送针对第一可信通道的标识请求消息;

获取所述集群管理器为所述第一可信通道分配的第一会话标识;

将所述第一会话标识包含在所述第一通知中。

根据又一方面的实施例,还提供一种在用户和可信计算集群之间建立可信通道的装置。图7示出根据一个实施例的用于建立可信通道的建立装置的示意性框图,且该建立装置部署在集群管理器中,所述集群管理器用于管理至少一个预先建立的可信计算集群。如图7所示,该建立装置700包括:

第一通知接收模块71,配置为从第一可信计算单元接收第一通知,所述第一通知中包括第一加密秘钥,所述第一加密秘钥是利用第一集群秘钥对第一会话秘钥进行加密而得到,所述第一会话秘钥是所述第一可信计算单元与用户建立的第一可信通道所对应的数据加密秘钥;

集群确定模块73,配置为确定所述第一可信计算单元所属的第一可信计算集群,所述第一可信计算集群中的每个可信计算单元均维护有所述第一集群秘钥;

第一传递模块75,配置为将所述第一加密秘钥传递给所述第一可信计算集群中的第二可信计算单元,以使得所述第二可信计算单元根据其维持的第一集群秘钥对所述第一加密秘钥进行解密以得到所述第一会话秘钥,从而基于所述第一会话秘钥而加入到所述第一可信通道中。

根据一个实施例,上述建立装置700还包括(未示出):

会话标识分配模块,配置为响应于所述第一可信计算单元针对所述第一可信通道的标识请求消息,为所述第一可信通道分配第一会话标识;

第一列表添加模块,配置为将所述第一可信计算单元添加到与所述第一会话标识对应的第一可信计算单元列表。

进一步的,在一个实施例中,所述第一通知还包括所述第一会话标识,

所述第一传递模块75还配置为,将所述第一会话标识传递给所述第二可信计算单元;并且,所述第一列表添加模块还配置为,将所述第二可信计算单元添加到所述第一可信计算单元列表中。

根据一种实施方式,所述集群确定模块73配置为,利用维护的集群信息表,确定所述第一可信计算单元所属的第一可信计算集群,以及所述第一可信计算集群中包含的各个可信计算单元。

在一个实施例中,所述第一传递模块75还配置为:

将所述第一加密秘钥传递给所述第一可信计算集群中的第三可信计算单元,以使得所述第三可信计算单元根据其维持的第一集群秘钥对所述第一加密秘钥进行解密以得到所述第一会话秘钥,从而基于所述第一会话秘钥而加入到所述第一可信通道中。

根据另一方面的实施例,还提供一种在用户和可信计算集群之间重建可信通道的装置。图8示出根据一个实施例的用于重建可信通道的重建装置的示意性框图,且该重建装置部署在可信计算单元中。下面将该可信计算单元称为第四可信计算单元。该第四可信计算单元已与用户建立第二可信通道,所述第四可信计算单元归属于预先建立的第二可信计算集群,所述第二可信计算集群中的每个可信计算单元均维护有共同的第二集群秘钥,且所述第四可信计算单元预先向集群管理器注册有所归属的所述第二可信计算集群的信息,并从所述集群管理器获取有与所述第二可信通道对应的第二会话标识。在以上前提下,该重建装置800包括:

秘钥更新模块81,配置为响应于针对第二可信通道的秘钥更新请求,与所述用户协商出针对所述第二可信通道的第二会话秘钥,所述第二会话秘钥用于替代所述第二可信通道的原有秘钥,对传输的数据进行加密;

第二加密模块83,配置为利用所述第二集群秘钥对所述第二会话秘钥进行加密,得到第二加密秘钥;

第二通知发送模块85,配置为向所述集群管理器发出第二通知,其中包含所述第二加密秘钥和所述第二会话标识,以使得所述集群管理器将所述第二加密秘钥传递给与所述第二会话标识相关的其他可信计算单元。

根据又一方面的实施例,还提供一种在用户和可信计算集群之间重建可信通道的装置。图9示出根据一个实施例的用于重建可信通道的重建装置的示意性框图,且该重建装置部署在集群管理器中,所述集群管理器用于管理至少一个预先建立的可信计算集群。如图9所示,该重建装置900包括:

第二通知接收模块91,配置为从第四可信计算单元接收第二通知,所述第四可信计算单元归属于预先建立的第二可信计算集群,所述第二可信计算集群中的每个可信计算单元均维护有共同的第二集群秘钥,所述第二通知中包括第二会话标识和第二加密秘钥,所述第二会话标识对应于所述第四可信计算单元与用户已经建立的第二可信通道,所述第二加密秘钥是利用所述第二集群秘钥对第二会话秘钥进行加密而得到,所述第二会话秘钥是针对所述第二可信通道的更新秘钥;

第二列表获取模块93,配置为根据所述第二会话标识,获取加入到所述第二可信通道的第二可信计算单元列表,所述第二可信计算单元列表包括所述第四可信计算单元以及同属于所述第二可信计算集群的至少一个其他可信计算单元;

移除模块95,配置为将所述至少一个其他可信计算单元的每一个,均从所述第二可信计算单元列表中移除;

第二传递模块97,配置为将所述第二加密秘钥传递给所述至少一个其他可信计算单元中的第五可信计算单元,以使得所述第五可信计算单元根据其维持的第二集群秘钥对所述第二加密秘钥进行解密以得到所述第二会话秘钥,从而基于所述第二会话秘钥而重新加入到所述第二可信通道中。

在一个实施例中,上述重建装置900还包括第二列表添加模块(未示出),配置为,在所述第二传递模块97将所述第二加密秘钥传递给所述至少一个其他可信计算单元中的第五可信计算单元之后,将所述第五可信计算单元添加到所述第二可信计算单元列表中。

根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3到图5所描述的方法。

根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3到图5所述的方法。

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

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号