密钥保管库包围区制造技术

技术编号:22061465 阅读:46 留言:0更新日期:2019-09-07 18:44
提出了用于将密钥保管库实现为包围区的技术。技术包括根据密钥使用策略在密钥保管库包围区中安全地存储用于加密系统的密钥;向保管库客户端发送密钥保管库包围区的保管库证明报告;以及利用密钥在密钥保管库中执行操作。一些实施例还包括在密钥保管库包围区处接收保管库客户端的客户端证明报告,其中保管库客户端和密钥保管库包围区托管在不同的本机包围区平台上。

Key Storage Enclosure Zone

【技术实现步骤摘要】
【国外来华专利技术】密钥保管库包围区
本公开涉及安全计算系统。
技术介绍
安全隔离区域或可信执行环境提供安全容器(本文中称为包围区(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,3941.一种密钥保管库方法,包括:向保管库客户端发送密钥保管库包围区的保管库证明报告,其中所述保管库客户端是包围区,并且所述保管库客户端和密钥保管库包围区托管在单独的本机包围区平台上;在所述密钥保管库包围区处接收所述保管库客户端的客户端证明报告;接收密钥使用策略的指示,并且其中所述密钥使用策略指定密钥应当从不离开所述密钥保管库并且应当从不被提供给任何保管库客户端;生成密钥;根据所述密钥使用策略来安全地存储所述密钥;从所述保管库客户端接收经加密的数据缓冲;利用所述密钥来解密经加密的所述数据缓冲;以及经由安全通信信道向所述保管库客户端发送经解密的所述数据缓冲。2.一种密钥保管库方法,包括:根据密钥使用策略来安全地存储用于加密系统的密钥;向保管库客户端发送密钥保管库包围区的保管库证明报告;以及利用所述密钥在所述密钥保管库包围区中执行操作。3.根据权利要求2所述的密钥保管库方法,包括:在所述密钥保管库包围区处接收所述保管库客户端的客户端证明报告;以及通过用公钥验证所述客户端证明报告的签名来验证所述客户端证明报告的完整性,所述公钥与保管库客户端的本机包围区平台相关联并且不与所述密钥保管库包围区的本机包围区平台相关联。4.根据权利要求2所述的密钥保管库方法,还包括:利用与所述密钥保管库包围区的创建方相关联的标识符,来创建所述保管库证明报告。5.根据权利要求2所述的密钥保管库方法,其中所述操作是存储所述密钥,所述操作包括:在所述密钥保管库包围区与所述保管库客户端之间建立安全通信信道;以及经由所述安全通信信道从所述保管库客户端接收所述密钥和所述密钥使用策略。6.根据权利要求2所述的密钥保管库方法,其中所述操作是创建保管库锁定的密钥,所述操作包括:从所述保管库客户端接收所述密钥使用策略的指示,并且其中所述密钥使用策略指定所述密钥应当从不离开所述密钥保管库并且应当从不被提供给任何保管库客户端;以及生成所述密钥。7.根据权利要求2所述的密钥保管库方法,其中所述操作是向所述保管库客户端提供所述密钥,所述操作包括:在所述密钥保管库包围区处接收所述保管库客户端的客户端证明报告;在所述密钥保管库包围区与所述保管库客户端之间建立安全通信信道;以及向所述保管库客户端发送所述密钥。8.根据权利要求2所述的密钥保...

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

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

1