交叉平台包围区数据密封制造技术

技术编号:22027177 阅读:33 留言:0更新日期:2019-09-04 02:42
提出了用于跨平台安全地密封和解封包围区数据的技术。来自托管在第一计算机上的源包围区的包围区数据可以被安全地密封到第二计算机上的密封包围区,并且还可以被安全地解封以用于第三计算机上的目的地包围区。公开了将包围区工作负载从一个计算机安全地转移到另一计算机。

Data Sealing in Enclosure Zone of Cross Platform

【技术实现步骤摘要】
【国外来华专利技术】交叉平台包围区数据密封
本公开涉及安全计算系统。
技术介绍
安全隔离区域或可信执行环境提供安全容器(本文中称为包围区(enclave))以用于在计算机上执行可信代码,该计算机也可以在隔离区域之外的区域中具有较少可信代码。包围区的隔离区域包括在驻留在包围区之外的代码的执行期间受到保护的存储器的一部分。隔离存储器可以包含用于包围区的代码和数据两者,并且除了对从包围区存储器读取或向包围区存储器写入的限制之外,对该存储器的保护可以包括执行包含在包围区存储器中的代码的限制。诸如存储器隔离和执行限制等包围区安全性的各方面可以例如由计算机处理器中的硬件强制执行。软件证明可以提供对特定包围区的隔离安全性以及在该特定包围区的隔离存储器区域内加载的包围区代码的信任。证明可以另外提供所证明的包围区在其上运行的硬件和软件平台的完整性的证据。诸如微软的虚拟安全模式(VSM)和英特尔的软件保护扩展(SGX)等包围区系统部分地通过将包围区与以用户模式或内核模式运行的其他代码隔离来提供安全性。完整性和机密性保证可以提供对在包围区中运行的代码的真实性以及包围区代码的安全执行具有更高信任级别的包围区。可以通过特定包围区的软件证明来提供完整性保证。软件证明可以包括在包围区内的内容(指令和数据)的加密签名的散列,并且可以与关于包围区环境的数据组合。当包围区与硬件安全模块(HSM)(诸如符合可信计算组(TCG)可信平台模块(TPM)标准的硬件)结合使用时,包围区可以提供附加级别的安全性和机密性保证。除了通过将可信本地包围区与包围区的隔离之外的不可信本地代码隔离而提供的安全性之外,包围区的软件证明可以支持远程的可信计算。远程包围区的证明可以提供对包围区中的指令执行的完整性以及由包围区处理的数据的机密性的信任。当由来自可信制造方的硬件提供远程包围区的证明时,即使当包围区驻留在由不可信方拥有和维护的未知计算机上时,也可以信任包围区。例如,当在基于因特网云的计算资源上租用计算资源时,通常就是这种情况。
技术实现思路
提出了用于抽象包围区平台的方法和系统。该方法可以包括由包围区抽象平台从包围区客户端接收用于使用包围区的第一请求。第一请求可以符合客户端抽象协议。可以将第一请求转换为符合与包围区本机平台相关联的包围区本机协议的第二请求。然后可以将第二请求发送给包围区本机平台。例如,第一请求可以是用于实例化包围区的请求、用于验证包围区的证明报告的请求、用于调入包围区的请求、或者用于分配与包围区和包围区客户两者共享的存储器的请求。本机平台可以符合英特尔软件保护扩展(SGX)包围区架构,并且本机平台可以符合微软虚拟安全模式(VSM)包围区架构。附图说明图1描绘了包围区系统的示例高级框图。图2描绘了针对具有机密性保证的消息传递的示例过程。图3描绘了针对具有完整性保证的消息传递的示例过程。图4描绘了针对具有新鲜度保证的消息传递的示例过程。图5描绘了针对包围区的软件证明的示例过程。图6描绘了示例Diffe-Hellman(棣弗-赫尔曼)密钥交换(DKE)协议。图7描绘了用于软件证明的示例信任链。图8是用于示例本地包围区系统的软件组件接口的框图。图9是用于具有抽象层的示例本地包围区系统的软件组件接口的框图。图10是用于具有抽象层的示例远程包围区系统的软件组件接口的框图。图11描绘了示例通用计算环境。图12描绘了抽象本机包围区平台的方法的示例流程图。图13描绘了抽象本机包围区平台的方法的示例流程图。图14描绘了用抽象包围区身份执行包围区操作的方法的示例流程图。图15描绘了用抽象包围区身份执行包围区操作的方法1500的示例流程图。图16描绘了具有抽象包围区身份等价性的示例系统。图17描绘了具有两个等价包围区的并行处理的示例流程图。图18描绘了具有两个等价包围区的串行处理的示例流程图。图19是示例分布式数据密封系统的框图。图20是分布式数据密封和解封的示例流程图。图21是示例性密钥保管库包围区的框图。图22是一些密钥保管库包围区操作的示例流程图。图23是利用保管库锁定密钥的密钥保管库包围区操作的示例流程图。具体实施方式公开了一种用于包围区的抽象模型,其简化了包围区客户端的开发和在包围区内运行的软件的开发。抽象模型可以是本机包围区平台架构(诸如英特尔的SGX和微软的VSM)的简化和统一。抽象层软件组件可以在包围区客户端与一个或多个本机平台之间,在包围区内的软件与一个或多个本机包围区平台之间,以及在包围区内的软件与包围区客户端之间转换通信。这样的抽象平台可以提供使得单个版本的包围区软件和包围区客户端软件能够在诸如SGX和VSM的多个本机包围区平台之上运行的益处。除了简化为包围区和包围区客户端编写软件的任务之外,它还允许包围区的最终用户在支持任何所支持的本机包围区架构的计算机上运行包围区和包围区客户端软件,而无需找到针对特定计算机的本机包围区平台而定制的包围区和包围区客户端软件两者的版本。例如,包围区抽象模型可以包括用于以下操作的基元:管理包围区的生命周期,包围区的本地和远程证明,将数据密封到包围区,进出包围区的程序传输控制,以及其他安全特征,诸如单调计数器和可信时间。还呈现了包围区的抽象或分层身份,其将包围区的身份抽象到包围区内容的单个二进制或单个散列之外。呈现软件组件接口,诸如应用编程接口(API)或应用二进制接口(ABI),以用于使用抽象模型基元开发包围区和包围区客户端程序。抽象身份可以包括可以用于安全地标识包围区实例组的嵌套身份或身份层级。本文中的包围区实例可以是指加载到同一机器上的包围区中并且具有相同身份的相同包围区二进制代码。另一方面,新版本的二进制代码或加载到不同机器上的相同二进制代码可能被视为不同的实例。这些不同的实例在身份层级中的更高级别也可以具有相同的身份。抽象的包围区身份使得相关的包围区二进制的组能够被标识为相关的。例如,同一包围区的不同版本(诸如在修复错误之前和之后的包围区二进制的版本)可以被赋予相同的名称,而与版本无关。在更高的抽象层,一族包围区中的所有包围区都可以被赋予单个族名称或身份。在这种情况下,可以一起标识执行相关但不同功能的所有包围区。其他身份层或身份分组如下所述。抽象身份的任何层可以用于各种密码操作,诸如密封数据、包围区的证明、或保证数据新鲜度(经由单调计数器)。例如,通过将由一个包围区实例产生的数据密封到更高级别的身份,该数据随后可以由具有相同更高级别包围区身份的不同包围区实例安全地消费。通过将数据密封到例如包围区族,作为该族的成员的任何包围区实例并且仅该族的成员将能够解封数据。从包围区实例对族身份的证明可以提供包围区实例是该族的成员的确保。与身份抽象相关联的单调计数器可以提供与作为抽象身份的成员的所有包围区实例相关的新鲜度保证。所公开的抽象模型包括可以简化包围区和包围区主机的软件开发的软件组件接口,诸如应用编程接口(API)或应用二进制接口(ABI)。API是用于创建软件的一组编程子例程定义、协议和工具。API可以定义软件组件的输入和输出、由软件组件使用的数据类型、以及独立于软件组件的任何特定实现的软件组件的功能或操作。API可以用诸如C、C++、C#等高级计算机语言定义。API的形式化定义可以促进软件组件之间的交互,例如在不同时本文档来自技高网
...

【技术保护点】
1.一种用于包围区数据的分布式密封的方法,包括:向源包围区证明密封包围区;经由第一安全通信信道,从所述源包围区接收包围区数据;将所述包围区数据密封到所述密封包围区;验证目的地包围区被许可访问所述包围区数据。解封所密封的数据;以及经由第二安全通信信道,向目的地包围区发送所解封的数据。

【技术特征摘要】
【国外来华专利技术】2017.01.24 US 15/414,3711.一种用于包围区数据的分布式密封的方法,包括:向源包围区证明密封包围区;经由第一安全通信信道,从所述源包围区接收包围区数据;将所述包围区数据密封到所述密封包围区;验证目的地包围区被许可访问所述包围区数据。解封所密封的数据;以及经由第二安全通信信道,向目的地包围区发送所解封的数据。2.根据权利要求1所述的方法,还包括:从所述源包围区接收许可列表;接收所述目的地包围区的证明报告;从所述目的地包围区的所述证明报告得到目的地身份;并且其中验证所述目的地包围区被许可访问包括验证所述目的地身份被包括在所述许可列表中。3.根据权利要求2所述的方法,其中所述许可列表是抽象身份类型的列表;并且所述方法还包括:接收所述源包围区的源证明报告;从所述源证明报告和所述许可列表中的抽象身份类型得到许可身份值;从所述目的地包围区的所述证明报告得到目的地身份值;并且其中验证所述目的地包围区被许可访问包括将所许可的身份与所述目的地身份进行比较。4.根据权利要求1所述的方法:其中所述源包围区由第一本机包围区平台托管,所述密封包围区由第二本机包围区平台托管,并且所述目的地包围区由第三本机包围区平台托管,其中所述第一本机平台、所述第二本机平台和所述第三本机平台中的至少两个是不相同的,并且还包括:用与所述第二本机包围区平台相关联的密钥,对密封包围区证明报告进行签名;以及用与所述第三本机包围区平台相关联的公钥,验证目的地包围区身份的完整性。5.根据权利要求1所述的方法,其中:所述源包围区由第一计算机上的本机包围区平台托管,所述密封包围区由第二计算机上的本机包围区平台托管,并且所述目的地包围区由第三计算机上的本机包围区托管;所述第一计算机、所述第二计算机和所述第三计算机中的至少两个是不相同的;从所述源包围区接收包围区数据包括在所述第二计算机处从所述第一计算机接收包围区数据;并且向所述目的地包围区发送所述所解封的数据包括从所述第二计算机向所述第三计算机发送所述所解封的数据。6.根据权利要求1所述的方法,还包括:在所述源包围区中部分地完成安全处理操作;在所述目的地包围区中继续所述安全处理操作;并且其中所述包围区数据包括在部分地完成所述源操作之后所述源包围区的状态数据。7.根据权利要求1所述的方法,其中所述第一安全通信信道是通过用密钥来加密消息而被保卫的,所述密钥在向所述源包围区证明所述密封包围区的同时被生成,并且还包括:用所述密钥来解密所述包围区数据。8.一种系统,所述系统至少包括处理器和其上存储指令的存储器,所述指令在由所述系统执行时至少引起:向源包围区证明密封包围区;经由第一安全通信信道,从所述源包围区接收包...

【专利技术属性】
技术研发人员:M·科斯塔
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1