CN105122265B - 数据安全服务系统 - Google Patents

数据安全服务系统 Download PDF

Info

Publication number
CN105122265B
CN105122265B CN201480020500.XA CN201480020500A CN105122265B CN 105122265 B CN105122265 B CN 105122265B CN 201480020500 A CN201480020500 A CN 201480020500A CN 105122265 B CN105122265 B CN 105122265B
Authority
CN
China
Prior art keywords
key
data
service system
request
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480020500.XA
Other languages
English (en)
Other versions
CN105122265A (zh
Inventor
G·B·罗斯
M·J·雷恩
E·J·布兰德怀恩
B·I·普拉特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN105122265A publication Critical patent/CN105122265A/zh
Application granted granted Critical
Publication of CN105122265B publication Critical patent/CN105122265B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Abstract

一种分布式计算环境利用一种密码服务系统。所述密码服务系统代表一个或多个实体安全地管理密钥。所述密码服务系统被配置来接收并响应于执行密码操作、如加密和解密的请求。所述请求可源自使用所述分布式计算环境和/或所述分布式计算环境的子系统的实体。

Description

数据安全服务系统
相关申请的交叉引用
本申请要求2013年2月12日提交的美国专利申请号13/765,265的优先权,所述专利的内容以引用的方式整体并入本文。本申请出于所有目的以引用的方式结合以下专利申请的全部公开内容:与本申请同时提交的标题为“AUTOMATIC KEY ROTATION”的共同待决的美国专利申请号13/764,944;与本申请同时提交的标题为“POLICY ENFORCEMENT WITHASSOCIATED DATA”的共同待决的美国专利申请号13/764,995;与本申请同时提交的标题为“DATA SECURITY WITH A SECURITY MODULE”的共同待决的美国专利申请号13/765,020;与本申请同时提交的标题为“FEDERATED KEY MANAGEMENT”的共同待决的美国专利申请号13/765,209;与本申请同时提交的标题为“DELAYED DATA ACCESS”的共同待决的美国专利申请号13/765,239;与本申请同时提交的标题为“DATA SECURITY SERVICE”的共同待决的美国专利申请号13/764,963;以及与本申请同时提交的标题为“SECURE MANAGEMENT OFINFORMATION USING A SECURITY MODULE”的共同待决的美国专利申请号13/765,283。
背景技术
在许多语境中,计算资源和相关数据的安全性非常重要。作为实例,组织通常利用计算装置的网络来向它们的用户提供一组稳健的服务。网络通常跨多个地理边界并通常与其他网络连接。例如,组织可支持其使用计算资源的内部网络和由其他人管理的计算资源两者进行的操作。例如,组织的计算机可在使用另一个组织的服务的同时与其他组织的计算机通信以访问和/或提供数据。在许多情况下,组织使用由其他组织管理的硬件来配置并操作远程网络,从而降低基础设施成本并实现其他优点。在具有此类计算资源配置的情况下,确保对它们所持有的资源和数据的访问安全可能具有挑战性,尤其是随着此类配置的大小和复杂性的增长。
附图简述
将参照附图描述根据本公开的各个实施方案,在附图中:
图1示出表示根据各个实施方案的本公开的各个方面的说明性图;
图2示出可实现本公开的各个方面的环境的说明性实例;
图3示出根据至少一个实施方案的可实现本公开的各个方面的环境的说明性实例以及环境的各个组件之间的示例性信息流动;
图4示出根据至少一个实施方案的用于储存密文的说明性过程的示例性步骤;
图5示出根据至少一个实施方案的可实现本公开的各个方面的环境的说明性实例以及环境的各个组件之间的示例性信息流动;
图6示出根据至少一个实施方案的用于响应检索数据的请求的说明性过程的示例性步骤;
图7示出根据至少一个实施方案的可实现本公开的各个方面的环境的说明性实例以及环境的各个组件之间的示例性信息流动;
图8示出根据至少一个实施方案的用于响应储存数据的请求的说明性过程的示例性步骤;
图9示出根据至少一个实施方案的可实现本公开的各个方面的环境的说明性实例以及环境的各个组件之间的示例性信息流动;
图10示出根据至少一个实施方案的用于响应检索数据的请求的说明性过程的示例性步骤;
图11示出可实现本公开的各个方面的环境的说明性实例;
图12示出根据至少一个实施方案的可实现本公开的各个方面的环境的说明性实例以及环境的各个组件之间的示例性信息流动;
图13示出根据至少一个实施方案的用于响应检索数据的请求的说明性过程的示例性步骤;
图14示出根据至少一个实施方案的用于响应对数据进行解密的请求的说明性过程的示例性步骤;
图15示出根据至少一个实施方案的用于获取已解密数据的说明性过程的示例性步骤;
图16示出根据至少一个实施方案的示例性密码服务系统的图解表示;
图17示出根据至少一个实施方案的用于配置策略的说明性过程的示例性步骤;
图18示出根据至少一个实施方案的用于在强制实施策略的同时执行密码操作的说明性过程的示例性步骤;并且
图19示出可实现各个实施方案的环境的说明性实例。
详述
在以下描述中,将描述各个实施方案。出于解释的目的,将阐述具体的配置和细节,以便提供实施方案的透彻理解。然而,对本领域的技术人员将是显而易见的是,没有具体细节的情况下也可以实行实施方案。此外,为了不使所描述的实施方案变得模糊,可能会省略或简化众所周知的特征。
本文描述并提议的技术允许增强包括分布式计算资源的环境中的数据安全性。在一个实例中,分布式计算环境包括可由适当的计算资源实现的一个或多个数据服务系统。数据服务系统可允许执行与数据有关的各种操作。作为一个说明性实例,分布式计算环境包括一个或多个数据储存服务系统。可向数据储存服务系统传输执行数据储存操作的电子请求。示例性操作是使用数据储存服务系统储存数据的操作和使用数据储存服务系统检索由数据储存服务系统储存的数据的操作。数据服务系统、包括数据储存服务系统还可执行操纵数据的操作。例如,在一些实施方案中,数据储存服务系统能够对数据进行加密。
本公开的各个实施方案包括分布式计算环境,所述分布式计算环境包括使用适当的计算资源实现的密码服务系统。密码服务系统可由分布式系统实现,所述分布式系统接收并响应于执行密码操作、如明文的加密和密文的解密的电子请求。在一些实施方案中,密码服务系统管理密钥。响应于执行密码操作的请求,密码服务系统可执行使用所管理密钥进行的密码操作。例如,响应于所接收请求,密码服务系统可选择适当的密钥来执行密码操作,执行密码操作,并提供密码操作的一个或多个结果。在替代配置中,密码服务系统可产生包络密钥(例如,用于加密特定数据项的会话密钥)并将包络密钥返回至调用服务系统的密码操作的系统。系统随后可使用包络密钥执行密码操作。
在一些实施方案中,密码服务系统为计算资源服务提供者的多个租户管理密钥。计算资源的租户可以是作为计算资源提供者的客户操作的实体(例如,组织或个人)。客户可以远程地并编程地配置并操作物理上由计算资源提供者托管的资源。当客户向密码服务系统提供执行密码操作的请求时(或当实体向密码服务系统提交请求时),密码服务系统可选择由密码服务系统为客户管理的密钥来执行密码操作。由密码服务系统管理的密钥可得到安全管理,使得其他用户和/或数据服务系统不能访问他人密钥。实体(例如,用户、客户、服务系统)缺少对另一个实体的密钥的访问权可意味着所述实体不具有获取他人密钥的授权方式和/或所述实体不具有引起管理他人密钥的系统在所述实体的指导下使用密钥的授权方式。例如,密码服务系统可管理密钥,使得对于一个客户来说,其他客户既无法访问所述客户的密钥也不能引起密码服务系统使用所述客户的密钥来执行密码操作。作为另一个实例,密码服务系统可管理密钥,使得其他服务系统(如数据储存服务系统)不能引起密码服务系统使用一些或所有密钥来执行密码操作。对密钥的未授权访问可通过适当的安全措施来阻止,使得例如未授权访问是困难或不可能的。困难可能是由于计算上的不切实际性和/或由于需要未授权事件(例如,非法的、侵权的和/或以其他方式不被允许的,如授权证书的泄露)发生以便获得访问。根据各个实施方案的系统可被配置来确保对获得对密钥的访问权的计算上的不切实际性进行客观测量。此类测量可例如根据具有限定单位计算能力(例如,一定操作数/单位时间)的计算机破解经授权访问密钥所需的已加密信息将花费的平均时间的量来测量。
如上所述,密码服务系统可接收来自各种实体(如计算资源提供者的客户)的请求。密码服务系统还可接收来自计算资源提供者内部的实体的请求。例如,在一些实施方案中,由计算资源提供者实现的数据服务系统可向密码服务系统传输请求,以引起密码服务系统执行密码操作。作为一个实例,客户可向数据储存服务系统传输储存数据对象的请求。请求可指示在储存时数据对象应被加密。数据储存服务系统可向密码服务系统传达执行密码操作的请求。密码操作可以是例如对由数据储存服务系统用来加密数据对象的密钥进行加密。密码操作可以是对数据对象本身进行加密。密码操作可以是生成数据储存服务系统可用来加密数据对象的包络密钥。
根据各个实施方案的系统实施各种安全措施以提供增强的数据安全性。例如,在各个实施方案中,密码服务系统可利用它所管理的密钥的方式受到限制。例如,在一些实施方案中,密码服务系统被配置来仅在适当的授权之后使用对应于客户的密钥。如果使用客户的密钥的请求据称源自客户(即,来自代表客户操作的计算装置),则密码服务系统可被配置来要求请求是使用客户所拥有的适当证书电子地(数字地)被签名。如果使用客户的密钥的请求源自另一个数据服务系统,则密码服务系统可被配置来要求数据服务系统提供客户已经向数据服务系统做出已签名请求的证明。例如,在一些实施方案中,数据服务系统被配置来获取并提供用作已认证客户请求的证明的令牌。其他安全措施也可内置于包括密码服务系统的电子环境的配置中。例如,在一些实施方案中,密码服务系统被配置来根据语境限制密钥使用。作为一个说明性实例,针对来自客户或来自代表客户起作用的数据服务系统的请求,密码服务系统可被配置来使用密钥进行加密。然而,针对来自客户(而不是来自另一个数据服务系统)的请求,密码服务系统可被配置来仅使用密钥进行解密。以此方式,如果数据服务系统泄露,则数据服务系统将不能引起密码服务系统对数据进行解密。
各种安全措施可内置于密码服务系统和/或它的电子环境中。一些安全措施可根据策略来管理,在一些实施方案中所述策略是可配置的。作为一个实例,密码服务系统可利用使得用户能够配置关于密钥的策略的应用程序编程接口(API)。关于密钥的策略可以是以下信息:当由密码服务系统处理时,所述信息确定密钥在一定情况下是否可使用。策略可例如限制能够直接使用密钥的用户和/或系统的标识码,限制密钥可使用时的时间,限制密钥可用来对其执行密码操作的数据,并提供其他限制。策略可提供显式限制(例如,谁不可使用密钥)和/或可提供显式授权(例如,谁可使用密钥)。此外,策略可复杂地构成以便大体上提供密钥可以和不可以使用时的条件。当接收到使用密钥执行密码操作的请求时,关于密钥的任何策略可被访问并处理,以确定请求是否可根据策略完成。
图1是展示本公开的各个实施方案的说明性图100。在实施方案中,密码服务系统执行密码操作,密码操作可包括根据一个或多个密码算法应用一个或多个计算。如图1所示,密码服务系统使得用户或服务系统能够从密文生成明文。在示例性配置中,密码服务系统可用于对密钥进行加密/解密,并且这些密钥可用于对数据、如储存在数据储存服务系统中的数据进行加密/解密。例如,密码服务系统接收从在密钥下加密的密文生成明文的请求。密码服务系统确定请求者是授权实体;使用主密钥对密钥进行解密并且将现已解密的密钥返回至服务系统,所述服务系统可使用已解密密钥从密文生成明文。在另一种配置中,密码服务系统接收密文并且将所接收密文处理成明文,所述明文作为服务由密码服务系统提供。在这个实例中,密文可作为从授权实体到密码服务系统的电子请求的部分来提供给密码服务系统,授权实体可以是操作密码服务系统的计算资源提供者的客户和/或可以是计算资源提供者的另一个服务系统。图1所示的密码服务系统可利用一个或多个强加密算法对数据进行加密。此类强加密算法可包括例如高级加密标准(AES)、Blowfish、数据加密标准(DES)、三重DES、Serpent或Twofish,并且根据所选择的具体实现方式,可以是不对称的或对称的密钥体系。一般地,密码服务系统可利用任何加密和/或解密算法(加密法)或利用由密码服务系统管理的数据的算法的组合。
如下文将更详细论述,密码服务系统可以各种方式来实现。在实施方案中,密码服务系统由根据下文的描述配置的计算机系统来实现。计算机系统自身可包括一个或多个计算机系统。例如,根据各个实施方案,密码服务系统可实现为共同地被配置来执行密码操作的计算机系统的网络。或换言之,计算机系统可以是分布式系统。在实施方案中,密文是已经使用密码算法加密的信息。在图1的实例中,密文是呈已加密形式的明文。明文可以是任何信息,并且当名称不包括文字文本时,明文和密文可以是以任何合适形式编码的信息,并且不必包括文本信息,但它可包括文本信息。例如,如图1所示,明文和密文包括比特序列。明文和密文也可以其他方式并且一般以加密和解密可由计算机系统执行的任何方式来表示。
图2示出可实现如图1所示的密码服务系统的环境200的说明性实例。在200的环境中,各种组件一起操作,以便提供安全数据相关的服务。在这个具体实例中,环境200包括密码服务系统、认证服务系统、数据服务前端以及数据服务后端储存系统。在一个实施方案中,在环境200中,密码服务系统被配置来执行密码操作,如通过接收来自数据服务前端的明文并提供密文作为回报,或向服务系统提供包络密钥、使得服务系统可使用包络密钥来执行加密操作。密码服务系统可执行如下文描述的另外的功能,如安全存储用于执行密码操作的密钥,密码操作如将明文转换成密文和将密文解密成明文。密码服务系统还可执行策略强制实施所包括的操作,如强制实施与其中储存的密钥关联的策略。以下提供可由密码服务系统强制实施的示例性策略。在实施方案中,数据服务前端是被配置来接收并响应在网络上从各个用户传输的请求的系统。请求可以是执行与储存或将要储存在数据服务后端储存系统中的数据有关的操作的请求。在环境200中,认证服务系统、密码服务系统、数据服务前端以及数据服务后端储存系统可以是计算资源提供者的系统,所述计算资源提供者利用系统向由图2所示的用户代表的客户提供服务。图2所示的网络可以是任何合适的网络或网络组合,包括下文论述的那些。
在实施方案中,认证服务系统是被配置来执行对用户进行认证所包括的操作的计算机系统。例如,数据服务前端可向认证服务系统提供来自用户的信息,以接收指示用户请求是否可信的信息作为回报。确定用户请求是否可信可以任何合适的方式来执行,并且执行认证的方式在各个实施方案之间可能有所不同。例如,在一些实施方案中,用户对传输至数据服务前端的消息进行电子签名。电子签名可使用进行认证的实体(例如,用户)和认证服务系统都可获得的秘密信息(例如,与用户关联的密钥对的私人密钥)生成。可向认证服务系统提供请求和请求的签名,认证服务系统可使用秘密信息计算用于与所接收签名进行比较的参考签名,以便确定请求是否可信。如果请求可信,那么认证服务系统可以提供以下信息,数据服务前端可以使用所述信息向其他服务系统(如密码服务系统)证明请求是可信的,从而使得其他服务系统能够相应地操作。例如,认证服务系统可提供另一个服务系统可分析以验证请求可信性的令牌。电子签名和/或令牌可具有以各种方式来限制的有效性。例如,电子签名和/或令牌可在一定时间量内是有效的。在一个实例中,电子签名和/或令牌至少部分地基于将时间戳看作输入的函数(例如,基于散列的消息认证码)生成,时间戳包括在用于验证的电子签名和/或令牌内。检验所提交电子签名/或令牌的实体可以检查所接收时间戳是足够当前的(例如,在从当前时间开始的预先确定的时间量内)并使用所接收时间戳生成参考签名/令牌。如果用于生成所提交电子签名/令牌的时间戳不是足够当前的和/或所提交签名/令牌和参考签名/令牌不匹配,那么认证可能失败。以此方式,如果电子签名泄露,它将仅在短时间内有效,从而限制由泄露造成的潜在危害。应注意,验证可信性的其他方式也被视为是在本公开的范围内。
在实施方案中,数据服务后端储存系统是根据通过数据服务前端接收的请求储存数据的计算机系统。如下文更详细论述,数据服务后端储存系统可以已加密形式储存数据。数据服务后端储存系统中的数据也可以非加密形式储存。在一些实施方案中,由数据服务前端实现的API允许请求指定是否应加密将要存储在数据服务后端储存系统中的数据。根据各个实施方案,加密并储存在数据服务后端储存系统中的数据可以各种方式来加密。例如,在各个实施方案中,数据是使用密码服务系统可访问但环境200的一些或所有其他系统不可访问的密钥来加密。数据可由密码服务系统编码以便储存在数据服务后端储存系统中,和/或在一些实施方案中,数据可由另一系统、如用户系统或数据服务前端的系统使用由密码服务系统解密的密钥来加密。以下提供环境200可操作以对数据进行加密的各种方式的实例。
环境200(和本文描述的其他环境)的众多变体被视为是在本公开的范围内。例如,环境200可包括可与密码服务系统和/或认证服务系统通信的另外服务系统。例如,环境200可包括可以不同方式储存数据的另外数据储存服务系统(各自可包括前端系统和后端系统)。例如,一个数据储存服务系统可提供有效数据访问,其中数据储存服务系统以同步方式执行数据储存服务(例如,检索数据的请求可接收带有所检索数据的同步响应)。另一个数据储存服务系统可提供存档数据储存服务系统。这种存档数据储存服务系统可利用异步请求处理。例如,检索数据的请求可不接收包括所检索数据的同步响应。相反地,一旦存档数据储存服务系统准备好提供所检索数据,存档数据储存服务系统就可要求提交获取所检索数据的第二请求。如另一个实例,环境200可包括计量服务系统,所述计量服务系统接收来自密码服务系统(和/或其他服务系统)的信息并且使用所述信息产生会计记录。会计记录可用于针对密码服务系统(和/或其他服务系统)的使用给客户开账单。此外,来自密码服务系统的信息可提供如何会产生费用的指示。例如,在一些情况下,可向客户提供针对密码服务系统的使用的账单。在其他情况下,针对密码服务系统的使用的费用可卷入其他服务系统(如作为其操作的一部分,利用密码服务系统的数据服务系统)的使用费用中。使用可以各种方式来计量并开账,如每操作、每时间段和/或以其他方式。其他数据服务系统也可包括在环境200(或本文描述的其他环境)中。
另外,图2描述用户与数据服务前端交互。应理解,用户可通过图中未示出的用户装置(例如,计算机)与数据服务前端交互。此外,图2(和图中的其他地方)描述的用户也可代表非人类实体。例如,在计算机系统上执行的自动化过程可与如本文所述的数据服务前端交互。作为一个说明性实例,由图2中的用户代表的实体可以是服务器,作为服务器的操作的一部分,服务器使用数据服务前端向/从数据服务后端存储系统存储和/或检索数据。作为又一个实例,由图2中的用户代表的实体可以是作为计算资源提供者的服务系统提供的实体,所述计算资源提供者操作图2中的一个或多个服务系统。例如,图2中的用户可代表由计算资源提供者提供的程序执行服务系统的虚拟或其他计算机系统。其他变体,包括下文描述的其他环境的变体,也被视为是在本公开的范围内。
例如,图3示出可实现本公开的各个实施方案的环境300的说明性实例。与图2一样,图3中的环境包括认证服务系统、数据服务前端系统(数据服务前端)、密码服务系统和数据服务后端储存系统。认证服务系统、数据服务前端、密码服务系统和数据服务后端储存系统可如上文结合图2描述那样被配置。例如,用户可通过合适的通信网络访问数据服务前端,尽管这样的网络未在图中示出。在图3所示的示例性环境300中,提供表示信息流动的箭头。在这个实例中,用户向数据服务前端传输PUT请求。PUT请求可以是将指定数据存储在数据服务后端储存系统中的请求。响应于PUT请求,数据服务前端可以确定PUT请求是否可信,也就是用户是否已经以所请求操作可根据由系统实施的认证策略来执行的方式提交请求。
在图3中,示出如何可做出此类认证决定的说明性实例。在这个具体实例中,数据服务前端向认证服务系统提交认证请求。认证服务系统可使用认证请求来确定来自用户的PUT请求是否可信。如果请求可信,则认证服务系统可向数据服务前端提供认证证明。认证证明可以是可由另一个服务系统(如密码服务系统)使用以独立地确定接收到可信请求的电子令牌或其他信息。在一个说明性实例中,PUT请求与PUT请求的签名一起被传输。PUT请求及其签名通过认证服务系统来提供,如果可信,认证服务系统独立地计算签名应该是什么。如果由认证服务系统生成的签名匹配由用户提供的签名,则认证服务系统可确定PUT请求可信并且作为响应可提供认证证明。确定PUT请求是否可信还可包括与策略的强制实施有关的一个或多个操作。例如,如果签名有效但策略以其他方式指示不应完成PUT请求(例如,请求在由策略所不允许的时间期间提交),则认证服务系统可提供指示请求不可信的信息。(然而,应注意,这样的策略强制实施可由环境300的其他组件执行。)认证服务系统可生成签名,如通过使用由认证服务系统和用户共享的密钥。如上所述,认证证明可以是另一个服务系统(如密码服务系统)可根据其独立地验证请求可信的信息。例如,使用图3所示的密码服务系统的实例,认证证明可至少部分地基于由认证服务系统和密码服务系统两者共享的密钥(如其他服务系统不可访问的密钥)生成。
如图3所示,在接收到来自认证服务系统的认证证明之后,数据服务前端向密码服务系统提供明文和认证证明。可根据到密码服务系统的API调用或其他电子请求(例如,加密API调用)提供明文和认证证明。密码服务系统可分析认证证明以确定是否对明文进行加密。
应注意,可向密码服务系统提供另外信息。例如,将要用于对明文进行加密的密钥的标识符可作为来自数据服务前端(其又可能已经接收来自用户的标识符)的API调用的输入参数被提供。然而,应注意,标识符可不被传输至密码服务系统。例如,在各个实施方案中,可以其他方式确定使用哪个密钥来加密明文。例如,从数据服务前端传输至密码服务系统的信息可包括与用户关联的信息,如用户和/或与用户关联的组织的标识符,如用户已经代表其提交PUT请求的客户的标识符。此类信息可由密码服务系统用于确定将要使用的默认密钥。换句话说,密钥可由可用于确定密钥的信息隐式地指定。一般地,将要使用的密钥的确定可以任何合适的方式来执行。此外,在一些实施方案中,密码服务系统可生成或选择密钥,并且提供后来将要使用的所生成或选择密钥的标识符。另一个示例性API参数可以是为其执行加密操作的客户账户的主密钥的标识符。
如图3所示,如果认证证明对于密码服务系统加密明文来说是足够的,则密码服务系统可执行一个或多个密码操作。在实施方案中,一个或多个密码操作可包括生成将要用于对明文进行加密的包络密钥的操作。包络密钥可以是随机生成的对称密钥或密钥对的私人密钥。在生成包络密钥之后,密码服务系统可利用API调用中指定的主密钥对包络密钥进行加密,并使得已加密包络密钥持久地被储存(例如,通过将已加密密钥存储在储存服务系统或一些其他持久性储存装置中)或丢弃。另外,密码服务系统可向数据服务前端发送包络密钥的明文版本以及已加密包络密钥。数据服务系统随后可使用包络密钥的明文版本对明文(即,与加密请求关联的数据)进行加密,并且使得包络密钥被储存在与用于对包络密钥进行加密的主密钥的标识符关联的持久性储存装置中。此外,数据服务系统可丢弃包络密钥的明文版本。因此,在实施方案中,在数据服务系统丢弃包络密钥的明文版本之后,数据服务系统将不再能够对密文进行解密。
在替代实施方案中,密码操作可包括对明文进行加密。例如,密码服务系统对明文进行加密并向数据服务前端储存系统提供密文。数据服务前端随后可向数据服务后端储存系统提供密文以便根据其操作进行持久性储存。还可将其他信息从数据服务前端传输至数据服务后端存储系统。例如,用于对明文进行加密以生成密文的密钥的标识符可与密文一起提供以便由数据服务后端储存系统储存。还可提供其他信息(如标识用户和/或用户的组织的元数据)。
与本文描述的所有环境一样,众多变体被视为是在本公开的范围内。例如,环境300的各种组件之间的信息流动可不同于所示的那样。例如,通过中间组件从一个组件流动至另一个组件的信息(例如,从认证服务系统到密码服务系统的数据和/或从密码服务系统到数据服务后端储存系统的数据)可直接和/或通过环境300的其他中间组件(未必包括在图中)被提供至其目的地。作为另一个实例,PUT请求(和下文的GET请求)为说明目的而提供。然而,可使用用于执行所描述操作的任何合适的请求。
图4示出根据实施方案的过程400的说明性实例,过程400可用于将数据存储在数据存储服务系统中。过程400可由例如图3所示的数据服务前端执行。过程400(或本文描述的任何其他过程,或变体和/或其组合)的一些或全部可在配置有可执行指令的一个或多个计算机系统的控制下实行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)、由硬件或其组合来实施。代码可以例如包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读储存介质上。计算机可读储存介质可以是非暂时性的。
如图4中所示,过程400包括接收402 PUT请求。PUT请求可在网络上电子地接收并且可包括与请求关联的信息,如认证所需要的信息,如PUT请求的电子签名。响应于已经接收PUT请求,过程400可包括提交404认证请求。例如,执行过程400的系统可向分开的认证服务系统提交(例如,通过适当配置的API调用)认证请求,如上文结合图3所描述。类似地,执行其自己的认证的数据服务前端可向由数据服务前端实现的认证模块提交认证请求。一般地,认证请求可根据各个实施方案以任何合适的方式来提交。
在提交认证请求之后,认证请求被提交404到的实体接收406认证响应。例如,参照图3,认证服务系统可向数据服务前端提供包括用于由其他服务系统使用的认证的证明的响应。还可传输其他信息,如认证是否成功的指示。可做出408请求是否可信的确定。请求的可信性可取决于由实体、如由认证服务系统或共同执行此类检查的实体的组合所检查的一个或多个因素。可信性可能例如要求请求提供必需的有效证书(例如,由检查实体所共享的秘密密钥生成的电子签名)和/或要求策略允许完成请求。从提交404认证请求并接收认证响应的系统的角度,可信性可取决于所接收认证响应。因此,在实施方案中,请求是否可信的确定408可至少部分地基于所接收认证响应来执行。例如,如果认证不可信,则认证响应这样指示并且可相应地做出确定408。类似地,响应可隐式地指示认证请求可信,如通过不包括请求可信情况下将包括的信息。如果确定408 PUT请求不可信,那么可拒绝410 PUT请求。拒绝PUT请求可以任何合适的方式执行并且可取决于过程400被执行的各个实施方案。例如,拒绝410 PUT请求可包括向提交PUT请求的用户传输消息。消息可指示请求被拒绝。拒绝请求还可包括提供关于请求为什么被拒绝的信息,如电子签名不正确、或可用于确定如何解决导致PUT请求的任何问题的其他原因不可信或未经授权。
在实施方案中,如果确定408 PUT请求可信或已授权,那么过程400包括执行412导致明文被解密的一个或多个密码操作。例如,可向密码服务系统提交请求(例如,适当配置的API调用),以提供将要用于执行一个或多个密码操作的密钥。向密码服务系统提供的请求可与PUT请求可信的证明一起被提供,使得密码服务系统可独立地确定是否执行密码操作(例如,对明文进行加密并且提供密文或生成可用于对明文进行加密的包络密钥)。然而,在各个实施方案中,可不向密码服务系统提供认证证明,并且例如,密码服务系统可根据它所接收的请求进行操作。例如,如果密码服务系统接收来自数据服务前端的请求,密码服务系统可依赖于数据服务前端已经独立地验证请求的认证的事实。在这个实施方案和其他实施方案中,数据服务前端可利用密码服务系统对自身进行认证,以便提供另外的安全层。密码服务系统可生成或以其他方式获取密钥,加密所获取密钥或以其他方式获取已加密密钥(例如,从存储器),并响应请求而提供所获取密钥和已加密的所获取密钥。所获取密钥可使用到密码服务系统的请求中所标识的密钥来加密。所获取密钥可用于对明文进行加密,并且在对明文进行加密之后,可丢弃所获取密钥(例如,不可撤销地从存储器移除)。在替代实施方案中,执行过程400的系统可生成或以其他方式获取用于执行一个或多个密码操作的密钥,向密码服务系统提供将要加密的所获取密钥。
在一些实施方案中,执行一个或多个密码操作可导致生成密文。由于一个或多个密码操作而生成的密文可被储存414以用于在后来时间可能进行的检索。如上所述,密文的储存可包括储存使得能够在后来时间对密文进行解密的另外信息。例如,密文可与用于将明文加密成密文的密钥的标识符一起被储存,使得具有所述标识符的密钥之后可用于对密文进行解密以获取明文。密文的储存也可以任何合适的方式来执行。例如,密文的储存可由数据服务后端储存系统执行,如上所述。
图5相应地示出环境500的说明性实例以及示出如何可获取明文的信息流动。在这个实例中,环境500包括认证服务系统、密码服务系统、数据服务前端和数据服务后端储存系统。认证服务系统、密码服务系统、数据服务前端和数据服务后端储存系统可以是如上所述的系统。如图5所示,数据服务前端被配置来接收来自用户的GET请求并作为响应提供明文。为了做到这一点,数据服务前端还可被配置来向认证服务系统提交认证请求,如果适当的话,认证服务系统自身可被配置来向数据服务前端提供认证证明。数据服务前端还可被配置来向密码服务系统发送请求,以引起密码服务系统执行与对数据进行解密有关的一个或多个密码操作。在使用包络密钥的实施方案中,数据服务系统可向密码服务系统提交包括或指定已加密包络密钥(或已加密包络密钥的标识符)认证证明的请求(例如,API调用),并且向密码服务系统提交用于对包络密钥进行加密的主密钥的标识符。密码服务系统可确定认证证明对于允许操作是否足够,并且如果认证证明足够,则对包络密钥进行解密。已解密包络密钥可被发送回到数据服务系统,数据服务系统可使用密钥来解密已加密明文。数据服务系统随后可丢弃已解密明文密钥。
在替代实施方案中,数据服务前端可被配置来向密码服务系统提供所接收认证证明与密文,以便密码服务系统进行解密。密码服务系统相应地可被配置来确定认证证明对于允许对密文进行解密是否足够,并且如果认证证明足够,则使用适当的密钥(其可由数据服务前端向密码服务系统标识出)对密文进行解密,并向数据服务前端提供已解密密文(明文)。为了向密码服务系统提供密文,数据服务前端可被配置来从数据服务后端储存系统获取(例如,通过适当配置的API调用)密文。
图6示出根据各个实施方案的可用于获取明文的过程600的说明性实例。过程600可例如由上文结合图5示出的数据服务前端系统(数据服务前端)执行,尽管过程600及其变体可由任何合适的系统来执行。在实施方案中,过程600包括接收602来自用户的GET请求(或其他适当的请求)。接收GET请求可如上文结合其他类型的请求所描述来执行。在接收到602 GET请求之后,可如上所述向认证服务系统或以任何方式提交604认证请求。相应地可接收认证响应。至少部分地基于所接收认证响应,可做出608 GET请求是否可信的确定。如果确定608 GET请求不可信,则过程600可包括拒绝610请求,如上文所述,拒绝610请求可根据各个实施方案以各种方式来执行。
如果确定608 GET请求可信,则过程600可包括从储存装置检索密文。从储存装置检索612密文可以任何合适的方式来执行。例如,参照上文结合图5论述的环境500,数据服务前端可向数据服务后端储存系统提交获得密文的请求并且作为响应可接收密文。一般地,密文可以任何合适的方式从储存装置获取。在接收到密文之后,过程600可包括执行614与对密文进行解密有关的一个或多个操作。例如,在实施方案中,数据储存服务系统可向密码服务系统发送请求以执行与对密文进行解密有关的一个或多个密码操作614。在一种示例性配置中,数据服务系统可向密码服务系统发送包括已加密包络密钥(或已加密包络密钥的标识符)认证证明的API调用,并且向密码服务系统发送用于对包络密钥进行加密的主密钥的标识符。密码服务系统可确定认证证明对于允许操作是否足够,并且如果认证证明足够,则对包络密钥进行解密。已解密包络密钥可被发送回到数据服务系统,数据服务系统可使用密钥来解密已加密明文。
在另一种配置中,可向密码服务系统、如上文结合图5描述的密码服务系统提供密文。还可向密码服务系统提供其他信息,如可由密码服务系统使用以确定是否对密文进行解密的认证证明。另外,在一些实施方案中,可向密码服务系统提供将要由密码服务系统使用来对密文进行解密的密钥的标识符。然而,在其他实施方案中,可隐式地向密码服务系统指示出密钥。例如,密码服务系统可使用与向密码服务系统指示出的客户关联的默认密钥。一般地,可使用密码服务系统可确定使用哪个密钥来对密文进行解密的任何方式。
如图6所示,在对密文进行解密之后,过程600可包括提供616对GET请求的响应。提供对GET请求的响应可根据各个实施方案以各种方式来执行。例如,提供对GET请求的响应可包括提供明文。在其他实施方案中,明文可以是随后响应于GET请求而提供的用于对其他已加密信息进行解密的密钥。一般地,取决于明文在本公开的具体实施方案中的作用,提供对GET请求的响应可以各种方式来执行。
如上所述,本公开的各个实施方案允许由数据储存服务系统以各种方式储存数据。图7示出根据这个实施方案的具有指示信息流动的箭头的环境700的说明性实例。如图7所示,环境700包括认证服务系统、密码服务系统、数据服务前端和数据服务后端储存系统,如上所述。在这个具体实例中,数据服务前端是被配置来接收来自各种用户的PUT请求的计算机系统。PUT请求可包括或指定将要由数据服务后端储存系统储存的数据对象。PUT请求还可指定将要用于对数据对象进行加密的密钥的密钥标识符。数据服务前端还可被配置来与认证服务系统进行交互,如上所述,以便向密码服务系统提供认证证明,密码服务系统可操作来接收密钥和密钥标识符并且作为响应提供由密钥标识符标识的密钥所加密的密钥。数据服务前端随后可引起在数据服务后端储存系统中进行储存。可储存的数据可包括由密钥加密的数据对象。可储存的数据还可包括由密钥标识符标识的密钥所加密的密钥。如本文在别处所论述,已加密数据对象和已加密密钥可储存在不同服务系统中。
如图7所示,数据服务前端被配置来向数据服务后端储存系统提供已加密信息以便储存。在这个实例中,数据服务前端被配置来提供在密钥下加密的数据对象以及在具有KeyID的另一个密钥下加密的所述密钥。应注意,出于说明目的,使用波形括号记号来指明加密。具体地说,波形括号内的信息是在下标中所指定的密钥下加密的信息。例如,{DataObject}Key表示数据“Data Object”在密钥“Key”下被加密。应注意,使用这个波形括号记号,密钥标识符也可出现在下标中。当密钥标识符出现在下标中时,波形括号内的信息在由密钥标识符标识的密钥下被加密。例如,{Data Object}KeyID表示数据对象“Data Object”在由密钥标识符“KeyID”标识的密钥下被加密。类似地,{Key}KeyID表示密钥“Key”在由密钥标识符“KeyID”标识的密钥下被加密。换句话说,本公开在下标中利用密钥和密钥标识符两者,并且从上下文应明白下标的意义。密文可包括可用于确定关联解密密钥的标识码的另外元数据。
图8示出过程800的说明性实例,过程800可被执行以将数据对象存储在数据储存系统、如上文结合图7描述的数据服务后台储存系统中。过程800可由任何合适的系统来执行,如由上文结合图7描述的数据服务前端系统。在实施方案中,过程800包括接收802数据对象的PUT请求。接收数据对象的PUT请求可以任何合适的方式来执行,如上所述。应注意,可接收与请求相关的数据对象或可从另一个服务系统接收数据对象。例如,请求可包括数据对象的标识符,可使用标识符从另一个服务系统获取数据对象。与上文描述的其他过程一样,在实施方案中,过程800包括提交804认证请求和接收806认证响应。所接收806的认证响应可用于确定808 PUT请求是否是可信请求。如果确定808 PUT请求不可信,则过程800可包括拒绝810请求,如上所述。如果确定808 PUT请求可信,则过程800可包括获取812密钥标识符(KeyID),如用于对包络密钥进行加密的主密钥的KeyID。获取812 KeyID可以任何合适的方式来执行,并且获取KeyID的方式可根据各个实施方案而改变。例如,如图7所示,PUT请求可指定KeyID。作为另一个实例,用户的或以其他方式与用户关联的标识码可用于获取标识符或默认密钥。作为另一个实例,密文可提供关联密钥ID的指示。作为又一个实例,一个或多个策略确定可用于确定获取哪个密钥标识符。
在实施方案中,过程800还包括生成814密钥,如包络密钥。生成密钥可由例如密码服务系统或向密码服务系统请求加密操作的服务系统(例如,数据储存服务系统)以任何合适的方式来执行。例如,密钥可使用密钥衍生函数生成,密钥衍生函数使用密钥衍生函数的适当输入。示例性密钥衍生函数包括IEEE Std 1363 2000中所限定的KDF1、ANSI X9.42中所限定的密钥衍生函数以及基于HMAC的密钥衍生函数,如RFC 5869中所规定的基于HMAC的提取和扩展密钥衍生函数(HKDF)。作为另一个实例,密钥可由如由美国国家标准技术研究院特别公开(NIST SP)800-90A所规定的随机或伪随机数发生器、硬件熵源或确定性随机位发生器生成。应注意,虽然图8示出过程800包括生成814密钥,但密钥可以其他方式获取,如通过从储存装置检索。换句话说,密钥可以是已经预先生成的。
继续图8所示的过程800,在实施方案中,过程800包括使用816所生成密钥对数据对象进行加密。例如,在密码服务系统生成密钥的实施方案中,密码服务系统可向数据服务系统提供密钥、KeyID以及密钥的已加密副本。例如,参照图7,数据服务前端可接收来自密码服务系统的包络密钥和用于对包络密钥进行加密的主密钥的KeyID与任何其他相关信息、如认证证明。加密密钥的明文副本随后可用于对数据对象进行加密。可丢弃加密密钥的明文副本并且随后可存储已加密数据对象以及已加密密钥818。例如,参照图7,数据服务前端可向数据服务后端储存系统传输已加密数据对象和已加密密钥以便储存。在服务系统生成密钥的配置中,服务系统可向密码服务系统提供密钥和KeyID。例如,数据服务前端可向密码服务系统发送包络密钥和用于对包络密钥进行加密的主密钥的KeyID与任何其他相关信息、如认证证明。加密密钥的明文副本随后可用于对数据对象进行加密。服务系统可丢弃加密密钥的明文副本,并且随后可被储存已加密数据对象以及已加密密钥。例如,参照图7,数据服务前端可向数据服务后端储存系统传输已加密数据对象和已加密密钥以便储存。
已加密数据对象和已加密包络密钥可被存储而密钥的明文版本不被储存,也就是说,明文密钥可能是数据服务后端储存系统和一个或多个其他系统不可访问的。可以任何合适的方式使得数据对象在其下被加密的密钥(例如,主密钥)不可访问。在一些实施方案中,这通过将密钥储存在仅密码服务系统可访问的存储器中来实现。在一些其他实施方案中,这可通过将主密钥储存在硬件或其他安全模块中或以其他方式在硬件或其他安全模块的保护下储存主密钥来实现。在一些实施方案中,可允许重写储存明文包络密钥的存储器位置(例如,数据服务系统的存储器),或可有意地重写储存密钥的存储器位置,以使密钥是数据服务前端不可访问的。作为另一个实例,明文包络密钥可被维持在最终停止储存密钥的易失性存储器中。以此方式,包络密钥仅在使用由KeyID标识的密钥解密的情况下可访问,或在其他情况下以未经授权的方式获取,如通过在不具有由KeyID标识的密钥的情况下破解密钥,而这在计算上可能是不切实际的。换句话说,经授权访问数据对象在其下被加密的密钥需要由KeyID标识的密钥。因此,如果图7的数据服务后端储存系统泄露,这样的泄露将不提供对未加密数据对象的访问,因为对数据对象进行解密将需要访问密钥,而密钥仅可通过使用由KeyID标识的密钥进行解密或通过在计算上不可行的其他方式来获取。
如上所述,本公开的各个实施方案允许用户以安全方式储存数据对象并检索它们。图9相应地示出可用于从储存装置获取数据对象的环境900的说明性实例。如图9中所示,环境900包括认证服务系统、密码服务系统、数据服务前端和数据服务后端储存系统。认证服务系统、密码服务系统、数据服务前端和数据服务后端储存系统可以是如上所述的计算机系统。如图9所示,数据服务前端系统被配置来接收数据对象请求并作为响应提供数据对象。如图9所示,在这个实施方案中,为了提供数据对象作为响应,数据储存前端系统被配置来与认证服务系统、密码服务系统和数据服务后端储存系统交互。例如,在各个实施方案中,数据服务前端系统被配置来向认证服务提交认证请求并响应于请求接收认证证明。作为另一个实例,数据服务前端被配置来向密码服务系统提供由KeyID标识的密钥所加密的密钥以及认证证明,密码服务系统可操作来至少部分地基于认证证明确定是否提供密钥,并且如果确定提供密钥,则随后向数据服务前端提供密钥。数据服务前端还可被配置来向密码服务系统提供其他信息、如KeyID。但在一些实施方案中,可隐式地向密码服务系统指示出KeyID,如通过与向密码服务系统提供的其他信息关联。还应注意,在一些实施方案中,与向数据服务前端提交请求一起,用户向数据服务前端提供KeyID。此外,如图9所示,在实施方案中,数据服务前端被配置来向数据服务后端储存系统请求数据对象,并且作为响应接收由密钥加密的数据对象以及由KeyID标识的密钥所加密的密钥。在一些实施方案中,密码服务系统可以可操作来拒绝执行不是使用与指定KeyID关联的密钥生成的密文的解密。
在实施方案中,数据服务前端被配置来使用从密码服务系统接收的密钥来对数据对象进行解密并向用户提供已解密数据对象。图10相应地示出根据各个实施方案的可用于提供已解密对象的过程1000的说明性实例。过程1000可由任何合适的系统来执行,如结合图9描述的数据服务前端系统。在实施方案中,过程1000包括接收1002数据对象的GET请求。接收数据对象的GET请求可以任何合适的方式来执行,如上文结合其他类型的请求所描述。例如,数据对象的GET请求可包括用于对请求进行认证的信息和/或其他信息。在实施方案中,与本文描述的其他过程一样,过程1000相应地包括向认证系统提交1004认证请求和接收1006认证响应。提交认证请求和接收认证响应可如上所述以任何合适的方式来执行。认证响应可用于确定1008GET请求是否可信。在实施方案中,如果确定1008 GET请求不可信,则过程1000包括拒绝1010请求。然而,在实施方案中,如果确定1008 GET请求可信,则过程1000包括从储存装置检索1012已加密数据对象和已加密密钥。例如上文结合图9所示,数据服务前端系统可从数据服务后端储存系统获取已加密数据对象和已加密密钥。
在实施方案中,过程1000包括向密码服务系统提供1014已加密包络密钥。向密码服务系统提供1014已加密包络密钥可以任何合适的方式来执行,并且可与其他信息、如使得密码服务系统能够确定是否对已加密密钥进行解密的认证证明一起提供。另外,向密码服务系统提供1014已加密包络密钥可包括:提供授权对已加密包络密钥进行解密所需要的密钥的标识符,以使得密码服务系统能够从在由密码服务系统管理的多个密钥之中选择由标识符标识的密钥。然而,如上所述,密钥可隐式地被标识。因此,密码服务系统可选择适当的密钥并对已加密密钥进行解密。在实施方案中,过程1000相应地包括从密码服务系统接收1016已加密包络密钥。例如,如果密码服务系统确定认证证明有效和/或对已加密数据对象进行解密根据任何适用的策略是可允许的,则密码服务系统可向试图对数据对象进行解密的系统提供已解密密钥。数据对象随后可使用已解密包络密钥来解密1018。随后可向请求者、如提交GET请求的用户或其他系统提供1020已解密数据对象。
在许多情况下,希望用户(即,一般是利用密码服务系统的装置)与密码服务系统直接交互。图11相应地示出允许用户直接访问密码服务系统的环境1100的说明性实例。环境1100中包括认证服务系统、数据服务前端和数据服务后端储存系统。认证服务系统、数据服务前端和数据服务后端储存系统可以是如上所述。例如,数据服务前端可被配置来如图11中所示在合适的网络上接收并响应来自用户的请求。作为在网络上响应来自用户的请求的一部分,数据服务前端还可被配置来与认证服务系统交互,以便确定用户请求是否可信和/或是否强制实施关于请求的策略。作为完成用户请求的一部分,数据服务前端还可被配置来与数据服务后端储存系统交互。用户请求可包括例如将数据存储在后端储存系统中的PUT请求以及从数据服务后端储存系统检索数据的GET请求。如上所述,根据各个实施方案也可以使用其他请求,如删除储存在数据服务后端储存系统中的数据的请求、更新储存在数据服务后端储存系统中的数据的请求等。
在图11的特定实例中,在环境1100中,密码服务系统包括密码服务前端和数据服务后端。与数据服务前端一样,密码服务前端被配置来在网络上接收并响应来自用户的请求。密码服务前端还被配置来与认证服务系统交互以确定用户请求是否可信。确定用户请求是否可信可如上文所述以简单方式来执行。应注意,虽然密码服务前端和数据服务前端与同一认证服务系统交互,但密码服务前端和数据服务前端可与不同的认证服务系统交互。此外,密码服务前端可被配置来在响应用户请求时强制实施策略。
在实施方案中,密码服务前端被配置来与密码服务后端交互。根据从密码服务前端接收的指令,密码服务后端被配置来执行密码操作。密码操作包括加密、解密和散列计算等。环境1100可例如由用户使用来使得明文由密码服务系统进行加密,使得已加密数据可储存在数据服务后端储存系统中。以下提供这样使用环境1100的实例。另外,下文还提供示例性密码服务系统的示例性细节。
数据可如上所述以任何合适的方式储存在数据服务后端储存系统中。例如,在环境1100中可使用上文描述的用于将已加密数据存储在后端储存系统中的技术。例如,虽然未示出,但数据服务前端可与密码服务前端通信,以引起密码服务后端随后对可储存在数据服务后端储存系统中的数据进行加密。已加密数据可以是数据对象和/或用于对数据对象进行加密的已加密密钥。在环境1100中,数据也可以其他方式放置到数据服务后端储存系统中。例如,用户可提供将由密码服务系统加密的明文并作为响应接收密文。用户随后可与数据服务前端交互或可向数据服务前端提交请求,以请求将密文储存在数据服务后端储存系统中。在这个实例中,数据服务前端可以任何方式来储存密文。例如,数据服务前端和后端储存系统可被配置成与数据是否被加密无关。
另外,与本文示出的所有环境一样,另外的前端系统可在逻辑上位于用户与数据服务前端、与密码服务前端、可能地与其他前端系统之间,以便协调系统之间的动作。例如,在一些实施方案中,用户可与前端系统交互,前端系统自身与密码服务前端和数据服务前端交互,使得从用户的角度操作更简单。例如,用户可请求加密并储存数据对象,并且前端系统通过与密码服务前端和数据服务前端的适当交互来响应请求。然而,从用户的角度,这可通过单个请求来执行。其他变体也在本公开的范围内。
图12示出可用于实现本公开的各个实施方案的环境1200的说明性实例。在图12中,环境1200被配置来使得用户能够将密文存储在数据服务后端储存系统中。如图12所示,环境1200相应地包括数据服务前端、数据服务后端储存系统、认证服务系统、密码服务前端和密码服务后端。数据服务后端储存系统、数据服务前端、认证服务系统、密码服务前端和密码服务后端可以是如上文结合图11描述的系统。例如,如图12中所示,数据服务前端被配置来接收并响应用户请求,并且还可被配置来强制实施关于用户请求的策略。作为响应请求的一部分,数据服务前端可被配置来向认证服务系统提交认证请求并作为响应接收认证证明。在成功认证之后,数据服务前端可进一步被配置来与数据服务后端储存系统交互,以从数据服务后端储存系统获取随后可向用户提供的已加密数据对象和可能地未加密数据对象。
如图12所示,密码服务前端也被配置来向认证服务系统提交认证请求并作为响应接收认证证明。认证证明可用于从密码服务后端获取服务。例如,密码服务前端可被配置来向密码服务后端提供密文与认证证明,并且密码服务后端可被配置来对密文进行解密并提供密文作为回报。如图12所示,密文可以是已加密密钥,并且密码服务后端可对已加密密钥进行解密并向密码服务前端提供已解密密钥(也就是明文密钥),密码服务前端进一步被配置来向用户提供明文密钥。用户随后可使用密钥来对从数据服务前端接收的已加密数据对象进行解密,或对储存在用户的域内(例如,在用户操作或控制的数据中心或计算机系统内)的已加密数据对象进行解密。在这个实例中,用户可能已经从数据服务前端获取已加密密钥。例如,用户可能已经向数据服务前端提交获得数据对象和/或用于对数据对象进行加密的密钥的请求。虽然在图11中作为单个请求示出,但可针对数据对象和密钥两者做出单独的请求。如图11所示,数据服务前端可从数据服务后端储存系统获取已加密数据对象和已加密密钥,并向用户提供已加密数据对象和已加密密钥。
应注意,与本文所示的所有环境一样,变体也被视为是在本公开的范围内。例如,图12示出向用户提供在密钥下加密的数据对象和所述密钥,所述密钥由密钥标识符标识的另一个密钥加密。还可使用更高等级的加密。例如,数据对象可在仅用户可访问(和/或环境1200的其他组件不可访问)的密钥下被加密。用于加密数据对象的密钥也可在仅用户可访问的密钥下被加密。在这个实例中,对环境1200的组件(缺少用户)的未授权访问仍然不提供对数据对象的未加密内容的访问,因为经授权解密仍然需要对用户的密钥进行访问。
作为另一个实例,在图12所示的环境1200中,数据服务前端和数据服务后端储存系统不可访问由数据服务后端储存系统储存的明文数据,因为数据服务前端和数据服务后台储存系统不可访问对已加密数据进行解密所需的密钥。然而,在一些实施方案中,可准许访问数据服务前端和/或数据服务后端储存系统。例如,在实施方案中,可允许数据服务前端对密钥进行临时访问,以使得数据服务前端能够获取已加密数据、对已加密数据进行解密、使用已解密数据用于特定目的(例如,索引),并随后删除或以其他方式丢失对已解密数据的访问权。此类动作可通过由数据服务前端和/或密码服务系统强制实施的策略来支配,并且可能需要来自用户的授权。
图13示出过程1300的说明性实例,过程1300可用于获取如来自如上所述的数据服务后端储存系统的已加密数据对象和已加密密钥。过程1300可例如由上文结合图12描述的数据服务前端系统来执行。在实施方案中,过程1300包括接收1302已加密数据对象的GET请求。接收GET请求可以任何合适的方式来执行,如借助于通过到数据服务前端系统的API调用来接收请求。因为已经接收GET请求,过程1300可包括提交1304认证请求和接收1306认证响应。如上所述,提交1304认证请求和接收1306认证响应可如上所述以任何合适的方式来执行。认证响应可用于确定1308 GET请求是否可信。如果确定1308 GET请求不可信,则过程1300可包括拒绝1310 GET请求。如上所述,拒绝1310 GET请求可如上所述以任何合适的方式来执行。然而,如果确定1308所述GET请求可信,则过程1300可包括提供1312已加密数据对象与已加密密钥,当解密时,已加密密钥可用于对已加密数据对象进行解密。应注意,与本文描述的所有过程一样,众多变体也被视为是在本公开的范围内。例如,过程1300可被配置来当GET请求可信时,通过提供已加密数据对象但不提供已加密密钥来响应GET请求。请求者,也就是提交GET请求的用户或系统,可以其他方式获取已加密密钥。例如,在一些实施方案中,用户它们自己可将已加密密钥存储在处于用户的控制下的数据储存系统中。作为另一个实例,一个储存服务系统可储存已加密数据对象,并且另一个服务系统可储存已加密密钥,并且用户可从相应服务系统获取已加密数据对象和已加密密钥。作为另一个实例,另一个服务系统或用户的第三方可用于储存已加密密钥,并且用户应请求可获取已加密密钥。一般地,可使用可提供已加密密钥的任何方式。
如图13所示,过程1300可使得实体已经被提供数据对象和可用于对数据对象进行解密的已加密密钥。在各个实施方案中,为了对数据对象进行解密,必须对已加密密钥进行解密。图14相应地示出过程1400的说明性实例,过程1400可将已解密密钥提供给需要这种已解密密钥以便使用已解密密钥来对已加密数据对象进行解密的实体。过程1400可由任何合适的系统来执行,如由上文结合图12描述的密码服务前端系统。在实施方案中,过程1400包括接收1402使用具有指定KeyID的另一个密钥对密钥进行解密的解密请求。虽然结合密钥的解密描述过程1400,但应注意,过程1400一般可适用于数据的解密。解密请求可如上所述以任何合适的方式来接收1402(例如,通过适当配置的API调用)。此外,解密请求可由对执行过程1400的语境适当的任何实体来接收。例如,解密请求可源自用户或源自另一个系统,如上文论述的数据服务前端。解密请求还可包括将要解密的数据(例如,密钥)或其参考内容。KeyID也可以任何合适的方式来指定。例如,在一些实施方案中,解密请求包括KeyID或KeyID的参考内容,也就是,可用于确定KeyID的信息。如以上所论述,也可隐式地指定KeyID。例如,可通过与可获得的数据、如提交解密请求的请求者的标识码关联来获取KeyID。例如,对应于KeyID的密钥可以是用于请求者或被代表来提交请求的实体的默认密钥。
在实施方案中,过程1400包括提交1404认证请求和接收1406认证响应。提交1404认证请求和接收1406认证响应可如上所述以任何合适的方式来执行。此外,如上所述,所接收认证响应可用于确定1408 GET请求是否可信。如果确定1408 GET请求不可信,则过程1400可包括拒绝1410 GET请求。如上所述,拒绝1410 GET请求可如上所述以任何合适的方式来执行。然而,如果确定1408 GET请求可信,则过程1400可包括访问针对指定KeyID和/或请求者的策略信息。策略信息可包括以下信息,所述信息包括关于KeyID和/或请求者的一个或多个策略的信息。
在实施方案中,所访问策略信息用于确定1414任何适用策略是否允许对具有指定KeyID的密钥进行解密。如果确定1414策略不允许对由KeyID指定的密钥进行解密,则过程1400可包括拒绝1410GET请求,如上所述。然而,如果确定1414策略允许对具有指定KeyID的密钥进行解密,则过程1400可包括使用由KeyID标识的密钥对密钥进行解密1416。一旦密钥已经使用具有KeyID的密钥来解密,随后就可如通过在网络上进行传输来向提交解密请求的请求者(或,在一些实施方案中,另一个授权的目的地)提供1418已解密密钥。
如上文论述的环境1200所示,用户可以各种方式获取已加密数据对象和用于对数据对象进行解密的密钥。图15示出根据各个实施方案的可用于获取明文的过程1500的说明性实例。过程1500可由任何合适的系统来执行,如由结合图12描述的用户所操作和/或托管的系统。其他合适的系统包括代表用户并且不必根据所提供的实时用户输入但或许根据预先编程的过程进行操作的系统。
在实施方案中,过程1500包括从数据储存服务系统接收1502密文。向数据储存服务系统请求1502密文可如上所述以任何合适的方式来执行。例如,执行过程1500的系统可在上文结合图12示出的环境1200中使用适当配置的API调用和/或通过上文结合图13描述的过程1300来请求1502密文。
过程1500还可包括接收密文和已加密密钥。接收密文和已加密密钥可以任何合适的方式来执行。例如,可响应于从数据储存服务系统获取密文的请求来接收密文和已加密密钥。然而,一般地,密文和已加密密钥可以其他合适的方式来接收1504。例如,从数据储存服务系统接收密文的请求可以是异步请求,并且可依据随后提交的另一个请求来接收1504密文。此外,密文和已加密密钥可作为单个响应提供或可以独立地获取,如通过不同的响应(不同响应可来自相同系统或不同系统)。作为另一个实例,执行过程1500的系统可本地地或以其他方式储存已加密密钥,并且已加密密钥可从本地存储器接收。
在实施方案中,过程1500包括请求使用具有指定KeyID的密钥对已加密密钥进行解密。KeyID可如上所述以任何合适的方式来指定。此外,应注意,执行过程1500的系统可能够以任何合适的方式指定KeyID。例如,与KeyID一起提供的已加密密钥和/或信息可指定KeyID。作为另一个实例,执行过程1500的系统可本地或远程访问使得能够确定KeyID的信息。例如本地或远程数据库可使数据对象与用于对数据对象进行加密的密钥的密钥标识符关联。一般地,可使用可使得系统能够指定KeyID的任何方式。此外,在一些实施方案中,无需指定KeyID,如当向密码服务系统提供的信息足以确定KeyID时。用于对已加密密钥进行解密的请求1506可以如与上文结合图12论述的环境相关的任何合适的方式和/或通过执行上文结合图14描述的过程1400来执行。
在实施方案中,过程1500包括接收1508已解密密钥。接收1508已解密密钥可以任何合适的方式来执行。例如,可响应于用于对已加密密钥进行解密的请求来接收已解密密钥。作为另一个实例,用于对已加密密钥进行解密的请求可以是异步请求,并且可能已经提交用于接收已解密密钥的另一个请求。一般地,已解密密钥可以任何合适的方式来接收。此外,与从一个装置流向另一个装置的所有信息一样,信息的传递可使用安全通道来执行。例如,已解密密钥可由接收已解密密钥的实体再次加密以用于解密。一般地,任何方式的安全通信可用于从一个实体向另一个实体传递信息。
一旦已经接收1508已解密密钥,过程1500就可包括使用1510已解密密钥对密文进行解密1510并且因此获取明文。应注意,与本文描述的所有过程一样,变体被视为是在本公开的范围内。例如,过程1500示出获取密文的请求和用于对已加密密钥进行解密的请求顺序地被执行。然而,与本文关于各种过程描述的许多操作一样,在各个实施方案中无需顺序地执行操作。例如,如果执行过程1500的系统可在请求密文之前访问已加密密钥,或以其他方式能够这样做,则系统可并行地或以与所示方式不同的顺序请求密文并请求对已加密密钥进行解密。其他变体也被视为是在本公开的范围内。
如以上所论述,本公开的各个实施方案涉及提供密码服务。密码服务可由如上所述的密码服务系统来提供。图16相应地示出根据各个实施方案的密码服务系统1600的说明性实例。如图16所示并且如以上所论述,密码服务系统1600在逻辑上包括前端系统和后端系统。前端系统和后端系统两者都可由被配置来执行本文描述的操作的一个或多个计算机系统来实现。例如,如图16中所示,密码服务系统1600的前端系统实现请求API和策略配置API。在实施方案中,请求API是被配置用于请求将要由密码服务系统执行的密码操作和其他操作的API。因此,可通过请求API向前端系统做出请求,以便由密码服务系统执行此类密码操作。
请求API可被配置为具有以下可获得的示例性高级请求:
CreateKey(KeyID)
Encrypt(KeyID,Date,[AAD])
Decrypt(KeyID,Ciphertext,[AAD])
Shred(KeyID)
Rekey(Ciphertext,OldKeyID,NewKeyID)。
在实施方案中,CreateKey(KeyID)请求引起密码服务系统创建由请求中所标识的KeyID标识的密钥。在接收到请求之后,密码服务系统可生成密钥并使密钥与KeyID关联。应知道,KeyID可以是但不必是唯一的标识符。例如,KeyID可标识密钥族。例如,在一些实施方案中,执行密钥轮换。密钥轮换可包括:将密钥替换为其他密钥,以防止收集到足够允许实际破解所使用加密法的已解密数据。如果在不同于密码服务系统的实体的指导下执行,则使用CreateKey(KeyID)请求可引起密码服务系统创建新密钥以替换由KeyID标识的旧密钥。旧密钥可保持由KeyID标识,但是可例如仅用于解密(已经使用旧密钥进行加密的数据)而不用于将来的加密。作为另一个实例,在一些实施方案中,密码服务系统的用户提供他们自己的密钥标识符,并且可能的是两个不同客户可能提供相同标识符。在此类情况下,标识符可能不是唯一地标识密钥或甚至唯一地标识密钥族。各种措施可就位以解决此问题。例如,与密码服务系统的用户关联的标识码或其他信息可用于标识适当的密钥或密钥族。在再其他实施方案中,密码服务系统可随机地、顺序地、或使用任何其他方法分配KeyID。
应注意,当KeyID不是唯一地标识密钥时,各种系统可就位以实现适当的功能。例如,在各个实施方案中,由KeyID标识的密钥族是有限的。如果请求使用由KeyID标识的密钥进行的解密操作,则另外数据(例如,执行加密时的时间戳)可使得能够确定要使用的适当密钥。在一些实施方案中,密文可包括指示密钥版本的信息。在一些实施方案中,所有可能的密钥被用于提供数据的不同解密过程。由于存在有限次数的密钥,可从所提供的那些解密中选择适当的解密过程。在一些实施方案中,用密钥进行解密以使得密码服务系统能够检测到密文不是至少部分地基于密钥生成(如通过使用已认证加密)的方式来执行。其他变体也被视为是在本公开的范围内。
Encrypt(KeyID,Data,[AAD])请求可用于引起密码服务系统使用由KeyID标识的密钥对指定数据进行加密。另外的已认证数据(AAD)可用于各种目的并且可以是不必加密但经认证的数据,例如通过电子签名、消息认证码、或一般地包括在AAD内的加密钥散列值来认证。在一些实施方案中,密文被生成为包括AAD的至少一部分。在一些其他实施方案中,AAD是在解密期间单独地提供。在一些其他实施方案中,AAD是在解密时至少部分地基于请求和或其他元数据生成,使得解密将仅在元数据传递时成功。在一些实施方案中,策略可约束关于特定AAD是否可执行密码操作。通过编程逻辑和/或由密码服务系统强制实施的策略,Encrypt(KeyID,Data,[AAD])请求的处理可既要求AAD包括具体值又要求AAD可信(例如,自原始传输以来未被修改)。类似地,Decrypt(KeyID,Ciphertext,[AAD])请求可用于引起密码服务系统使用由KeyID标识的密钥对指定密文进行解密。Decrypt(KeyID,Ciphertext,[AAD])请求中的AAD可如上所述来使用。例如,通过编程逻辑和/或由密码服务系统强制实施的策略,Decrypt(KeyID,Ciphertext,[AAD])的处理可既要求AAD包括具体值又要求AAD可信(例如,自原始传输以来未被修改)。
在实施方案中,Shred(KeyID)可用于引起密码服务系统电子地销毁(shred)由指定KeyID标识的密钥或密钥族。电子销毁可包括使密钥不再可访问。例如,使用Shred(KeyID)请求可引起密码服务系统命令一个或多个硬件装置对由指定KeyID标识的一个或多个密钥执行SecureErase操作。一般地,由KeyID标识的密钥可以任何合适的方式电子地销毁,如通过用其他数据(例如,一系列零或一,或随机字符串)重写编码密钥的数据。如果密钥以在密钥下被加密的方式被存储,则可电子地销毁用于对密钥进行加密的密钥,从而使得丢失对密钥的访问权。在一些实施方案中,销毁操作可使得指示所销毁KeyID的解密操作在将来某一确定时刻失败。可使用安全地并且永久地摧毁对密钥的任何可能访问的其他方式。
在实施方案中,ReKey(Ciphertext,OldKeyID,NewKeyID)请求可用于引起密码服务系统在不同密钥下对密文进行加密。当密码服务系统接收ReKey(Ciphertext,OldKeyID,NewKeyID)请求时,它可使用由OldKeyID标识的密钥对指定密文进行解密并随后使用由NewKeyID标识的密钥对已解密密文进行加密。如果由NewKeyID标识的密钥尚不存在,则密码服务系统可生成要使用的密钥并使所生成密钥与指定NewKeyID关联,如结合以上所述的Create(KeyID)请求所描述。在一些实施方案中,ReKey操作可以可操作来使得数据可在密钥服务系统的孤立实体之间传送。在一些实施方案中,策略可能允许对密文执行rekey操作,但可能不允许相同请求者直接对密文进行解密。在一些实施方案中,ReKey可能支持将密文的密钥从由第一账户内的第一KeyID标识的密钥更新为由第二账户内的KeyID标识的密钥。
类似地,前端系统可实现策略配置API,在实施方案中,策略配置API使得用户能够提交用于配置用于执行密码操作和其他策略相关操作的策略的请求。在各个实施方案中,策略可与密钥、密钥组、账户、用户和其他逻辑实体关联。以下提供可通过策略配置API配置的示例性策略。在实施方案中,密码服务策略配置API包括以下请求:
SetKeyPolicy(KeyID,Poliey)
Suspend(KeyID,Public Key)
Reinstate(KeyID,Private Key)
在实施方案中,SetKeyPolicy(KeyID,Policy)请求可用于引起密码服务系统存储关于由KeyID标识的密钥(或密钥族)的策略。策略可以是确定在具体语境中是否可执行所请求密码操作的信息。策略可以陈述性访问控制策略语言来编码,如可扩展访问控制标记语言(XACML)、企业隐私授权语言(EPAL)、亚马逊网络服务访问策略语言、MicrosoftSecPol或编码执行密码操作必须满足的一个或多个条件的任何合适的方式。策略可限定可执行什么操作,何时可执行操作,哪些实体可为执行操作做出授权请求,授权特定请求需要哪些信息等。另外,除了或替代以上给出的实例,策略可使用访问控制列表、与用户关联的特权和/或操作位掩码来限定和/或强制实施。以下呈现示例性策略。
在一些实施方案中,密码服务系统可例如使用Suspend(KeyID,Public Key)API调用来支持暂停操作。暂停操作使得密码服务系统的客户能够拒绝密码服务系统的操作者使用或访问密钥。这对关心隐蔽合法命令或其中密码服务系统的操作者可被强迫使用密钥执行一些操作的其他情况的客户可能有用。它也对希望锁定特定数据并使其在线不可访问的客户可能有用。在一些实施方案中,暂停操作可能包括:从客户接收公共密钥并利用所接收公共密钥对由给定KeyID指定的密钥进行加密、并销毁由KeyID指定的密钥,使得提供者不能访问已暂停密钥,除非例如使用既指定KeyID又包括私人密钥的Reinstate(KeyID,Private Key)API调用提供与公共密钥关联的私人密钥。在一些其他实施方案中,暂停操作可能包括:使用由密码服务系统管理的另一个密钥对与指定KeyID关联的密钥进行加密,所述另一个密钥包括但不限于为了立即暂停操作的目的而创建的一个密钥。可向客户提供通过这个操作产生的密文,而不是将密文保留在密码服务系统内。随后可销毁由KeyID标识的原始密钥。密码服务系统可以可操作来接收所提供密文并再导入已暂停密钥。在一些实施方案中,密文可以将防止密码服务系统向客户返回已解密版本的方式生成。
如图16所示,密码服务系统1600包括后端系统,在一些实施方案中,后端系统自身包括各种组件。例如,在此实例中,后端系统包括请求处理系统,所述请求处理系统可以是密码服务系统1600被配置来根据通过请求API或策略配置API接收的请求执行操作的子系统。例如,请求处理组件可接收通过请求API和策略配置API接收的请求,确定此类请求是否可信并且因此确定是否可完成,并且可完成请求。完成请求可包括:例如,执行和/或已经执行密码操作。请求处理单元可被配置来与认证接口交互,认证接口使得请求处理单元能够确定请求是否可信。认证接口可被配置来与如上所述的认证系统交互。例如,当由请求处理单元接收到请求时,请求处理单元可利用认证接口与认证服务系统交互,如果适用,认证服务系统可提供可使用以引起执行密码操作的认证证明。
在此说明性实例中,密码服务系统1600的后端系统还包括多个安全模块(密码模块)和策略强制实施模块。尽管安全模块中的一个或多个可为硬件安全模块,但在各个实施方案中,安全模块可为被配置为具有本文所述能力的任何合适的计算机装置。在实施方案中,每个安全模块存储与KeyID关联的多个密钥。每个安全模块可被配置来安全地存储密钥,以便不被密码服务系统1600的其他组件和/或其他系统的其他组件访问。在实施方案中,安全模块中的一些或全部遵从至少一种安全标准。例如,在一些实施方案中,安全模块各自被验证为遵从联邦信息处理标准(FIPS)出版物140-1和/或140-2中所概括的FIPS,如FIPS出版物140-2中所概括的一个或多个安全等级。此外,在一些实施方案中,每个安全模块都在密码模块验证程序(CMVP)下被证实。安全模块可实现为硬件安全模块(HSM)或具有HSM的一些或所有能力的另一种安全模块。在一些实施方案中,已验证模块用于引导操作。在一些实施方案中,客户可配置存储在已验证模块中并仅由已验证模块对其进行操作的一些密钥以及由软件对其进行操作的其他密钥。在一些实施方案中,与这些不同选项关联的性能或成本可能不同。
安全模块可被配置来根据请求处理单元所提供的指令来执行密码操作。例如,请求处理单元可向适当的安全模块提供密文和KeyID,并向安全模块提供使用与KeyID关联的密钥对密文进行解密并且作为响应提供明文的指令。在实施方案中,密码服务系统1600的后端系统安全地存储形成密钥空间的多个密钥。安全模块中的每一个可将所有密钥存储在密钥空间中;然而,变体被认为是在本公开的范围内。例如,安全模块中的每一个可存储密钥空间的子空间。由安全模块存储的密钥空间的子空间可重叠,使得密钥可冗余地存储在整个安全模块中。在一些实施方案中,特定密钥可仅存储在指定地理区域中。在一些实施方案中,某些密钥可仅由具有特定证书或许可等级的操作者访问。在一些实施方案中,某些密钥可存储在由特定第三方提供者操作的模块中并且仅由所述模块使用,特定第三方提供者与数据存储服务系统的提供者有合约。在一些实施方案中,安全模块的构造控制可能要求试图迫使使用密钥而非由客户授权的合法命令涉及正被强迫的另外实体或强迫动作的另外管辖范围。在一些实施方案中,可向客户提供对他们的密文和他们的密钥都存储在其中的管辖范围的独立选择权。在一些实施方案中,存储密钥的安全模块可被配置来向密钥的所有者提供审计信息,并且安全模块可被配置成使得审计信息的生成和提供不受客户抑制。在一些实施方案中,安全模块可被配置来独立验证由客户生成的签名,使得提供者(例如,托管安全模块)不能在由安全模块存储的密钥下执行操作。此外,一些安全模型可存储密钥空间的全部并且一些安全模块可存储密钥空间的子空间。其他变体也被视为是在本公开的范围内。在不同安全模块存储密钥空间的不同子空间的情况下,请求处理单元可被配置为如具有关系表或其他机构,关系表或其他机构用以根据各种请求确定哪个安全模块来命令执行密码操作。
在实施方案中,策略强制实施模块被配置来获取来自请求处理单元的信息,并且至少部分地基于所述信息来确定是否可执行通过API接收的请求。例如,当通过请求API接收执行密码操作的请求时,请求处理单元可与策略强制实施模块交互,以根据任何适用策略、如适用于请求中指定的KeyID的策略和/或其他策略、如与请求者关联的策略来确定请求的完成是否被授权。如果策略强制实施模块允许完成请求,请求处理单元可相应地根据完成请求来命令适当的安全模块执行密码操作。
与本文描述的所有附图一样,众多变体被认为是在本公开的范围内。例如,图16示出与安全模块分开的策略强制实施模块。然而,除了或替代被示出为分开的策略强制实施模块,每个安全模块可包括策略强制实施模块。因此,每个安全模块可独立地被配置来强制实施策略。此外,作为另一个实例,每个安全模块可包括所强制实施的策略不同于分开的策略强制实施模块所强制实施的策略的策略强制实施模块。众多其他变体被视为是在本公开的范围内。
如以上所论述,各种策略可由与KeyID关联的用户来配置,使得当请求指定结合对应于KeyID的密钥执行密码操作时,可强制实施策略。图17提供根据各个实施方案的用于更新策略的过程1700的说明性实例。过程1700可由任何合适的系统来执行,如由如上文结合图16所描述的密码服务系统。在实施方案中,过程1300包括接收1302更新针对KeyID的策略的请求。请求可以任何合适的方式来接收1302。例如,作为实例参照图16,请求可通过上述密码服务系统1600的前端系统的策略配置API来接收。请求可以任何合适的方式来接收。
在实施方案中,过程1700包括提交1704认证请求和接收1706认证响应。提交1704认证请求和接收1706认证响应可如上所述以任何合适的方式来执行。同样如上所述,所接收认证响应可用于确定1708更新针对KeyID的策略的请求是否可信。如果确定1708所接收的更新针对KeyID的策略的请求不可信,则可拒绝1710请求。拒绝1710请求可以任何合适的方式来执行,如上所述。然而,如果确定1708所接收的更新针对KeyID的策略的请求可信,则过程1700可包括访问1712适用于请求者的策略信息。策略信息可以是可根据其强制实施适用于请求者的任何策略的信息。例如,在利用由过程1700执行的密码服务的组织中,只有组织的某些用户可被允许更新针对KeyID的策略。策略信息可指示哪些用户能够引起密码服务系统更新针对KeyID的策略和/或甚至策略根据现有策略是否可更新。例如,在一些实施方案中,密码服务系统可接收强制实施新策略的请求。密码服务系统可检查任何现有策略是否允许将新策略付诸实施。如果密码服务系统确定现有策略不允许强制实施新策略,则可拒绝请求。一般地,策略信息可为可用于强制实施适用于请求者的策略的任何信息。
如图17所示,过程1700包括使用访问策略信息来确定1704策略是否允许执行所请求的更新。如果确定1714策略不允许执行所请求的更新,则过程1700可如上所述包括拒绝1710请求。然而,如果确定1714策略允许执行所请求的更新,则过程1700可包括更新1716针对KeyID的策略。更新针对KeyID的策略可包括:更新策略信息,和根据KeyID或与其关联地存储已更新策略。已更新策略信息可例如通过如上文结合图16所描述的密码服务系统的策略强制实施模块来存储。
策略还可由电子环境中结合密码服务系统操作的其他组件来强制实施。例如上文参照图2所论述,密码服务系统可向数据服务前端提供策略的电子表示,以便数据服务器端强制实施。这在数据服务系统更适合于强制实施策略的情况下可能有用。例如,动作是否为策略所允许可至少部分地基于数据服务前台可访问且密码服务系统不可访问的信息。作为一个实例,策略可取决于由数据服务后端存储系统代表与策略关联的客户所存储的数据。
如上文所论述,密码服务系统可包括允许根据关于具有KeyID的密钥的策略来强制实施策略的各种系统。图18相应地示出可用于强制实施策略的过程1800的说明性实例。过程1800可由任何合适的系统执行,如由如上文结合图16描述的密码服务系统。在实施方案中,过程1800包括接收1802使用具有KeyID的密钥执行一个或多个密码操作的请求。虽然图18将过程1800示出为结合执行一个或多个密码操作的请求来执行,但应注意,过程1800可适合于与执行不一定是密码操作的操作的任何请求一起使用。以上描述了示例性操作。
可做出1804所接收请求是否可信的确定。确定所接收请求是否可信可如上所述以任何合适的方式来执行。例如,确定1804请求是否可信可如上所述包括提交认证请求和接收认证响应。如果确定1804请求不可信,则过程1800可包括拒绝1806请求。拒绝1806请求可如上所述以任何合适的方式来执行。然而,如果确定1804请求可信,则过程1800可包括访问1808针对KeyID和/或请求者的策略信息。访问针对KeyID和/或请求的策略信息可以任何合适的方式来执行。例如,访问针对KeyID和/或请求者的策略信息可通过访问存储策略信息来执行,所述存储策略信息来自存储此类策略信息的一个或多个存储系统。所访问策略信息可用于确定1810策略是否允许执行一个或多个操作。
如果确定1810策略不允许执行一个或多个策略,则过程1800可包括拒绝1806请求。然而,如果确定策略允许执行一个或多个策略,则过程1800可包括执行1812所请求的一个或多个密码操作。可提供1814执行一个或多个密码操作的一个或多个结果,如向提交所接收1802的执行一个或多个密码操作的请求的请求者提供。在一些实施方案中,至少部分地衍生自所允许的请求和或所拒绝的请求的信息可通过审计子系统来提供。
如所论述的,本公开的实施方案允许灵活的策略配置和强制实施。在一些实施方案中,策略可说明哪些服务系统可在哪些语境中执行哪些操作。例如,关于密钥的策略可允许数据存储服务系统引起密码服务系统执行加密操作但不执行解密操作。关于密钥的策略还可包括关于密文和/或已解密明文的一个或多个条件。例如,策略可要求密文和/或明文在响应于请求而提供操作结果之前产生特定散列值(其可为加密钥散列值)。策略可指定至少部分地基于时间、请求所源自的互联网协议(IP)、将被加密/解密内容的类型、AAD和/或其他信息的一个或多个限制条件和/或权限。
众多变体被视为是在本公开的范围内。例如,上文论述的各个实施方案论述与分开的认证服务系统的交互。然而,上文论述的环境的组件可具有它们自己的授权组件,并且确定请求是否可信可以或可以不包括与另一个实体通信。另外,上文所论述的实施方案中的每一个结合由环境实现的特定操作和能力来说明。上文结合不同环境所论述的技术可相结合,并且一般地,根据本公开的环境可允许灵活使用各种技术。仅作为一个实例,密码服务系统可用于根据请求对密钥、和其他内容如无密钥数据对象两者进行加密。作为另一个实例,密码服务系统可被配置来接收并响应来自用户(例如,计算资源提供者的客户)和其他服务系统(例如,数据存储服务系统)两者的请求。在一些实施方案中,密码服务系统和/或关联认证服务系统可被配置用于与移动装置一起用于执行所存储数据的加密。在一些实施方案中,至少一个解锁pin可由密码服务系统验证。在再其他实施方案中,作为操作的一部分,密码服务系统可接收通过硬件鉴证生成的信息。在一些实施方案中,密码服务系统可以可操作来关于内容提供数字版权管理服务。
可鉴于以下条款对本公开的各个实施方案进行描述:
1.一种用于提供服务的计算机实现的方法,其包括:
在被配置有可执行指令的一个或多个计算机系统的控制下,
从请求者接收从数据存储系统检索数据对象的请求;
响应于所述检索所述数据对象的请求,提供已加密数据对象和已加密第一密钥,当解密时,所述已加密第一密钥可用于对所述已加密数据对象进行解密;
从所述请求者接收所述已加密第一密钥;
由密码服务系统使用所述密码服务系统可访问但所述数据存储系统不可访问的第二密钥来对所述已加密第一密钥进行解密;以及
向所述请求者提供所述第一密钥以使得所述请求者能够使用所述第一密钥来对所述已加密数据对象进行解密。
2.如条款1所述的计算机实现的方法,其中所述方法还包括:
接收将所述数据对象存储在所述数据存储系统中的请求;
获取所述第一密钥;
使用所述第一密钥对所述数据对象进行加密;
引起所述密码服务系统使用所述第二密钥对所述第一密钥进行加密;以及
由所述数据存储系统存储所述已加密数据对象和所述已加密第一密钥。
3.如条款1或2所述的计算机实现的方法,其中获取所述第一密钥包括生成所述第一密钥。
4.如前述条款中任一项所述的计算机实现的方法,其中:
所述方法还包括:检查关于所述第二密钥的政策是否允许对所述已加密第一密钥进行解密;以及
对所述已加密第一密钥进行解密是依赖于所述政策允许对所述已加密第一密钥进行解密。
5.如前述条款中任一项所述的计算机实现的方法,其中:
在所述数据存储系统的指引下使用所述第二密钥用于至少一个操作是关于所述第二密钥的策略所不允许的。
6.如前述条款中任一项所述的计算机实现的方法,其中所述密码服务系统由计算资源提供者托管并且代表所述计算资源提供者的多个客户维持密钥。
7.一种用于提供服务的计算机实现的方法,其包括:
在被配置有可执行指令的一个或多个计算机系统的控制下,
响应于将数据对象存储在数据存储系统中的请求:
引起所述数据对象被加密;以及
将呈已加密形式的所述数据对象存储在所述数据储存系统中,使得从已加密形式对所述数据对象进行解密需要所述数据存储系统不可访问的密钥;
在所述密码系统处使用所述密钥以向授权实体提供信息,所述信息使得所述授权实体能够访问呈从已加密形式解密的形式的所述数据对象。
8.如条款7所述的计算机实现的方法,其中所述数据存储系统不能向未经授权实体提供呈已解密形式的所述数据对象。
9.如条款8所述的计算机实现的方法,其还包括:由所述数据储存系统使用所述密钥来对所述数据对象进行加密。
10.如条款7至9中任一项所述的计算机实现的方法,其中:
所述方法还包括:接收从第三方到所述数据存储系统的从所述数据存储系统检索所述数据对象的请求;并且
提供所述信息响应于所接收的对所述密码系统的响应而执行。
11.如条款7至10中任一项所述的计算机实现的方法,其中:
所述数据存储系统被配置来强制实施第一策略集;
所述密码系统被配置来强制实施不同于所述第一策略集的第二策略集;并且
存储所述数据对象是根据所述第一策略集来执行;并且
提供所述信息是根据所述第二策略集来执行。
12.如条款7至11中任一项所述的计算机实现的方法,其中所述第一策略集包括关于所述密钥的一个或多个策略。
13.如条款7至12中任一项所述的计算机实现的方法,其还包括:
获取对所述信息的临时访问权;
使用所获取的信息对所述数据对象进行解密;
根据所述已解密数据对象执行一个或多个操作;以及
引起对所述已解密数据对象的访问权丢失。
14.一种系统,其包括:
服务系统,其被配置来:
接收数据对象;并且
对所述数据对象进行解密;并且
存储所述已加密数据对象,其方式为使所述服务系统不能对所述已加密数据对象进行解密;以及
密码子系统,其被配置来:
使用所述服务系统不可访问的密钥来对所述已加密数据对象进行解密;并且
应实体的请求对所述已加密信息进行解密,所述实体不同于所述服务系统并且被授权做出请求。
15.如条款14所述的系统,其中:
所述信息时所述服务系统用来对所述数据对象进行加密的另一个密钥;并且
所述服务系统进一步被配置来:在对所述数据对象进行加密之后的一定时间丢失对所述另一个密钥的访问权。
16.如条款14或15所述的系统,其中所述密码子系统被配置来强制实施关于所述密钥的策略,并且对所述已加密信息进行解密依赖于所述授权实体的请求与所述策略一致。
17.如条款14至16中任一项所述的系统,其中所述密码子系统被配置来代表多个第三方实体安全管理包括所述密钥的密钥集。
18.如条款17所述的系统,其中:
所述密码子系统包括为所述多个第三方实体的至少一个子集中的每一个存储至少一个密钥的至少一个安全模块。
19.如条款14至18中任一项所述的系统,其中所述数据存储系统进一步被配置来存储所述已加密数据对象与所述已加密信息。
20.一种具有指令的计算机可读存储介质,当由计算机系统的一个或多个处理器执行时,所述指令引起所述计算机系统至少:
从远程托管的数据存储服务系统获取已加密数据对象和已加密信息,当解密时,所述已加密信息可用于对所述已加密数据对象进行解密;
引起远程托管的密码服务系统解密对所述已加密数据对象进行解密所必须的所述已加密信息;并且
使用所述已解密信息对所述已加密数据对象进行解密。
21.如条款20所述的计算机可读存储介质,其中引起所述远程托管的密码服务系统解密所述已加密信息包括:向所述密码服务系统提供由所述密码服务系统管理的密钥的标识符。
22.如条款20或21所述的计算机可读存储介质,其中当由所述一个或多个处理器执行时,所述指令进一步引起所述计算机系统引起所述数据存储服务系统对所述数据对象进行加密。
23.如条款22所述的计算机可读存储介质,其中引起所述数据存储服务系统对所述数据对象进行加包括:向所述数据存储服务系统提供所述数据对象。
24.如条款20至23中任一项所述的计算机可读存储介质,其中:
所述密码服务系统使用密钥对所述已加密信息进行解密;并且
当由所述一个或多个处理器执行时,所述指令进一步引起所述计算机系统传输关于所述密钥的策略,从而引起所述密码服务系统强制实施所传输的策略。
25.如条款20至24中任一项所述的计算机可读存储介质,其中:
获取所述已加密数据对象包括:向所述数据储存服务系统传输电子请求;
引起所述密码服务系统对所述已加密信息进行解密包括:向所述数据储存服务系统传输另一个电子请求;并且
当由所述一个或多个处理器执行时,所述指令引起所述计算机系统使用相同证书来证明所述电子请求和所述另一个电子请求两者的可信性。
图19示出用于实现根据各个实施方案的各方面的示例性环境1900的各方面。如将了解,尽管出于解释目的使用基于网络的环境,但是可视情况使用不同环境来实现各个实施方案。环境包括电子客户端装置1902,电子客户端装置1902可包括可操作来在适当网络1904上发送和接收请求、消息或信息并且将信息传送回装置用户的任何适当装置。此类客户端装置的实例包括个人计算机、手机、手持式消息传递装置、膝上计算机、机顶盒、个人数据助理、电子书阅读器等等。网络可包括任何适当网络,包括内部网、互联网、蜂窝网、局域网或任何其他此类网络或上述网络的组合。此类系统所用的组件可以至少部分地取决于所选网络和/或环境的类型。用于通过此类网络通信的协议和组件是众所周知的,因而本文不再详细论述。网络上的通信可通过有线或无线连接及其组合来实现。在这个实例中,网络包括互联网,因为环境包括用于接收请求并且响应于所述请求而提供内容的网络服务器1906,然而对于其他网络来说,可使用服务类似目的的替代装置,如本领域技术人员所显而易见的。
所示环境包括至少一个应用程序服务器1908和数据存储器1910。应当理解,可以存在可以链接起来或以其他方式来配置的若干应用程序服务器、层或其他元件、过程或组件,所述应用程序服务器、层或其他元件、过程或组件可交互来执行如从适当数据存储器获取数据的任务。如本文所使用的,术语“数据存储器”指代能够存储、访问和检索数据的任何装置或装置组合,所述装置的装置组合可包括任何标准、分布式或集群式环境中的任何组合和任何数目的数据服务器、数据库、数据存储装置和数据存储介质。应用程序服务器可包括任何适当硬件和软件,所述硬件和软件视执行客户端装置的一个或多个应用程序的各方面的需要而与数据存储器集成、处置应用程序的大多数数据访问和业务逻辑。应用程序服务器提供与数据存储器协作的存取控制服务,并且能够生成将要传送到用户的内容、如文本、图片、音频和/或视频,在这个实例中,所述内容可以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)或另一种适当结构化语言的形式由网络服务器向用户提供。所有请求和响应的处置以及客户端装置1902与应用程序服务器1908之间的内容递送可由网络服务器来处置。应当理解,网络服务器和应用程序服务器不是必要的,且仅仅是示例性组件,因为本文所论述的结构化代码可在如本文其他地方所论述的任何适当装置或主机上执行。
数据存储器1910可包括若干单独的数据表、数据库或其他数据存储机构和介质,用来存储与特定方面相关的数据。举例来说,所示数据存储器包括用于存储生成数据1912和用户信息1916的机构,生成数据1912和用户信息1916可用于提供用于生成端的内容。数据存储器还被示出为包括用于存储日志数据1914的机构,所述日志数据1914可用于报告、分析或其他此类目的。应当理解,可能存在可能需要存储在数据存储器中的许多其他方面,如页面图像信息和访问权信息,所述方面可视情况存储在上文所列机构中的任何机构中或存储在数据存储器1910中的另外机构中。数据存储器1910可通过与它关联的逻辑来操作,以便从应用程序服务器1908接收指令,并且响应于所述指令而获取、更新或以其他方式处理数据。在一个实例中,用户可以针对某种类型的项目提交搜索请求。在此情况下,数据存储器可能访问用户信息来验证用户的身份,并且可访问目录详细信息以获取有关所述类型的项目的信息。接着可将信息如以网页上的结果列表的形式返回给用户,用户能够通过用户装置1902上的浏览器来查看所述网页。可在浏览器的专用页面或窗口中查看到感兴趣的特定项目的信息。
每个服务器通常将包括提供用于所述服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),当由服务器的处理器执行时,所述指令允许服务器实行其期望的功能。操作系统和服务器一般功能的合适实现方式是已知的或可商购得的,并且本领域的普通技术人员,特别是根据本公开,较易实施这些方式。在一些实施方案中,操作系统可根据一个或多个验证制度如评估保证等级(EAL)等级4来配置或在其下被验证。
在一个实施方案中,环境是利用通过通信链路、使用一个或多个计算机网络或直接连接来互连的若干计算机系统和组件的分布式计算环境。然而,本领域普通技术人员应理解,这种系统可在具有比图19所示的组件更少或更多组件的系统中同样顺利地操作。因此,图19中的系统1900的描绘本质上应视为说明性的,并且不限制本公开的范围。
各个实施方案可进一步在广泛范围的操作环境中实现,在一些情况下,所述环境可包括一个或多个用户计算机、计算装置或可用于操作多个应用程序中的任一个的处理装置。用户或客户端装置可包括多个通用个人计算机中的任何一个,如运行标准操作系统的台式计算机或膝上计算机,以及运行移动软件并且能够支持多个网络连接协议和消息传递协议的蜂窝装置、无线装置和手持式装置。这种系统还可包括多个工作站,所述工作站运行各种可商购得的操作系统和用于如开发和数据库管理等目的的其他已知应用程序中的任一个。这些装置还可包括其他电子装置,如虚拟终端、薄型客户端、游戏系统和能够通过网络通信的其他装置。
大多数实施方案利用本领域技术人员可能熟悉的至少一种网络来使用各种各样可商购得的模型和协议中的任一种支持通信,所述模型和协议如传输控制协议/互联网协议(“TCP/IP”)、开放系统互连(“OSI”)、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、公共互联网文件系统(“CIFS”)以及AppleTalk。网络例如可以是例如局域网、广域网、虚拟专用网、互联网、内部网、外联网、公共交换电话网、红外网络、无线网络以及上述网络的任何组合。
在利用网络服务器的实施方案中,网络服务器可以运行各种各样服务器或中间层应用程序中的任一种,包括超文本传输协议(“HTTP”)服务器、FTP服务器、公共网关接口(“CGI”)服务器、数据服务器、Java服务器和业务应用程序服务器。服务器还能够响应来自用户装置的请求而执行程序或脚本,如通过执行可以实施为以任何编程语言(如C、C#或C++)或任何脚本语言(如Perl、Python或TCL)以及其组合写成的一个或多个脚本或程序的一个或多个网络应用程序。服务器还可包括数据库服务器,包括但不限于可商购自 的数据库服务器。
环境可包括如上文所论述的各种各样数据存储区以及其他存储器和存储介质。这些可驻留在各种各样位置,如在一个或多个计算机本地(和/或驻留在一个或多个计算机中)的存储介质上,或远离网络上的计算机中的任何或所有计算机。在实施方案的特定集中,信息可驻留在本领域技术人员熟悉的存储区域网(“SAN”)中。类似地,用于执行属于计算机、服务器或其他网络装置的功能的任何必要的文件可视情况本地或远程存储。在系统包括计算机化装置的情况下,这个这种装置可包括可通过总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。这种系统还可包括一个或多个存储装置,如硬盘驱动器、光存储装置和如随机存取存储器(“RAM”)或只读存储器(“ROM”)的固态存储装置、以及可移动媒体装置、存储卡、闪存卡等。本公开的各个实施方案还可使用定制硬件来实现,所述定制硬件包括但不限于定制密码处理器、智能卡和/或硬件安全模块。
此类装置还可包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外线通信装置等)和工作存储器,如上文所论述。计算机可读存储介质读取器可与计算机可读存储介质连接或被配置来接收计算机可读存储介质,计算机可读存储介质表示远程、本地、固定和/或可移动存储装置以及用于暂时和/或更永久地含有、存储、传输和检索计算机可读信息的存储介质。系统和各种装置通常还将包括位于至少一个工作存储器装置内的多个软件应用程序、模块、服务系统或其他元件,包括操作系统和应用程序,如客户端应用程序或网络浏览器。应当了解,替代实施方案可具有与上述实施方案不同的众多变体。例如,也可使用定制硬件,和/或特定元件可以在硬件、软件(包括可移植软件,如小程序)或两者中实现。此外,可以采用与如网络输入/输出装置的其他计算装置的连接。
用于含有代码或部分代码的存储介质和计算机可读介质可包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,如但不限于以用于存储和/或传输信息(如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术所实现的易失性和非易失性、可移动和不可移动的介质,包括RAM、ROM、电可擦可编程只读存储器(“EEPROM”)、闪存或其他存储器技术、只读光盘驱动器(“CD-ROM”)、数字通用光盘(DVD)或其他光学存储器、磁盒、磁带、磁盘存储装置或其他磁性存储装置,或可用于存储所需信息且可由系统装置访问的任何其他介质。基于本文所提供的公开内容和教义,本技术领域普通技术人员将了解实现各个实施方案的其他方式和/或方法。
因此,应在说明性意义而不是限制性意义上理解本说明书和附图。然而,将显而易见的是:在不脱离如在权利要求书中阐述的本发明的更宽广精神和范围的情况下,可以对其做出各种修改和改变。
其他变体也在本公开的精神内。因此,尽管所公开的技术可容许各种修改和替代构造,但在附图中已示出并且在上文中详细描述所示的其特定实施方案。然而,应当了解,并不旨在将本发明限制于所公开的一种或多种具体形式,相反地,旨在涵盖落在如所附权利要求书限定的本发明的精神和范围内的所有修改、替代构造和等效物。
在描述所公开实施方案的上下文中(尤其是在以下权利要求书的上下文中),术语“一个(a,an)”和“所述”以及类似指称对象的使用应解释为涵盖单数和复数两者,除非在本文另外地指示或明显地与上下文矛盾。术语“包含”、“具有”、“包括”和“含有”应解释为开放式术语(即,意味着“包括但不限于”),除非另外地注解。术语“连接的”应解释为部分地或全部地纳入在以下解释内:附接至或结合在一起,即使存在介入物。除非本文另外指明,否则本文中值范围的列举仅仅意图用作个别地表示属于所述范围的各单独值的速记方法,并且犹如本文个别描述地那样将各单独值并入到本说明书中。可按任何合适的顺序来执行本文所述的所有方法,除非本文另外指明或明显地与上下文矛盾。本文所提供的任何以及所有实例或示例性语言(例如,“如”)的使用仅意图更好地说明本发明的实施方案,并且除非另外要求,否则不会对本发明的范围施加限制。本说明书中的语言不应解释为将任何非要求的要素指示为实践本发明所必需。
本文中描述了本公开的优选实施方案,包括发明人已知用于执行本发明的最佳模式。阅读上述说明后那些优选实施方案的变体对于本领域的普通技术人员可以变得显而易见。发明人希望技术人员视情况采用此类变体,并且发明人意图以不同于如本文所特别描述的方式来实践本发明。因此,只要法律允许,本发明包括此处所附权利要求书中叙述的主题的所有修改和等效物。此外,除非本文另外指示或明显地与上下文矛盾,否则本发明涵盖其所有可能变体中的上述元素的任何组合。
本文所引用的所有参考文献、包括出版物、专利申请和专利据此以引用方式并入,其程度等同于每个参考文献单独地且具体地被表示为以引用方式并入本文并且以其全文在本文得以陈述。

Claims (15)

1.一种用于提供服务的计算机实现的方法,其包括:
响应于将数据对象存储在数据存储系统中的第一请求,该请求在由计算资源服务提供者提供的网络上传送,所述数据存储系统连接至该计算资源服务提供者:
引起所述数据对象被加密;以及
将呈已加密形式的所述数据对象存储在所述数据储存系统中,使得从已加密形式对所述数据对象进行解密所需要的密钥对于所述数据存储系统是不可访问的;
在密码系统处使用所述密钥以向授权实体提供信息,所述信息使得所述授权实体能够访问呈从已加密形式解密的形式的所述数据对象。
2.如权利要求1所述的计算机实现的方法,其中所述数据存储系统不能向未经授权实体提供呈已解密形式的所述数据对象。
3.如权利要求2所述的计算机实现的方法,其还包括:由所述数据储存系统使用所述密钥来对所述数据对象进行加密。
4.如权利要求1-3中任一项所述的计算机实现的方法,其中:
所述方法还包括:接收从第三方到所述数据存储系统的从所述数据存储系统检索所述数据对象的请求;并且
提供所述信息响应于所接收的对所述密码系统的响应而执行。
5.如权利要求1-3中任一项所述的计算机实现的方法,其中:
所述数据存储系统被配置来强制实施第一策略集;
所述密码系统被配置来强制实施不同于所述第一策略集的第二策略集;并且
存储所述数据对象是根据所述第一策略集来执行;并且
提供所述信息是根据所述第二策略集来执行。
6.如权利要求1-3中任一项所述的计算机实现的方法,其中所述第一策略集包括关于所述密钥的一个或多个策略。
7.如权利要求1-3中任一项所述的计算机实现的方法,其还包括:
获取对所述信息的临时访问权;
使用所获取的信息对所述数据对象进行解密;
根据所述已解密数据对象执行一个或多个操作;以及
引起对所述已解密数据对象的访问权丢失。
8.一种系统,其包括:
服务系统,其被配置来:
接收数据对象,所述数据对象在由计算资源服务提供者操作的网络上传送;并且
对所述数据对象进行解密;并且
存储所述已加密数据对象,其方式为使所述服务系统不能对所述已加密数据对象进行解密;以及
密码子系统,其被配置来:
使用所述服务系统不可访问的密钥来对所述已加密数据对象进行解密;并且
应授权实体的请求对所述已加密信息进行解密,所述实体不同于所述服务系统并且被授权做出请求。
9.如权利要求8所述的系统,其中:
所述信息时所述服务系统用来对所述数据对象进行加密的另一个密钥;并且
所述服务系统进一步被配置来:在对所述数据对象进行加密之后的一定时间丢失对所述另一个密钥的访问权。
10.如权利要求8或9所述的系统,其中所述密码子系统被配置来强制实施关于所述密钥的策略,并且对所述已加密信息进行解密依赖于所述授权实体的请求与所述策略一致。
11.如权利要求10所述的系统,其中所述密码子系统进一步被配置来从客户接收所述策略。
12.如权利要求8、9和11中任一项所述的系统,其中所述密码子系统被配置来代表多个第三方实体安全管理包括所述密钥的密钥集。
13.如权利要求12所述的系统,其中:
所述密码子系统包括为所述多个第三方实体的至少一个子集中的每一个存储至少一个密钥的至少一个安全模块。
14.如权利要求8、9、11和13中任一项所述的系统,其中所述数据存储系统进一步被配置来存储所述已加密数据对象与所述已加密信息。
15.如权利要求8、9、11和13中任一项所述的系统,其中所述密码服务系统由计算资源提供者托管并且代表所述计算资源提供者的多个客户维持密钥。
CN201480020500.XA 2013-02-12 2014-02-11 数据安全服务系统 Active CN105122265B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/765,265 US20140229732A1 (en) 2013-02-12 2013-02-12 Data security service
US13/765,265 2013-02-12
PCT/US2014/015697 WO2014126882A1 (en) 2013-02-12 2014-02-11 Data security service

Publications (2)

Publication Number Publication Date
CN105122265A CN105122265A (zh) 2015-12-02
CN105122265B true CN105122265B (zh) 2018-04-10

Family

ID=51298334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480020500.XA Active CN105122265B (zh) 2013-02-12 2014-02-11 数据安全服务系统

Country Status (6)

Country Link
US (1) US20140229732A1 (zh)
EP (1) EP2956888A4 (zh)
JP (1) JP6678457B2 (zh)
CN (1) CN105122265B (zh)
CA (1) CA2899027C (zh)
WO (1) WO2014126882A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9420007B1 (en) 2013-12-04 2016-08-16 Amazon Technologies, Inc. Access control using impersonization
WO2016112338A1 (en) * 2015-01-08 2016-07-14 Intertrust Technologies Corporation Cryptographic systems and methods
US9800556B2 (en) 2015-01-30 2017-10-24 Docusign, Inc. Systems and methods for providing data security services
US9830463B2 (en) * 2016-01-22 2017-11-28 Google Llc Systems and methods for detecting sensitive information leakage while preserving privacy
US10404450B2 (en) * 2016-05-02 2019-09-03 Cisco Technology, Inc. Schematized access control in a content centric network
CN107919958B (zh) * 2016-10-11 2021-07-27 阿里巴巴集团控股有限公司 一种数据加密的处理方法、装置及设备
US20180176192A1 (en) * 2016-12-16 2018-06-21 Amazon Technologies, Inc. Secure data egress for sensitive data across networks
US10887291B2 (en) 2016-12-16 2021-01-05 Amazon Technologies, Inc. Secure data distribution of sensitive data across content delivery networks
CN107025409A (zh) * 2017-06-27 2017-08-08 中经汇通电子商务有限公司 一种数据安全存储平台
CN109426734A (zh) * 2017-08-28 2019-03-05 阿里巴巴集团控股有限公司 一种访问方法、装置、系统及电子设备
US10623183B2 (en) * 2017-11-01 2020-04-14 International Business Machines Corporation Postponing entropy depletion in key management systems with hardware security modules
US11159498B1 (en) 2018-03-21 2021-10-26 Amazon Technologies, Inc. Information security proxy service
US10979403B1 (en) 2018-06-08 2021-04-13 Amazon Technologies, Inc. Cryptographic configuration enforcement
CN113746777B (zh) * 2020-05-27 2023-01-06 华为技术有限公司 安全访问数据的方法及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101281578A (zh) * 2007-04-05 2008-10-08 三星电子株式会社 保护usb大容量存储装置中的数字内容的方法和设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495533A (en) * 1994-04-29 1996-02-27 International Business Machines Corporation Personal key archive
DE10025626A1 (de) * 2000-05-24 2001-11-29 Deutsche Telekom Ag Verschlüsseln von abzuspeichernden Daten in einem IV-System
US6986040B1 (en) * 2000-11-03 2006-01-10 Citrix Systems, Inc. System and method of exploiting the security of a secure communication channel to secure a non-secure communication channel
JP4291970B2 (ja) * 2001-12-20 2009-07-08 富士通株式会社 暗号処理装置
US7877607B2 (en) * 2002-08-30 2011-01-25 Hewlett-Packard Development Company, L.P. Tamper-evident data management
US8312064B1 (en) * 2005-05-11 2012-11-13 Symantec Corporation Method and apparatus for securing documents using a position dependent file system
US7639819B2 (en) * 2005-06-16 2009-12-29 Oracle International Corporation Method and apparatus for using an external security device to secure data in a database
US8111828B2 (en) * 2007-07-31 2012-02-07 Hewlett-Packard Development Company, L.P. Management of cryptographic keys for securing stored data
US8140847B1 (en) * 2007-09-18 2012-03-20 Jianqing Wu Digital safe
JP4896054B2 (ja) * 2008-03-06 2012-03-14 イートライアル株式会社 個人情報管理装置,個人情報管理プログラムおよび個人情報管理システム
US20100266132A1 (en) * 2009-04-15 2010-10-21 Microsoft Corporation Service-based key escrow and security for device data
JP2011019129A (ja) * 2009-07-09 2011-01-27 Nec Corp データ管理システム及びデータ管理方法
US8478858B2 (en) * 2011-02-01 2013-07-02 Limelight Networks, Inc. Policy management for content storage in content delivery networks
US8891772B2 (en) * 2011-06-17 2014-11-18 Microsoft Corporation Cloud key escrow system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101281578A (zh) * 2007-04-05 2008-10-08 三星电子株式会社 保护usb大容量存储装置中的数字内容的方法和设备

Also Published As

Publication number Publication date
JP2016508699A (ja) 2016-03-22
US20140229732A1 (en) 2014-08-14
CA2899027C (en) 2020-11-03
EP2956888A4 (en) 2016-10-12
WO2014126882A1 (en) 2014-08-21
EP2956888A1 (en) 2015-12-23
CA2899027A1 (en) 2014-08-21
JP6678457B2 (ja) 2020-04-08
CN105122265A (zh) 2015-12-02

Similar Documents

Publication Publication Date Title
CN105122265B (zh) 数据安全服务系统
US11470054B2 (en) Key rotation techniques
CN105027130B (zh) 延迟数据访问
JP6941146B2 (ja) データセキュリティサービス
CN105103488B (zh) 借助相关联的数据的策略施行
CN105378649B (zh) 多权限数据安全和访问
JP2018067941A (ja) フェデレーテッドキー管理
US9300639B1 (en) Device coordination
JP2004509398A (ja) ネットワークにわたって配布されるオブジェクトの保護のために監査証跡を確立するためのシステム
JP2004509399A (ja) ネットワークにわたって配布されるオブジェクトを保護するためのシステム
JP2011227673A (ja) ファイル管理システム、ストレージサーバ、クライアント、ファイル管理方法およびプログラム
CN116506180A (zh) 基于加密授权的招聘软件隐私保护方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant