安全执行平台群集

文档序号:1432471 发布日期:2020-03-17 浏览:11次 >En<

阅读说明:本技术 安全执行平台群集 (Secure execution platform cluster ) 是由 D.哈尼克 P.K.塔-什马 Y.温斯伯格 M.赫什科维奇 于 2018-07-05 设计创作,主要内容包括:一种计算机程序产品和系统,包括:与数据存储器连接的安全执行平台(SEP)群集,群集的每个SEP被配置得在处理数据时使用密钥来维护数据的机密性;密钥在群集的SEP之间共享,密钥由群集或其部分自动生成,并且不可用于任何非群集实体;数据存储器保留使用密钥加密的加密数据;群集的第一SEP被配置得使用密钥来加密客户端数据以获取加密的客户端数据并将加密的客户端数据存储在数据存储器中;群集的第二SEP被配置得从数据存储器中检索存储的加密数据,使用密钥来解密存储的加密数据以获取存储的加密数据。(A computer program product and system comprising: a Secure Execution Platform (SEP) cluster coupled to the data store, each SEP of the cluster configured to maintain confidentiality of the data using a key when processing the data; keys are shared among the SEPs of the cluster, the keys are automatically generated by the cluster or parts thereof, and are not available to any non-clustered entities; the data storage retains encrypted data encrypted using the key; the first SEP of the cluster is configured to encrypt the client data using the key to obtain encrypted client data and store the encrypted client data in the data store; the second SEP of the cluster is configured to retrieve the stored encrypted data from the data store, decrypt the stored encrypted data using the key to obtain the stored encrypted data.)

安全执行平台群集

技术领域

本公开总体上涉及数据安全性,尤其涉及安全执行平台。

背景技术

如今,通常被称为敏感数据的机密或私有数据通常被保留在集中式数据存储器中。此类敏感数据的来源可能会有所不同。无论是从将其商业秘密委托给数据存储器的企业实体接收数据,还是从法律要求提供生物样本的私人公民那里接收数据,还是从任何其他来源接收数据,都必须保持所存储数据的机密性。

数据存储器是可由服务器响应于客户端查询访问的,从而允许对敏感数据进行适度且有限的使用。在某些情况下,服务器确保客户端具有执行此类查询的权限,并且其操作模式与客户端的角色一致。服务器可以在处理信息时使信息匿名,并提供匿名数据作为回报。

然而,服务器仍然处理敏感数据并且有权访问原始数据本身。因此,确保服务器内没有潜在的泄漏点可能很重要。在某些情况下,此类服务器的管理员要谨慎挑选,并在给予服务器访问权限之前进行严格的审查。管理员可以不受限制地访问服务器中保留的数据,因此,可以无限制地访问集中式数据存储器中保留的所有敏感数据。

发明内容

所公开的主题的一个示例性实施例是一种系统,该系统包括:具有与数据存储器连接的安全执行平台(SEPs)的群集,其中,所述群集的每个SEP被配置得在处理数据时使用密钥来维护数据的机密性;其中,所述密钥在所述群集的SEP之间共享,其中,所述密钥由所述群集或其部分自动生成,并且对于任何非群集实体都不可用;所述数据存储器保留使用所述密钥加密的加密数据;其中,所述群集的第一SEP被配置得使用所述密钥来加密客户端数据以获得加密的客户端数据,并将加密的客户端数据存储在所述数据存储器中;其中所述群集的第二SEP被配置得从所述数据存储器检索存储的加密数据,使用所述密钥解密存储的加密数据以获得存储的加密数据的非加密形式。

所公开的主题的另一示例性实施例是一种计算机程序产品,其包括非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质保留将由安全执行平台(SEPs)在计算机化环境中执行的指令,其中,所述计算机化环境包括与数据存储器连接的SEP的群集,其中数据存储器保留使用密钥加密的加密数据,其中密钥在群集的SEP之间共享,其中密钥由群集或其部分自动生成,并且不可用于任何非群集实体,其中群集包括SEP,其中,所述群集的每个SEP被配置得在处理数据时使用密钥来维护数据的机密性,其中所述指令在由SEP执行时使SEP执行以下步骤:响应于通过安全通信信道从第一客户端设备接收第一客户端数据,使用所述密钥对所述第一客户端数据进行加密,以获得加密的客户端数据,并将所述加密的客户端数据存储在所述数据存储器中,使得任何非计算机化实体无法获取在所述数据存储器中保留的所述第一客户端数据;响应于从第二客户端设备接收到需要访问所保留的数据的访问查询,从数据存储器中检索所保留的数据的加密形式,使用密钥解密该加密形式以获得第二客户端数据,以及通过安全通信信道的提供对第二客户端设备的响应,其中所述响应基于所述第二客户端数据。

附图说明

通过结合附图的以下详细描述,将更充分地理解和理解本公开的主题,在附图中,对应或相似的数字或字符指示对应或相似的组件。除非另有指示,否则附图提供本公开的示例性实施例或各方面,并且不限制本公开的范围。在附图中:

图1示出了根据所公开的主题的一些示例性实施例的系统的框图;

图2A-2D示出了根据所公开的主题的一些示例性实施例的方法的流程图;和

图3示出了根据所公开的主题的一些示例性实施例的系统的示意图。

具体实施方式

所公开的主题所解决的一个技术问题是在处理数据时保持数据的机密性。

许多应用和程序可能涉及处置和处理敏感数据。应当保护敏感数据,防止由在较高特权级别运行的流氓软件进行未经授权的访问或修改。可能需要保留敏感数据的机密性和完整性,而又不破坏合法软件或用户利用或管理与敏感数据相关联的平台资源的使用的能力。

在一些示例性实施例中,可以以合法软件或用户可以对其进行访问、具有在不影响现有数据的机密性的情况下添加新数据的能力、将现有数据用于提供不同服务等等的方式来保留敏感数据。在一些示例性实施例中,可能希望防止不受信任的应用和用户访问敏感数据,无论是读取还是更新敏感数据。

所公开的主题所处理的另一技术问题是减少诸如人类管理员或用户之类的易受攻击的非计算机化实体所感知的风险。

许多与敏感数据有关的许多应用和服务都可能依赖于集中的受信方来管理和运行它们。在某些情况下,受信方(例如管理员)可能会滥用敏感数据或对敏感数据进行错误处理,从而导致安全漏洞。作为示例,可能用受信方来处理保留安全的个人医疗保健数据的数据库。作为另一个示例,管理员可能管理安全的生物统计数据库。作为又一示例,在诸如系统处理由经纪公司发布的商业交易、处理拍卖和接受投标等的情况下,数据存储器可能存储财务数据。所公开的主题还可以用于信息托管、生物信息学数据平台、医疗保健服务平台等。

在某些情况下,黑客、流氓员工等可能会闯入特权帐户,访问敏感数据,复制或泄漏敏感数据等,从而损害敏感数据的安全性,例如斯诺登泄漏。

所公开的主题所解决的又一个技术问题是提供一种计算机化平台,一旦运行,该平台完全向人类用户隐藏数据,并且不受任何人类权威的约束。

保持对不受保护的计算机化实体或用户隐藏数据是实际安全执行中最困难的问题之一。通常,执行平台由人类用户管理。即使执行平台利用加密密钥来加密处理过的数据,这种密钥也是人类用户已知的或可由其获得的,例如在服务器崩溃,需要执行新的服务器来替换它,并要求输入密钥以便解密敏感数据时的情形。获取密钥的攻击者可以从加密数据中恢复原始数据,并恶意地使用或传播。攻击者可以从知道密钥的人类实体获得密钥,例如通过窃取、通过收买、人为错误、社交工程等来获取密钥。另外或可替代地,攻击者可以通过引入要在执行平台上执行的恶意软件代理来获取密钥。可以例如通过使用社交工程来向恶意软件代理提供管理员的许可,结果,恶意软件代理可能获知平台管理员可访问的所有信息。

一种技术解决方案是由安全执行平台(SEP)的群集自动生成密钥。在处理数据时,可以利用密钥来维护数据的机密性。该密钥可能仅对该群集的SEP可用。不是群集成员的其他计算机化实体,诸如服务器、SEP、计算机化设备等,可能无法访问该密钥,并且可能无法获取该密钥。此外,由SEP执行的诸如以软件、固件、硬件、其组合实现的代理,如果不被认为是“授权的”,则可以限制它们访问密钥。在某些情况下,SEP可以同时执行授权的代理和未授权的代理,并仅允许遵循所公开主题的协议的授权的代理访问密钥。在一些示例性实施例中,唯有由SEP执行的授权代理才可以获取密钥、使用密钥解密敏感数据、使用密钥来加密敏感数据以及处理解密的数据。另外或可替代地,唯有授权的代理才可以将密钥转发给其他代理或SEP。

在一些示例性实施例中,SEP群集可以连接到被配置得保留敏感数据的数据存储器。数据存储器可以保留使用密钥加密的数据的加密形式。数据存储器中存储的数据可以由群集的SEP执行的授权代理访问,这些代理可以解密该加密。可以使用密钥并基于数据的加密形式来重建数据。

在一些示例性实施例中,SEP的授权代理也可以被配置得使用密钥来解密数据并且防止对解密后的数据的任何访问,即使这样的数据是用于计算的。SEP可以将解密的数据保留在安全容器中,除了本身执行处理的授权代理外,该容器不是由SEP执行的所有特权软件(例如,内核、虚拟机管理程序等)都能访问的,结果,只有授权代理才能访问解密形式的敏感数据。

在一些示例性实施例中,可以在群集的SEP之间共享密钥。群集的每个SEP可以被配置得在处理数据时使用密钥来维护数据的机密性。

在一些示例性实施例中,群集的SEP可以被配置得使用密钥来加密数据以获得加密的数据。然后,群集的SEP可以在数据存储器中存储加密的数据。群集的SEP可以进一步被配置—诸如通过执行授权的代理—以从数据存储器中检索加密的数据,并使用密钥对存储的加密数据进行解密,以获得存储的加密数据的非加密形式。在某些情况下,SEP可以被配置得服务来自客户端设备的客户端查询,并访问数据存储器以实现此类查询。

在一些示例性实施例中,密钥可以由一个SEP、由多个SEP的组合等自主地生成。群集可以使用共识协议(例如PAXOS、Chandra-Toueg共识算法、筏(raft)等)来同意密钥。在一些示例性实施例中,可以使用共识协议来选择生成密钥本身的先导(leader)。另外或可替代地,几个SEP可以生成随机值,这些随机值被组合以创建密钥。群集使用的密钥可能永远不会显示或以其他方式输出给人类用户,并且可能会被限制分发给不属于群集的任何其他计算机化设备,或任何未经授权的代理,即使该代理是由群集的SEP执行的。这样,没有人类用户或其他未授权实体可以知道密钥,并且这种实体(如果受到损害)也不会损害敏感数据的安全性。

在一些示例性实施例中,群集可以被配置得动态创建副本并将新的SEP添加到群集。在某些情况下,如果群集中的SEP的数量低于预定阈值,则将新SEP添加到群集中,并在每个新SEP中启动授权的代理。新的SEP可能会从群集中已经存在的SEP接收密钥。在一些示例性实施例中,群集可以保持最小的大小,以避免密钥的潜在丢失以及随之而来的敏感数据的丢失。

在一些示例性实施例中,可以为群集的SEP提供不同的任务和特权。在一些示例性实施例中,有些SEP可能能够将数据写入数据存储器,而有些SEP则可能能够从数据存储器读取数据。另外或可替代地,有些SEP可能能够向群集添加新的SEP。在一些示例性实施例中,可以为创建的新SEP赋予特定任务(例如,写入、读取等)。可以给新的SEP预定的寿命,例如一天、一小时等。在预定寿命结束时,新的SEP可以自动退出群集。在一些示例性实施例中,可以禁止新的SEP将密钥分配给其他设备,包括其他SEP,从而减轻将新的SEP添加到群集的潜在风险。

利用所公开的主题的一种技术效果是防止由于内部人员攻击、流氓员工,特权用户的设备被黑客入侵、管理员的社交工程等而导致的数据泄漏。

在一些示例性实施例中,群集充当敏感数据的唯一有效网关,从而限制了集中式数据存储器的潜在数据泄漏。

在一些示例性实施例中,所公开的主题提供了一种自治的计算机化实体,其能够在没有人为干预的情况下进行操作,并且能够从人为控制的系统(包括来自有权访问硬件本身的用户)保持密钥,并由此对正被执行的操作系统具有根本特权。

另一个技术效果可以是有效地防止敏感数据丢失。与单个SEP相比,使用SEP群集可以降低所有SEP同时无法运行的可能性,因此,可以降低只有它们知道的密钥被丢失的可能性。如果密钥丢失,则加密的数据可能变得无用。

另一技术效果可以是提供自主数据管理—将数据的责任从管理员转移到安全硬件。自主数据管理不可能受到任何外部方的影响或检查。自主数据管理的关键特性是它只执行其被编程要执行的操作。

所公开的主题可以提供对任何现有技术以及本领域中已经例行化或常规化的任何技术的一种或多种技术改进。

鉴于本公开,其他技术问题、解决方案和效果对于本领域普通技术人员而言可能是显而易见的。

现在参考图1,其示出了根据所公开的主题的一些示例性实施例的系统的图示。

在一些示例性实施例中,系统100可以包括SEP 122、124、126和128的群集120。群集120可以包括任何数量的SEP,并且图1仅是示例性的。每个SEP都可以基于受信硬件执行平台,例如IntelTM的Software Guard ExtensionsTM(SGXTM),具有受信执行技术(TXT)的服务器,具有受信平台模块(TPM)的计算机化设备,IBMTM的Secure Blue++TM,AMDTM的SecureMemory EncryptionTM(SMETM)等。

作为示例,SGXTM可以是对IntelTM架构的一组硬件/软件扩展,旨在为在其中所有特权软件(例如内核、管理程序)可能是恶意的的计算机上执行的安全敏感计算提供完整性和机密性保证。受信硬件可以建立安全容器,并且远程计算服务用户可以将所需的计算和数据上传到安全容器中。受信硬件可以在对数据进行计算时保护数据的机密性和完整性。SGXTM产品还向与在受信硬件托管的安全容器中运行的特定软件进行通信的用户提供证明。

在一些示例性实施例中,SEP可以是内置的安全执行平台,其被配置得提供安全的软件计算和执行,并防御旨在通过破坏系统、基本输入/输出系统(BIOS)代码、修改平台的配置等而访问敏感数据的基于软件的攻击。

群集120的每个SEP都可以保留一个密钥130。密钥130可以在群集120的SEP之间被共享。密钥130可以是对任何非群集实体都不可用的。将注意的是,群集120的SEP可以执行授权的和未授权的代理。只有由群集120的SEP执行的授权代理,才可以被视为群集实体。

在一些示例性实施例中,密钥130可以由群集120或其一部分自动地生成。密钥130可以被转发到群集120的所有SEP。可以用密钥130将群集120的每个SEP配置得在处理数据时保持数据的机密性。密钥130可以被SEP用来确定对数据或其表示进行加密的密码算法的功能输出。作为示例,密钥130可以指定数据的纯文本表示到其密文表示的转换,对于解密算法,反之亦然。密钥130可以指定诸如数字签名方案、消息认证代码等其他密码算法中的变换。

在一些示例性实施例中,可以将密钥130生成为对称密钥,以用于数据的加密和解密。另外或可替代地,密钥130可以是非对称密钥,包括一对密钥,一个用于加密,另一个用于解密。

在一些示例性实施例中,密钥130可以由群集120的特定SEP(例如,SEP 126)生成。SEP126可以被配置得将密钥130分发给其他SEP 122、126和128。SEP 126可以利用一个密码系统来生成密钥130。

在一些示例性实施例中,可以将群集120配置得响应于生成密钥130而采用一个共识协议来同意密钥130。在一些示例性实施例中,SEP 126可以充当群集120的先导。可以预定地选择先导,可以基于SEP之间的预定顺序来确定先导,可以由群集120动态地选择先导,如此等等。先导可以被配置得生成密钥130,并且使用其生成的密钥。另外或可替代地,在不同的SEP之间可以存在竞争,其中每个SEP都能生成密钥130。然后,群集120可以诸如使用共识协议,来选择将所生成的密钥中的哪个作为群集120的密钥130。另外或可替代地,几个SEP可以诸如通过各自确定密钥130的不同部分,一起生成密钥130。作为示例,每个SEP可以生成256比特,而密钥130可以由四组256比特组成。

在一些示例性实施例中,系统100可以包括数据存储器110。数据存储器110可以包括能够保留数据的计算机可读存储器。在一些示例性实施例中,数据存储器110可以是独立磁盘冗余阵列(RAID)、网络附加存储器(NAS)、存储区域网络(SAN)、NoSQL或SQL数据库、对象存储库等。数据存储器110可以被配置得保留使用密钥130加密的加密数据。在一些示例性实施例中,加密是由群集120的SEP执行的,而不是由数据存储器110执行的。

例如,数据存储器110可以保留一个国家的公民的指纹数字表示的生物测定数据库。数据存储器110中的数据可用于在执行政府研究、识别个人和识别犯罪活动的潜在嫌疑人等中创建生物可验证的身份证和护照。

在一些示例性实施例中,数据存储器110的管理员可以管理数据存储器110。管理员可以不受限制地访问数据存储器110。另外或可替代地,管理员可以在数据存储器110中创建、检索和更新记录。但是,在没有密钥130的情况下,管理员可能无法访问解密形式的敏感数据。例如,生物测定数据库可以由作为国家生物测定数据库管理机构的雇员的管理员管理。管理员可以在没有密钥130的情况下管理生物测定数据库、更新记录、创建新记录、删除记录等。例如,管理员可以不受限制地访问用于向数据库发出结构化查询语言(SQL)命令的顾问。然而,由于管理员没有密钥130,所以管理员无法解密保存在数据存储器110中的加密数据。在一些示例性实施例中,管理员可能无法在不访问密钥130的情况下将使用密钥130可解密的新加密数据引入数据存储器110。

群集120中的每个SEP可以连接到数据存储器110。一些SEP可以被配置得向数据存储器110写入数据、从数据存储器110读取数据、从数据存储器110读取数据和向数据存储器110读取数据等。在一些示例性实施例中,仅允许群集120所包含的SEP进行对数据存储器110的读取和写入,并且数据存储器110可被配置得拒绝不是由群集120的成员执行的任何企图访问。

在一些示例性实施例中,可以配置一个由SEP 122执行的授权代理来用密钥130加密客户端数据以获得加密的客户端数据。由SEP 122执行的授权代理可以将加密的客户端数据存储在数据存储器110中。保留在数据存储器110中的客户端数据是任何非群集实体无法获得的。仅具有对数据存储器110的写入访问权的SEP 122,可以被称作写入器(writer)SEP。

在一些示例性实施例中,可以配置一个由SEP 122执行的授权代理来响应于从客户端设备140接收客户端数据而加密客户端数据。客户端设备140不能直接获得加密的客户端数据。另外或可替代地,客户端设备140可以仅提供保留在数据存储器110中的敏感数据的一部分。因此,从客户端设备140的潜在信息泄漏是有限的风险,不构成整个数据库被未经授权的实体访问的风险。

在一些示例性实施例中,可以配置一个由SEP 124执行的授权代理来从数据存储器110中检索存储的加密数据。由SEP 124执行的授权代理可以被配置得使用密钥130来解密存储的加密数据,以获得存储的加密数据的非加密形式。仅具有对数据存储器110的读取访问权的SEP 124,可以被称为读取器(reader)SEP。

在一些示例性实施例中,可以配置一个由SEP 124执行的授权代理来响应于从客户端设备140接收一个访问查询而检索和解密存储的加密数据。客户端设备140可能需要在数据存储器110中保留的数据。由于客户端设备140没有直接访问数据存储器110的权限,因此客户端设备140可能需要通过将查询发送到群集120或直接发送到群集120的一个SEP(例如SEP 124),来访问在数据存储器110中存储的加密数据的指定部分。在客户端设备140没有对数据存储器110的访问权的情况下,由SEP 124执行的授权代理可以从数据存储器110中检索相关的保留的数据的加密形式,使用密钥130解密该加密形式,并将未加密的数据提供给客户端设备。可以理解的是,即使假设客户端设备可以访问数据存储器110,客户端设备也可能无法解密存储的数据,因为客户端设备无法拥有密钥130。

在一些示例性实施例中,可以使用相同的SEP,例如SPE 122,来执行数据的加密和解密。另外或可替代地,某些SEP(例如SEP 122)可能具有对数据存储器110的只写访问权限,而其他SEP(例如SEP 124)可能具有对数据存储器110只读访问权限。

在一些示例性实施例中,客户端设备140可以是非SEP设备,诸如个人计算机、膝上型计算机、移动设备等。人类用户可以使用客户端设备140,诸如使用查询、使用专用用户界面等,来访问数据存储器110。在一些示例性实施例中,客户端设备140可以是提供基于网络的用户界面以基于用户输入来生成查询的服务器,并且被配置得向群集120发出查询。

可以理解,客户端设备140可以直接或者可以不直接连接到SEP 122或另一个SEP。在一些示例性实施例中,客户端设备140可以发出由群集120的网关设备(未示出)接收到查询。作为响应,网关设备可以例如基于负载平衡考虑、SEP的访问权限、查询类型等,选择群集120的SEP来处理该查询。在一些情况下,一些SEP可以被预先指定用于处理特定类型的查询,并且群集120可以被配置得将查询路由到适当的SEP。

参考生物特征数据库的例子,内政部的雇员将被授权从公民那里收集生物特征识别数据,并将数据传输到生物特征数据库(例如110)。内政部的雇员可以使用诸如客户端设备140之类的设备来发布更新或***查询,以便将数据添加到生物特征数据库中。该查询可由SEP 122接收,SEP 122可使用密钥130来加密数据并将加密数据存储在生物测定数据库中。一旦数据被加密,雇员可能无法从生物特征数据库中提取数据,因为他们从来就不知道密钥130。

另一方面,生物测定数据库中存储的数据可用于签发居民身份证件、用于验证个人身份等。授权成员,例如警官、安全机构的雇员等,可能需要重新检查个人的生物特征识别数据。为此,他们可以使用客户端设备140,并基于他们的权限,他们可以向群集120的SEP(例如124)发送访问查询。该SEP可以具有密钥130,并且相应地可以检索相关加密的个人的生物特征识别数据、解密加密的个人的生物特征识别数据、处理该生物特征识别数据并经由客户端设备140向授权成员提供经处理的结果,而授权成员无需知道密钥130,或者具有对生物特征数据库的直接访问权。在一些示例性实施例中,基于用户的权限,用户可能被限制执行特定类型的查询、接收不同粒度的数据等。例如,有些官员可能只能***新数据,而其他官员则可能被授权检索有关特定人员的个性化数据。还有其他官员可能有权访问验证生物测定信息的正确性但不向官员生物测定信息本身的验证过程,例如通过获取生物测定读数,将其传输到SEP,SEP随后根据存储的生物测定数据验证该信息。还有其他官员可以被授权发出有限数量的查询。

在一些示例性实施例中,不允许群集120的SEP将密钥130转发给任何非群集实体—例如不属于群集120的其他SEP,或转发给任何其他设备。SEP可被编程为不在它们的用户界面中显示密钥130或以其他方式向人类用户提供密钥130。群集120的SEP的用户和由此执行的其他未经授权的代理可能无法获得密钥130,尽管他们可以访问SEP。

在一些示例性实施例中,SEP 128可被配置得向群集120添加新SEP,例如新SEP129。可以定义增强型群集120b。SEP 128可以被配置得在形成增强型群集120b时通过安全通信信道将密钥130转发到新SEP 129,作为将新SEP 129添加到群集120的过程的一部分。SEP 128可以被称为种植者SEP。

在一些示例性实施例中,向另一实体(例如种植者SEP)转发密钥130的任何SEP在转发该密钥之前可以使用证明来验证新SEP确实是执行授权代理的SEP。新SEP在接受所发送的密钥之前可以使用证明来验证种植者SEP确实是执行授权代理的SEP。

在一些示例性实施例中,可以禁止新SEP 129将密钥130转发到任何计算机化设备。在一些示例性实施例中,新SEP 129本身可能不是种植者SEP,因此将无法继续增加增强型群集120b的大小。

在一些示例性实施例中,SEP 128可被配置得将对新SEP 129设置预定寿命,例如几分钟、一小时、一天等。新SEP 129可以被配置得在预定寿命结束时从群集120b中移除。新SEP可以被配置得自动退出群集、由另一个设备(例如SEP 128或群集120的另一个管理设备(未示出)等)从增强型群集120中移除。在一些示例性实施例中,新SEP 129可被配置得在退出增强型群集120b时删除或清除它保留的密钥130的副本。

在一些示例性实施例中,SEP 128可被配置得响应群集120中的SEP的个数低于预定义阈值,例如2、3、10等,将新SEP 129添加到群集120。在一些示例性实施例中,可以期望保持最小数量的SEP,例如以降低丢失密钥130的所有副本的可能性。当SEP的数量达到最小阈值时,种植者SEP可以被配置得开始生成新的SEP,这些新SEP被添加到群集120,以确保密钥130的足够数量的副本共存。

另外或可替代地,可以将SEP 128被配置得响应于SEP 122或SEP 124变得不操作而将新SEP 129添加到群集120。新SEP 129可被配置得替换该不可操作的SEP。在一些示例性实施例中,新SEP 129的寿命可被限制为预定的寿命,该预定的寿命被估计为足够到该不操作的SEP再次操作为止。

可以理解,在某些情况下,其他SEP(例如SEP 122、SEP 124或SEP 126)可以向群集120或群集120b添加新SEP。在默认情况下,可以禁止新SEP(例如新SEP 129)向增强型群集120b添加新SEP。但是,在某些情况下,例如,如果新SEP 129成为增强群集120b的骨干的一部分,如果种植者SEP变得不操作,等等,群集120的管理员可以允许向新SEP 129添加新成员。在一些示例性实施例中,管理员可以允许将SEP的寿命延长到超过原始预定寿命。

现在参考图2A,其示出了根据本主题的一些示例性实施例的方法的流程图。

在步骤210,可以接收客户端数据。在一些示例性实施例中,客户端数据可以由计算机化环境中的一个SEP(诸如图1中的122)接收。该SEP可以是SEP群集的成员,诸如图1中的120,其具有与数据存储器(例如图1中的110)的连接。数据存储器可以保留使用密钥加密的加密数据。该密钥可以在群集的SEP之间共享。所述群集的每个SEP可被配置得在处理数据时使用密钥维护数据的机密性。

在一些示例性实施例中,客户数据可以包括敏感数据,例如患者简档、医疗信息、国家安全数据、安全支付方法数据、财务记录、机密数据等。可能需要将敏感数据机密地存储在安全数据存储器中以供将来使用。

在一些示例性实施例中,客户机数据可以从客户机设备(诸如图1中的140)接收。客户端设备可以是非SEP设备,例如服务器、计算机化设备等。客户端设备可以由人类用户操作,也可以不由人类用户操作。客户端设备可以使用户能定义要发出的查询。查询可以是在数据存储器中引入新数据或更新现有记录的写入查询。可以使用由客户端设备执行的本机程序、由用户设备执行时显示图形用户界面(GUI)并将查询转发到客户端设备的程序、由客户端设备执行且用户可以使用用户设备(诸如执行网络浏览器的计算机)访问的基于网络的界面等,来定义查询。客户端设备可能即无法访问该密钥,也无法保留该密钥。在一些示例性实施例中,客户端设备可能不具有对数据存储器的直接访问权。

在一些示例性实施例中,客户机设备可以直接向SEP提供客户机数据。另外或者替代地,客户机设备可以联系群集的网关,其可以将通信从客户机设备定向到目标SEP进行处理。

在步骤215,可以使用密钥对客户端数据进行加密以获得加密的客户端数据。客户机数据的编码方式可以使得只有具有密钥的SEP才能对其进行解密。在一些示例性实施例中,步骤215可以由由SEP执行的授权代理来执行。

在一些示例性实施例中,可以使用加密算法对客户端数据进行加密。密钥可以是加密算法的一部分、加密算法的参数等。SEP可以能使用密钥来解密加密的客户端数据

在步骤220,可以在数据存储器中存储加密的客户端数据。

现在参考图2B,其示出了根据本主题的一些示例性实施例的方法的流程图。

在步骤230,客户端查询可以被一个SPE(诸如图1的124)接收。该SEP可以是具有到数据存储器的连接的SEP的群集(诸如图1中的120)的成员。数据存储器可以保留使用密钥加密的加密数据,例如在步骤220中存储的加密客户端数据。

在一些示例性实施例中,该查询可以定义客户端设备(诸如图1的140)要获得的存储数据的一部分。另外或可替代地,该查询可以定义先由SEP获取用于处理、然后将基于其的处理结果提供给客户端设备的存储数据的一部分。

在步骤235,数据存储器可由SEP访问。在一些示例性实施例中,数据存储器可仅由群集的SEP访问。SEP可以检索与完成查询相关的加密数据。

在步骤240,SEP可以使用密钥来解密从数据存储器检索的加密数据。加密数据可以是由该SEP或者群集中的不同的SEP使用密钥预先加密的。通过解密可以获得该加密数据的非加密形式。在一些示例性实施例中,步骤240可以由由该SEP执行的授权代理来执行。

在步骤245,可以完成查询。SEP可以利用该加密数据的非加密形式来完成查询并向客户端设备提供相关信息。在一些示例性实施例中,该查询可能要求在SEP上、例如由由授权代理执行对敏感数据的处理,而不向客户端设备公开敏感数据本身。一旦处理完成后,可以通过返回处理结果(例如,通过/失败结果)来完成查询。另外或可替代地,该查询可能要求提供敏感数据的一部分,例如保留敏感数据的记录的某些字段的内容。在这种情况下,客户端设备最终可以被提供保留在数据存储器中的敏感数据的一部分。可以在客户端设备不具有对数据存储器的直接访问权或不具有独立地对保存在其中的加密数据进行解密的情况下完成查询。

现在参考图2C,其示出根据本主题的一些示例性实施例的方法的流程图。

在步骤250,可以自动生成密钥。在一些示例性实施例中,密钥可以由一个SEP群集生成。

在一些示例性实施例中,密钥可以由群集的一个或多个SEP生成。作为示例,多个SEP可以通过各自生成密钥的不同部分来共同生成密钥,例如可以通过连接不同部分,将这些不同部分可以组合在一起,来创建密钥。作为另一个例子,单个SEP可以生成密钥。

在步骤255,群集可以使用共识协议来商定密钥。共识协议可以使各个SEP能就一个公共密钥达成一致。在一些示例性实施例中,SEP可各自生成密钥的候选值(例如,在步骤250),彼此通信,并就密钥的单个一致值达成一致。另外或可替代地,可以对在步骤250生成的单个候选密钥使用共识协议,并且在每次迭代中迭代地重复以生成新的候选密钥,直到达到一致性值为止。

在一些示例性实施例中,共识协议可应用于商定指示群集的密钥的先导SEP。另外或可替代地,共识协议可以基于SEP的多数或其他法定人数,就密钥达成一致。

在一些示例性实施例中,共识协议可以由一个或多个不是SEP的管理员运行,并且在设置时提供给SEP。

在一些示例性实施例中,基于共识投票,群集可以就群集要使用的密钥达成一致。在一些示例性实施例中,该决定可以是不可撤销的。另外或可替代地,群集可以周期性地通过商定第二密钥来决定改变密钥。可以用密钥对敏感数据进行解密,再用第二密钥进行加密后再存储。

在步骤260,可以将密钥分发给群集的所有成员。在一些示例性实施例中,密钥可以由先导SEP分发给成员,或者作为应用共识协议的一部分。先导SEP可以被配置得将密钥转发到群集中尚未保留密钥的每个SEP。在一些示例性实施例中,不需要分发,因为在共识协议期间SEP已经被告知密钥。

在步骤265,可以用密钥来保持数据的机密性。群集的SEP可以使用密钥,以便在处理数据时保持数据的机密性。密钥可以是对任何非群集实体不可以的,可以禁止SEP将其分发到任何非SEP设备和不是群集新成员的SEP设备。

在一些示例性实施例中,可以用密钥对数据加密后在数据存储器中存储,并在使用加密数据之前用密钥对其进行解密。

现在参考图2D,其示出根据本主题的一些示例性实施例的方法的流程图。

在步骤270,可以确定群集的成员数目低于预定阈值。预定阈值可以是例如约2、约3、约10等。在一些示例性实施例中,预定阈值可以与群集的目标大小有关,例如期望的最佳大小的约40%。在一些示例性实施例中,预定阈值可以是最小绝对大小和最小相对大小的组合。

在一些示例性实施例中,阈值可以与可能导致群集的所有SEP发生故障并可能丢失密钥的灾难的潜在风险有关。在一些示例性实施例中,阈值可以提供期望的SEP冗余。另外或可替代地,阈值可以要求SEP分布在不同的地理位置,例如至少在三个不同的站点中。此外,阈值可能与可同时降低所有SEP故障的风险的风险因素有关。

另外或可替代地,该确定可以是群集的SEP变得不可操作的确定。因此,可能需要添加新的SEP来代替群集中的不可操作的SEP。

在步骤275,可以向群集添加新成员。新成员可以是SEP。在一些示例性实施例中,新SEP可以是与已经存在于群集中的SEP相同类型的SEP。

在一些示例性实施例中,新成员可以由种植者SEP添加到群集中。种植者SEP可以是被配置得向群集添加新成员的群集成员。种植者SEP可被配置得响应于步骤270的确定而添加新成员。种植者SEP可以发送一个将被加载到新SEP上的软件,由新SEP在成为群集的一部分时使用。可以理解,除了添加新成员的任务之外,种植者SEP还可以被配置得在对数据存储器进行写入、读取或读写组合操作时处理数据。

另外或可替代地,新成员可以由群集的任何原始成员添加。群集的原始成员可以是最初生成群集时添加到群集的SEP。原始成员可以具有向群集添加新成员、将密钥转发到新SEP等的权限。非原始SEP,诸如新成员,可能被允许也可能不被允许添加新成员。

在一些示例性实施例中,新成员可以是临时成员。种植者SEP可被配置得设置新成员的预定寿命。新成员可以被配置得在预定寿命结束时从群集中移除。预定寿命可以设置为十分钟、一小时、十小时、一天,等等。可以基于添加新成员的原因来设置预定寿命,例如,在添加新成员以执行特定任务(例如在工作负载激增期间添加新数据)的情况下,可以将预定寿命设置得足以使新SEP添加新数据。作为另一示例,在添加新SEP以替换不可操作的SEP的情况下,预定寿命可基于不可操作的SEP的预期恢复时间。

在步骤280,密钥可以转发给新成员。新成员可以被配置得在处理数据时使用密钥来维护数据的机密性。可能禁止新成员将密钥输出到任何非群集实体,或禁止将密钥转发到不属于群集的任何设备。

在一些示例性实施例中,成员可以由群集的管理员添加。种植者SEP可以被配置得向新成员提供密钥。

在一些示例性实施例中,种植者SEP可被配置得在转发密钥之前验证新成员是允许被添加到群集的授权SEP。种植者SEP可以检查新成员是否正在运行授权代理。另外或可替代地,新成员可以被配置得在接受密钥之前(例如基于证明)验证种植者SEP是运行授权代理的SEP。

在一些示例性实施例中,可以基于种植者SEP、群集管理员或添加新成员的任何其他SEP提供的许可,将新成员配置得使用密钥来进行例如对连接到群集的数据存储器的写入或读取。新成员可以被配置得使用密钥来加密客户端数据以获得加密的客户端数据并将加密的客户端数据存储在数据存储器中。另外或可替代地,新成员可以被配置得从所述数据存储器检索存储的加密数据,使用密钥解密存储的加密数据以获得存储的加密数据的非加密形式。需要注意的是,新成员可以被限制于执行特定的活动,例如对数据存储器具有只写或只读访问权限等。

在步骤285,可以确定新成员的预定寿命已经达到。在一些示例性实施例中,该确定可以由种植者SEP执行。另外或可替代地,该确定可以由新成员执行。

在步骤290,可以从群集中移除新成员。在一些示例性实施例中,响应于在步骤285新成员确定已经达到预定寿命,新成员可以清除密钥并退出群集。在一些示例性实施例中,可以如图2C所示的那样确定和使用替代密钥,而不是依赖于新成员来清除密钥,。

实施例

实现了所公开主题的实施例。该实施例中的所有敏感数据都是用一个只有在IntelTM SGX Enclaves(隔离区)中运行的软件才知道的密钥加密的。隔离区(Enclaves)是英特尔SkylakeTM处理器中在加密数据上运行所有计算的特殊计算模式。结合远程认证功能(代码和平台验证机制),隔离区可以作为执行所有数据相关操作所需的机器人。该实施例确保加密数据的密钥仅驻留在隔离区内运行的授权代理内,因此,加密数据只有在通过隔离区访问时才有用。在某种意义上,该实施例通过在安全执行环境中运行的机器人代码来代替特权管理员和软件环境。

在该实施例中,如果加密密钥由于永久性硬件故障而丢失,则数据变得无用。该实施例运行共享相同密钥的代理群集,而不是单个隔离区。这既保证了密钥的持久性,又有助于实现数据服务的可扩展性。

现在参考示出实施例的示意图的图4。

该实施例包括共享被称为“AE密钥”的密钥的的隔离区代理的集合。诸如410、412、414之类的代理通常可以在内部或在云中运行。它们在隔离区中运行的事实确保了它们在受信任或不受信任的环境中运行的安全性。该实施例将这些代理分类为核心代理(“C”,例如410),读取器(“R”,例如414)和写入器(“W”,例如412)。核心代理负责使AE密钥保持活动状态,并将此密钥提供给读取器和写入器。因此,建议将核心分布在多个物理位置或数据中心中,通常在每个位置使用少量核心代理。应该按需创建读取器和写入器,以处理当前的工作量。因此,预计核心代理的数量将保持稳定并保持平衡,而写入器和读取器会根据工作负载特征而波动。图4显示了推荐在3个不同的物理位置420、422、424上部署代理的示例。

该实施例的设计试图最小化在代理隔离区内部执行的动作,并在可能的情况下将责任中继到非安全计算节点。存储器430是这种情况的主要示例,其中代理将加密的数据写入共享的存储器,从而在各个部署站点之间提供可用性和可靠性。这可以是对象存储器或具有内置复制功能的群集文件系统、NoSQL数据库或具有复制功能的标准数据库。

证明服务440是隔离区代码与系统中的各个实体与在其中实际执行SGXTM硬件验证的IntelTM证明服务(IASTM)之间的中介。该实施例的设计要求一旦创建了隔离区,就对其执行远程认证,以生成可公开验证的报告(包括由MRENCLAVE的值表示的隔离区标识)以及用于身份验证和通信的特定隔离区公钥。一旦此经过验证的报告公开,它便成为各实体核实隔离区的有效性并与之建立新的安全通信渠道的一种手段。

管理450负责整个群集的协调,包括代理节点的创建(和退出),以用于群集的初始开始以及为了可用性和持久性来缩放群集。管理450由两个主要子组件组成:协调器452子组件负责驱动实际操作,包括新代理的创建以及冗余或故障代理的退出。尽管可以手动处理这些操作,但是在该实施例中,在代理中实现了一种自动化的DevOps机制。一旦创建了新的代理,它们就无法完全发挥作用,除非它们由多个管理员批准并注册。注册是在第二个子组件—公告板454—中完成的,公告板是经过身份验证的注册表,可以充当群集的确定状态。公告板454中的这个代理的信息被发布,供公共客户端和实际代理隔离区使用。公告板454中的主要数据包括群集配置,包括各种代理的列表、它们的角色,公共密钥和证明报告。

客户端身份管理(IdM)460是处理IT组织如何定义用户身份及其特权的管理组件。在我们的系统中,IdM 460负责定义客户端实体以及实体拥有哪些权限或访问权限。在生物特征数据库的用例中,客户端可以是边界控制人员或服务亭。在像医疗保健服务这样的以访问控制为中心的用例中,这可能是医疗保健员工的凭证,伴随着关于每个员工有权检索哪些信息的严格政策。读取器和写入器的作用是执行IdM 460规定的策略。请注意,在这种情况下,IdM 460成为链中的薄弱环节,容易受到攻击。该实施例的设计试图创建一种情况,其中即使管理员具有自由访问数据的工具,也不会检测到该数据访问,至少具有审计跟踪。

在该设置中,可以使用其他措施来保护IdM460。例如:在客户端和属性列表不是非常动态的情况下,可以以安全的方式将它们传递给代理,并在使用它们之前在那里对其进行审核。同样,可以将某些密钥凭据硬编码到代理代码中,以防止篡改此信息。最后,可以设置一些硬性规则并始终执行这些硬性规则,例如对单个人一天之内可以提取的数据量设置硬性限制(并标记特权用户的可疑行为)。

客户端470是由实施例管理的数据的用户(例如,医疗保健情形中的边境控制亭或医生/实验室)。客户端470基于代理的公钥,经由安全通信信道(例如,安全套接字层(SSL))与读取器和写入器进行交互。在如何部署它们、在什么系统上以及以什么语言实现它们等方面,没有限制。

在正在运行的群集中,客户端470由读取器和写入器代理(例如414、412)服务,可以通过公告板454访问其列表。希望进一步验证读取器/写入器身份(而不是相信公告板454)的客户端,可以通过验证在公告板454上发布的相应隔离区的证明报告来做到这一点。然后,客户端470打开与读取器和写入器的SSL会话(或可替代的安全通信通道)并通过其发送它们的输入。代理由安全和不安全的部分组成。作为标准过程运行的不***分处理与在隔离区中运行的***分的所有通信。在与客户端的每次交互中,第一步是验证该客户端是否具有执行所需任务的足够特权。该验证基于来自IdM 460的信息。

一旦特权被确立,读取器或写入器就可以执行其各自的任务并通过安全通道返回响应。请注意,响应的逻辑可能非常复杂,并且包含细粒度的访问控制策略。例如,读取器只能响应X个查询(对于某些参数X),或者仅在满足某些数据相关规则的情况下才响应。

读取器和写入器是由协调器452按需生成的。它们被证明并***公告板454。一旦在公告板454中可见,它们便被初始化,并根据公告板454验证其作用,并且他们从核心代理之一(例如410)接收密钥AE-Key。在初始化期间,它们存储一个定义它们的租期的时限(为此,可以使用IntelTM SGXTM SDK中提供的sgx_get_trusted_time函数)。读取器和写入器受时间限制,并且在其租约到期后,他们应该自行销毁(并擦除AE-Key),或者续订其租约。通常,续订读取器的租约应由代理的不***分来驱动,因为***分是被动的,不能驱动基于时钟的操作。然而,由于该代码不能被信任,因此该实施例在客户的请求服务代码内增加了租约确认步骤,通过该步骤,隔离区测试本地时钟以查看其租约是否到期,如果已经到期,就拒绝进一步的请求。如果不***分正常运行,隔离区将不会由于时间限制而拒绝查询。有几种可选方法可以实现续订租期,最简单的方法是检查读取器/写入器代理在管理公告板上是否仍然有效,如果是,则在代理的***分设置新的租约。

群集的创始是最易受攻击的阶段之一,容易受到各种攻击,例如不良代码注入、拆分群集或影子隔离区的创建。由于这种敏感性,该实施例对群集创始采取谨慎的方法,通过该方法,只有完全成功的设置是可接受的,并且任何失败都将导致过程的完全中止并从头开始。在此过程完成并由主要核心代理验证之后,群集才可以进行读写操作,并填充数据。该过程不是在代理隔离区内部实施复杂的先导选举代码,而是在管理级别进行处理,并在公告板454上公开。管理450同意包括核心代理列表和指定先导的群集配置,并在以下阶段启动设置:

(1)代理隔离区创建:在托管代理的每个节点上,上传代理代码并生成隔离区。在此阶段,代理获取一些重要的公钥,这些公钥对于其验证其将使用的信息的能力至关重要。具体来说,英特尔TM报告签名公钥(IntelTM Report Signing Public Key)被用于验证所有证明报告,而管理450公钥则被用于验证从管理公告板454读取的信息。

(2)代理密封和认证:一旦生成了隔离区,第一步就是开始标准的密封和认证阶段。在此阶段,将创建一个报告,其中包含由英特尔的证明服务对代理隔离区进行的验证。该阶段由证明服务440管理。所生成的报告包括对代理的代码的度量以及该隔离区与其新生成的公钥的关系。此公钥是与代理进行所有外部通信的手段(用于对通信加密和对其进行身份验证)。作为证明阶段的一部分,需要代理隔离区创建对其自己的代码进行度量。此步骤还被用来记录将在以后被用来验证任何将来交互中的其他代理的代理度量(记为AE-MR)。

(3)管理公告板填充:管理450现在可以设置其公告板454,并用构成群集的所有代理的列表填充它。每个条目都应具有代理的角色(核心/读取器/写入器)、代理的IP地址、代理的公钥以及将代理的代码度量与其公钥关联的完整的证明报告。

(4)代理初始化:现在可以使用群集视图来初始化各种代理。这是通过从公告板454中读取群集列表(并验证列表的有效性)来完成的。这是代理在群集中担当各自角色的方法。

(5)核心代理握手和密钥创建阶段:在此阶段,指定的主要核心代理生成主密钥(AE-Key)。其余核心代理应联系主要代理,并使用下文讨论的核心到代理密钥移交协议来检索AK-Key。由于设置阶段的敏感性,并且为了避免各种对创建拆分群集的攻击,只有在成功地将AE-Key传递到所有其他核心代理(或者,到预定义阈值的核心代理)的情况下,主要核心代理才会批准此步骤的成功。如果在给定的时间阈值内未发生此情况,则该过程将中止并从步骤1重新开始。另一方面,成功的过程则以主要核心代理生成“准备就绪”(readyto go)消息并将其发布在公告板454上而结束(可以使用主要核心的公钥来验证此消息)。仅在发布此消息后,群集才变得可以用于IO操作。注意,主要核心代理的角色仅与建立新群集有关,因此,主要核心节点(无论临时的还是永久的)的故障仅是一个短时间周期的问题,这种故障将导致流程中止并从一组新的代理开始。

(6)设置写入器和读取器代理:一旦设置了群集的核心,就可以在写入器和读取器代理与核心代理之间进行相同的握手和密钥调配。此交互遵循与核心到代理密钥移交协议中相同的协议。

本实施例的核心到代理密钥移交协议:如上所述,新代理通过联系公告板454中的核心代理来发起AE密钥请求。通常可以选择地理位置接近的位置,此选择和切换的启动由代理的不***分完成。切换过程的流程涉及对所涉及的两个代理的相互认证测试。请注意,密钥移交是一项敏感操作,不能依赖管理450。相反,核心代理将只向具有与其代码完全相同的代码度量的代理提供密钥。这样,即使恶意地创建了新的代理,也可以确保它在一个真正的隔离区中运行,并且只执行合法操作,无论是谁无论在哪里发起的新代理的创建。相反的方向同样重要,确保新的隔离区不会从恶意方接收密钥(可能使整个群集使用受损的密钥进行操作)。

要注意的是,合法代理的度量(MRENCLAVE)必须由代理自己知道,以便代理能够验证自己正在与适当的代理通信。然而,这个度量不能被硬编码到代码中,因为代码的任何部分都包含在度量本身中(被硬编码后测量将更改)。解决这一问题的一个选择是在公告板454中公布度量,并在认证开始之前将其读取(可以将其与公钥一起添加到用户数据中,这样就可以在隔离区的认证报告中进行验证)。在这种方法中,可以有一个不同度量的列表,一个用于核心代理,其它的用于读取器和写入器代理。问题是,这很大程度上依赖于454号公告板。相反,该实施例利用一种解决方案,按照该解决方案,所有代理具有完全相同的代码,并且将只与运行完全相同代码的隔离区共享密钥。这种做法在代码的潜在软件升级期间有局限性,但具有强大的安全优势,因为密钥保密属性仅依赖于正确的代码实现(这是可以公开验证的),并且不会受到管理450的损害的影响。

协调器452驱动群集创始,但也负责群集的连续操作。它负责在节点出现故障时添加核心代理,并负责添加(或停止)读取器和写入器,以确保在工作负载增长或收缩时服务的高可用性。每一个这样的操作都需要两种主要类型的操作:第一种是对代理的直接操作,包括创建代理、启动代理的认证和启动代理的操作;第二种是在公告板454中注册代理。

对于操作方面,本实施例使用停靠隔离区,并使用诸如KubernetesTM或MarathonTM等管理工具。这些管理操作可以由不受信任的实体运行,因为在没有咨询公告板454的情况下,隔离区不会开始任何操作。因此,协调操作的错误行为可能导致失败或拒绝服务,但不会影响我们主要的安全目标。在注册之前,新条目需要最少k个管理员的批准,其中k是一个可配置的参数,具体取决于操作本身。例如,添加一个相对频繁的读取器或写入器。

公告板454的作用是形成正在运行的实时代理的中央的和最终列表。公告板454是由多个管理实体管理的分布式服务。该服务应实现以下主要特性:1)一致性—公告板454中显示的数据对任何观察者都是相同的。2)认证和活跃性—公告板454的数据读取不能伪造,陈旧的数据可以被识别(这是为了避免中间人攻击)。

该实施例利用公告板454的两个可替代性实现。

(1)公告板隔离区:在这个实现中,创建了一个特殊隔离区来管理公告板454。这个隔离区接收来自管理员的新条目,验证它们的签名并注册它们。它还服务来自各个组件的查询,并使用当前的最终群集状态进行回复。它用只有公告牌隔离区才知道的密钥来签署信息。另一个特性是,公告板隔离区可以很容易地生成一个包含出现在公告板上的所有操作的审计日志。这将确保恶意对手无法注册一个代理并在未被注意的情况下快速删除它。

一致性特性决定了只有一个隔离区提供公告板功能。这意味着,如果该隔离区出现永久性故障,其密钥需要是由管理450可检索的。由于这个信息极为敏感,其责任可由执行董事会成员(例如,这可能是一个较大的管理人员和高级行政人员的群体)来承担。在群集创始时,创建并执行公告板隔离区。其第一步是为公告板454生成一个公钥-密钥对。公钥被发布,然后硬编码到代理代码中。通过密钥,隔离区为n取1的秘密共享方案(如Shamir秘密共享)创建一个秘密共享,并通过安全渠道将共享发送到一系列执行董事会成员(名单被硬编码到公告板隔离区)。公告板隔离区还将此信息密封,作为从短暂故障中恢复的手段。如果运行隔离区的机器出现永久性故障,则会创建一个新的公告板隔离区,但它不会生成新密钥,而是从执行董事会成员发送的秘密共享重新生成密钥。

(2)实用拜占庭容错(PBFT):公告板454的一个可替代性实施例基于运行实用拜占庭容错(PBFT)群集,该群集实现分布式容错方案。这项服务是在超级账本结构(Fabric ofHyperledger)项目实现的,这是区块链技术开源工作的一部分。需要对拜占庭式故障而不是常规故障进行容错,这源于当前的威胁模型:流氓管理员可能通过注入恶意消息来影响公告板。注意,公告板454不必处理大流量负载,并且可以基于小群集,因此运行大规模PBFT的性能限制是无关紧要的。该实施例增加了一些通信复杂性,但具有面对故障或导致拒绝服务的企图时的高可用性的优点。

在这两种情况下,都可以通过用随机数查询公告板454并让隔离区或PBFT将随机数合并到签名中来测试数据的活性。

该实施例的设计具有不变性,由此,AE密钥被传输的唯一次数是与完全相同的代理代码包在一起,这一事实是该实施例的密钥保密保证的基础。这使代码升级成为问题,需要特殊的机制来处理这种情况。在这种敏感的情况下,需要来自执行董事会成员(取决于用例,这可能是高级人员的董事会)的批准,而不是需要少数管理人员的批准。在代码创建期间,用于验证此类过程的升级公钥被硬编码。一旦升级开始后,新代码库的度量将被发布在公告板454上,而旧的一组核心隔离区将吧AE-Key传递给新的核,同时验证新的MRENCLAVE是合适的。在该过程结束时,旧的隔离区将退出。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上传有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本文中使用的术语仅用于描述特定实施例,并不打算限制本发明。如本文所用的,单数形式“一”、“一个”和“该”也包括复数形式,除非上下文另有明确指示。应进一步理解,术语“包括”和/或“包含”在本说明书中使用时,规定了所述特征、整数、步骤、操作、元素和/或组件的存在,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、组件和/或其组。

以下权利要求中所有装置或步骤加功能元件的相应结构、材料、动作和等效物旨在包括用于结合具体请求保护的其它请求保护的元件执行功能的任何结构、材料或动作。本发明的描述是为了说明和描述的目的而提出的,但并不旨在是穷尽性的,也并非是要把本发明限制在所公开的形式。在不脱离本发明的范围和精神的情况下,本领域普通技术人员可以清楚地看到许多修改和变化。选择描述的实施例是为了最好地解释本发明的原理和实际应用,并且使本领域的其他普通技术人员能够理解针对各种实施例的本发明,这些实施例具有适合于预期的特定用途的各种修改。

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:机器人简档发现

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类