CN113381857A - 密钥导出方法和系统以及非暂时性计算机可读存储介质 - Google Patents

密钥导出方法和系统以及非暂时性计算机可读存储介质 Download PDF

Info

Publication number
CN113381857A
CN113381857A CN202110787083.3A CN202110787083A CN113381857A CN 113381857 A CN113381857 A CN 113381857A CN 202110787083 A CN202110787083 A CN 202110787083A CN 113381857 A CN113381857 A CN 113381857A
Authority
CN
China
Prior art keywords
key
cryptographic
request
cryptographic key
token
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.)
Pending
Application number
CN202110787083.3A
Other languages
English (en)
Inventor
马太·约翰·坎帕尼亚
格雷戈里·布兰切克·罗思
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 CN113381857A publication Critical patent/CN113381857A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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/2107File encryption

Abstract

一种计算机系统执行密码操作作为服务。所述计算机系统被配置来允许所述服务的用户维持对其相应密码材料的控制。所述计算机系统使用不可访问的密码材料来加密随后提供给所述用户的令牌中的用户的密码材料。所述用户不能够访问所述令牌中的所述密码材料的明文副本,但是可以将所述令牌提供回给所述服务,以致使所述服务解密并使用所述密码材料。

Description

密钥导出方法和系统以及非暂时性计算机可读存储介质
分案说明
本申请是申请日为2016年3月25日、申请号为201680023756.5、发明名称为“密钥导出方法和系统以及非暂时性计算机可读存储介质”的发明专利申请的分案申请。
相关申请的交叉参考
本申请出于所有目的以引用的方式并入有2015年3月31日提交的标题为“密钥导出技术”的美国专利申请号14/675,614的全部公开内容。
背景技术
对于许多数据用户而言,数据的安全性在许多情况下是非常重要的。诸如加密的许多技术已很好地发展以诸如通过防止未经授权的实体获得明文形式的数据来确保数据的安全性。同时,随着组织发展的需要,计算机系统也变得越来越复杂。例如,组织经常利用计算装置的网络为其用户提供一组强大的服务。网络经常跨越多个地理边界,并且经常与其他网络连接。例如,组织可以使用计算资源的内部网络和由他人管理的计算资源来支持其操作。例如,组织的计算机可以与其他组织的计算机进行通信,以便在使用另一个组织的服务时访问和/或提供数据。在许多情况下,组织使用由其他组织管理的硬件来配置和操作远程网络,从而降低基础设施成本并实现其他优势。利用计算资源的这种配置来确保对资源和其所持有的数据的访问是安全的可能是具有挑战性的,特别是随着这种配置的规模和复杂性的增长。
为了协助组织开发复杂的计算机系统以支持其操作,许多组织已开始托管计算资源作为服务。例如,计算资源服务可以被托管来代表客户执行各种操作,诸如计算、数据存储、高级数据存储(例如使用数据库)、网络服务(例如,托管计算机网络)等。虽然这类服务为服务提供商的客户提供了许多优势(例如,在没有大量资本投资的情况下建立计算资源的能力),但是无论服务提供商对保护其客户的数据采取怎样的实质性努力,客户都经常担心数据会被其他实体访问。
附图说明
将参考附图描述根据本公开的各种实施方案,在附图中:
图1示出说明本公开的各个方面的图;
图2示出可以实践各种实施方案的环境的说明性示例;
图3示出根据实施方案的数据结构的说明性示例;
图4示出根据实施方案的导出密钥令牌的说明性示例;
图5示出根据实施方案的用于履行对导出密钥令牌的请求的过程的说明性示例;
图6示出根据实施方案的用于履行对使用导出密钥令牌来执行一个或多个密码操作的请求的过程的说明性示例;
图7示出根据实施方案的用于轮换导出域密钥的过程的说明性示例;
图8示出根据实施方案的用于履行对执行一个或多个密码操作的请求的过程的说明性示例;
图9示出根据实施方案的用于履行对延长导出客户密钥的使用期的请求的过程的说明性示例;
图10示出根据实施方案的用于履行对将导出客户密钥转换成托管客户密钥的请求的过程的说明性示例;
图11示出根据实施方案的用于履行对将托管客户密钥转换成导出客户密钥的请求的过程的说明性示例;并且
图12示出可以实施各种实施方案的环境。
具体实施方式
在以下描述中,将描述各种实施方案。出于解释的目的,将阐述具体的配置和细节,以便提供各实施方案的透彻理解。然而,对于本领域技术人员还将明显的是,在没有具体细节的情况下也可以实行各实施方案。此外,为了不使所描述的实施方案晦涩,可能会省略或简化众所周知的特征。
本文描述和建议的技术包括利用应用程序设计接口(API)来操作分布式计算机系统,所述应用程序设计接口(API)允许服务提供商的客户利用密码服务,同时限制服务提供商访问为客户提供的密码密钥。在实施方案中,服务提供商代表客户操作执行密码操作(例如,加密、解密和数字签名生成和验证)的密码服务。密码服务可以利用诸如硬件安全模块的专用硬件来确保对执行密码操作的数据和用于执行密码操作的密码密钥的安全性。在一些示例中,服务提供商的密码服务的API被配置成使得能够提交涉及服务提供商对其具有有限访问的密码密钥的请求。
例如,在实施方案中,API被配置成使得请求(例如,web服务请求)可以指定密码密钥以便在执行密码操作中以多种方式来利用。在一个示例中,执行密码操作的请求包括由密码服务管理的密码密钥的识别符(托管客户密钥也称为管理客户密钥)。在另一示例中,执行密码操作的请求包括令牌(称为导出密钥令牌),其包括用于执行密码操作的密码密钥的加密副本,其中密码密钥的副本可使用另一密码密钥(称为包裹密钥或导出域密钥)来解密,所述另一密码密钥在服务提供商处被维持为一个或多个装置(例如,硬件安全模块或提供基于硬件的密码材料的保护的其他装置)内的机密。
为了处理执行一个或多个密码操作的请求,服务提供商可以获得请求中指定的密码密钥。在指定托管客户密钥的请求的示例中,服务提供商可以从数据存储装置获得指定的托管客户密钥的加密副本,并将指定的托管客户密钥的加密副本提供给硬件安全模块以便解密和执行所请求的密码操作。在包括或以其他方式指定导出密钥令牌的请求的示例中,可以将导出密钥令牌提供给硬件安全模块,以用于解密导出密钥令牌来获得客户密钥并执行所请求的密码操作。至少在请求指定导出密钥令牌的示例中,一旦客户密钥的使用已经完成(例如,作为提供对请求的响应的结果),服务提供商就可能会无法访问从导出密钥令牌获得的客户密钥,从而防止服务提供商访问客户密钥,除非在包括导出密钥令牌或者包含客户密钥的另一导出密钥令牌的另一通信(例如,请求)中来提供。需注意,无法访问客户密钥可以包括无法访问可以从其确定客户密钥的任何信息,诸如导出密钥令牌。
在各种实施方案中,密码服务使用至少两类域密钥,一类用于托管客户密钥,并且另一类用于导出客户密钥。以这种方式,可以根据不同的轮换安排来轮换不同类的域密钥(例如,替换以避免密码密钥耗尽)。例如,由于服务提供商具有对托管客户密钥的访问权限(每个密钥可以在当前域密钥下存储加密),服务提供商可以比导出域密钥更频繁地轮换域密钥,而不会导致客户数据的丢失。具体地,服务提供商可以访问加密的客户密钥,使用期满的域密钥来解密客户密钥,使用新的域密钥来加密客户密钥,并且存储加密的客户密钥。然而,对于导出客户密钥,如果客户没有提供用于对新的导出域密钥重新加密的导出密钥令牌,那么导出域密钥的轮换可能导致客户数据的丢失。
在各种实施方案中,针对不同类的域密钥的不同轮换安排使得能够灵活操作密码密钥使用期。在一些实现方式中,密码服务的API允许客户为导出客户密钥指定使用期。此外,服务提供商可以维护一组导出域密钥,每个导出域密钥具有不同的期满。服务提供商可以使用来自与客户指定的使用期匹配的所维护的一组导出域密钥的导出域密钥来对将在导出密钥令牌中提供给客户的客户密钥进行加密。一旦导出域密钥期满并且不再对服务提供商可访问,导出密钥令牌就不再是服务提供商可用来解密导出密钥令牌,并且因此导出密钥令牌不再可用于获得客户密钥。以这种方式,客户可以确保数据仅在有限时间内可访问。其他变化也被认为在本公开的范围内。
图1示出可以实践各种实施方案的环境100的说明性示例。在图1的图示中,呈现环境100以示出服务提供商104的客户102之间的交互。服务提供商可以是操作计算机系统并且被配置来提供诸如以下更详细描述的密码服务的一种或多种服务的实体,所述计算机系统可以是分布式计算机系统。在一些示例中,服务提供商104除了密码服务之外还提供其他服务,诸如被分类为基础设施即服务的服务,其中服务提供商托管硬件,服务提供商的客户可以远程地并且以编程方式管理所述硬件。需注意,虽然出于说明的目的而使用服务提供商和服务提供商的客户,但是本文描述的技术可适用于没有客户/服务提供商关系的其他情况。
在图1的示例中,在实施方案中,客户102从服务提供商104接收密钥令牌106。密钥令牌106可以是包括由客户102不可解密的密码密钥的信息的结构化集合(即,在缺少特殊的计算工作量的情况下不可解密)。诸如一个或多个识别符的其他信息可以包括在密钥令牌106中。以下结合图4更详细地讨论密钥令牌。在图1所示的示例中,密钥令牌至少部分地在服务提供商104的硬件安全模块108队中的硬件安全模块或者提供基于硬件的密码材料保护的另一装置内生成,诸如以下更详细描述的。需注意,虽然硬件安全模块(HSM)完全用于说明目的,但是也可以使用提供基于硬件的密码材料保护的其他装置。这类装置的示例包括可信平台模块(TPM)和处理器,其包括诸如利用英特尔安全卫士扩展(SGX)技术的处理器的指定位址空间的环境中的安全执行。
参与生成密钥令牌106的硬件安全模块可以为客户102生成密码密钥,并且使用安全地维护在硬件安全模块队108内的另一密码密钥(称为域密钥)来加密所述密码密钥。例如,一组安全模块中的每个安全模块可以将域密钥维护为以编程方式不可导出的信息。如果没有合法的方式来以编程方式(例如,通过装置的接口)使装置提供信息,那么信息可以据称是以编程方式不可导出的。例如,可以维护信息,使得没有请求机制(例如,应用程序设计接口(API)调用)用于致使硬件访问明文形式的信息以便揭露明文形式的信息。作为示例,安全模块可以被配置成缺乏提供其一些或全部存储器的副本的能力,使得此副本包括明文形式的信息。然而,应当注意的是,尽管为了说明的目的,在整个公开内容中使用没有合法方式获得明文形式的信息的信息,但是可以维护一些信息,使得可通过有限数量的授权用途获得信息,这可能需要使用各种安全协议,并且能够防止对明文形式的信息的未经授权的访问。通常,以编程方式不可导出的信息是如果完全可能获得明文形式的信息,那么必须采取特殊措施以获得明文形式的信息的信息(例如,一个或多个密码密钥)。因此,在缺少特殊的计算工作量的情况下,缺少对域密钥的访问的装置不能够获得明文形式的密钥令牌106内的密码密钥,所述域密钥用于为客户102加密密钥令牌106内的所述密码密钥。
已从服务提供商104接收到密钥令牌106后,客户可以将密钥令牌106的副本维护在由客户管理的存储装置110中。存储装置110可以是例如由客户102管理的专用网络中的存储装置,或者通常是客户对其具有控制的任何存储装置,或者除客户以外的实体为了客户102的利益而对其具有控制的任何存储装置。
客户102可以与服务提供商104交互以利用其已存储的密钥令牌106。为此,在如图1所示的实施方案中,客户102通过计算机装置在请求112中提供密钥令牌106的副本,以对数据114执行一个或多个密码操作。请求112可以是例如被配置来使服务提供商104执行履行请求112所需的一个或多个密码操作的web服务请求。数据114可以是客户102希望已由服务提供商104通过执行一个或多个密码操作来操作的任何数据。在一个示例中,数据114是由客户102用于加密其他数据的密码密钥。然而,本公开的范围不限于作为密码密钥的数据114。
为了处理请求112,服务提供商104可以将包括客户102的加密的密码密钥的密钥令牌106或其一部分提供给可以访问可用于解密加密的密码密钥的域密钥的副本的硬件安全模块108队中的硬件安全模块。硬件安全模块可以对密码密钥进行解密以获得明文形式的密码密钥的副本,并且可以使用明文形式的密码密钥的该副本来对数据114执行所请求的一个或多个密码操作。在图1的此特定示例中,数据114被以明文形式提供给服务提供商104,并且服务提供商,尤其是服务提供商的硬件安全模块,对数据114执行加密操作以获得加密数据116,服务提供商104将所述加密数据116提供回给客户102。然而,需注意,尽管在图1和本文的其他地方使用了加密,但可以请求并随后执行其他密码操作。这类操作包括例如数字签名的加密数据生成的解密和数字签名的验证以及相关操作,诸如数字证书真实性的验证。
图2是可以实践本公开的各种实施方案的环境200的说明性示例。在实施方案中,委托人202可以使用计算装置来通过网络204与计算资源服务提供商206通信。例如,计算资源服务提供商206与委托人202之间的通信可以用于访问由服务提供商208操作的服务208的目的,所述服务可以是由服务提供商206操作的多种服务之一。所述服务可以是密码服务,诸如在2013年2月12日提交的标题为“数据安全服务”的美国专利申请号13/764,963和/或2014年9月15日提交的标题为“信任供应的分布式系统网络”的美国专利申请14/486,741中更详细地描述的,所述申请以引用的方式并入本文。
服务208可以包括服务前端210和服务后端214,其可以是被配置来从服务前端210接收授权请求并且被配置来执行履行这种请求的操作的服务的部件。委托人202可以发送对访问由计算资源服务提供商206提供的服务208的请求(和/或对访问与服务208相关联的资源的请求)。所述请求可以是例如web服务应用程序设计接口请求。委托人可以是用户或一组用户或者与一组用户相关联的角色,或者表示可以在一个或多个远程(相对于计算资源服务提供商206)计算机系统上运行的这些实体中的一个或多个的进程,或者可以是某一其他这种计算机系统实体、用户或进程。通常,委托人是对应于由计算资源服务提供商管理的身份的实体,其中计算资源服务提供商管理对所述身份的许可。
委托人202可以对应于由计算资源服务提供商206(诸如由策略管理服务或另一服务)管理的身份。所述身份可以是针对计算资源服务提供商的客户的账户来管理的多个身份之一,并且计算资源服务提供商可以管理多名客户的账户。需注意,虽然委托人202可以对应于人,但是这样的人可以通过适当配置的计算装置与计算资源服务提供商206通信,所述计算装置可以代表委托人202执行操作(例如,生成和传送请求)。委托人202可以通过一个或多个连接(例如,传输控制协议(TCP)连接)与计算资源服务提供商206通信。委托人202可以使用计算机系统客户端装置来连接到计算资源服务提供商206。客户端装置可以包括能够通过网络与计算机系统连接的任何装置,诸如以下讨论的示例性装置。网络204可以包括例如以下讨论的互联网或另一网络或者网络的组合。
计算资源服务提供商206通过服务208可以提供对一个或多个计算资源的访问,诸如虚拟机(VM)实例、自动缩放组、基于文件的数据库存储系统、块存储服务、冗余数据存储服务、数据存档服务、数据仓储服务、用户访问管理服务、身份管理服务、内容管理服务和/或其他此类计算机系统服务。其他示例性资源包括但不限于用户资源、策略资源、网络资源和/或存储资源。在一些示例中,与计算机服务相关联的资源可以是物理装置、虚拟装置、物理和/或虚拟装置的组合或者其他这类装置实施方案。需注意,为了说明的目的而提供这类服务和资源,并且本公开的实施方案可以利用其他服务和/或资源。
在一些示例中是web服务应用程序设计接口请求(也简称为web服务请求)的对于访问服务208的请求可以由服务前端210接收,所述服务前端210在一些示例中包括web服务器,所述web服务器被配置来接收这类请求并根据与服务208相关联的一个或多个策略来处理所述请求。对于访问服务208的请求可以是数字签名的请求,并且因此可以提供有数字签名。服务前端210可以随后将请求和用于验证的数字签名发送到认证服务216。认证服务216可以是独立服务,或者可以是服务提供商或其他实体的一部分。在实施方案中,认证服务216是被配置来执行涉及对委托人进行认证的操作的计算机系统。在一些示例中,提交给服务前端210的请求由委托人(即,由委托人使用或代表委托人操作的计算装置)使用委托人202与认证服务216之间共享的对称密码密钥来进行数字签名。因此,认证服务可以使用对称密码密钥的副本来验证声称已由委托人202生成的请求的数字签名。然而,在其他实施方案中,认证服务216可以被配置来利用用于数字签名验证的非对称密码学,例如像当委托人使用专用密码密钥对请求进行数字签名时。在这类实施方案中,认证服务可以被配置来信任对与专用密码密钥相对应的委托人202的证书进行数字签名的证书机构。因此,在一些实施方案中,认证服务可以使用由证书所指定的公共密码密钥。通常,认证服务可以利用密码密钥,所述密码密钥向与委托人202相关联的认证服务216注册。
在成功认证请求之后,认证服务216可以随后获得适用于所述请求的策略。策略(也称为访问控制策略)是与用户、组、角色、组织、公司或某一其他此类实体相关联的许可的集合。每个许可可以与计算资源相关联,并且可以指定实体(在本文中也称为“委托人”)是否可以访问所述资源、在什么条件下可以允许或拒绝访问和/或可以允许或拒绝什么类型的访问。例如,许可可以指定名为“用户1”的用户可以访问由识别符“12345”表示的某一数据存储装置。更详细的许可可以指定用户1仅可以从资源12345读取,但可以不写入资源12345。还有更详细的许可可以指定用户1可以在任何时候从资源12345读取,但是仅可以在9:00与9:30AM之间的小时之间写入资源12345。许可也可以与资源的类或集合相关联,使得例如用户1可以访问数据存储装置的集合,其中之一可以是资源12345。访问控制策略可以由策略管理服务维护为策略文档、数据库中的记录、访问控制列表(ACL)等。服务(例如,服务208)除了或代替策略管理服务还可以维护其自己的策略。
策略可以通过与委托人202、作为履行请求的一部分而访问的资源、其中委托人202是成员的群、委托人202所承担的角色和/或其他相关联而适用于所述请求。为了获得适用于所述请求的策略,认证服务216可以向由策略管理服务220管理的策略存储库218发送查询,所述策略管理服务220可以是以上结合图1讨论的策略管理服务。所述查询可以是包括足以确定适用于所述请求的一组策略的信息的请求。例如,所述查询可以包含所述请求的副本和/或至少部分地基于所述请求中的信息而包含参数,诸如识别委托人、资源和/或动作(作为履行请求的一部分而将要执行的操作)的信息。可以是可操作来处理查询的数据库或其他系统的策略存储库可以通过提供适用于所述请求的任何策略来处理查询。需注意,如果请求的认证不成功(例如,因为数字签名不能被验证),那么不可获得适用于所述请求的策略。
在已获得适用于所述请求的任何策略的情况下,认证服务216可以提供认证响应,并且如果适用(例如,当存在肯定的认证响应时),所获得的策略返回到服务前端210。认证响应可以指示所述响应是否被成功认证。服务前端210可以随后使用授权模块212检查履行对访问服务208的请求是否符合所获得的策略。
授权模块212可以是在服务前端上执行的进程,其可操作来将所述请求与所述策略中的一个或多个许可进行比较,以确定服务是否被授权来实现所述请求(即,是否授权履行所述请求)。例如,授权模块可以将与所述请求相关联的API调用与由策略指定的许可的API调用进行比较,以确定所述请求是否被允许。如果授权模块212不能够将所述请求与由策略指定的许可匹配,那么授权模块212可以执行一个或多个默认动作,例如像向服务前端提供致使服务前端拒绝所述请求的消息,并且致使将所拒绝的请求记录在策略管理服务220中。如果授权将所述请求与由所述策略指定的一个或多个许可匹配,那么授权模块212可以通过选择最小限制性响应(如由策略定义)并且通过基于所述选择的响应来通知服务前端是否授权履行所述请求(即符合可适用的策略)来解决此问题。授权模块212还可以选择最大限制性的响应,或者可以选择某一其他这种响应,并且基于所述选择的响应来通知服务前端是否授权履行所述请求。需注意,虽然图2示出作为服务前端210的部件的授权模块212,但是在一些实施方案中,授权模块212是由计算资源服务提供商206提供的单独服务,并且前端服务可以与授权模块212通过网络来通信。
在实施方案中,如上所述,服务后端214包括硬件安全模块222队或其他安全模块队。为了处理由服务前端210所接收到的需要由硬件安全模块执行密码操作的请求,服务前端210可以向硬件安全模块发送请求,所述请求指定将要执行的操作、将要用于执行密码操作的密码密钥、以及(如果适用)应对其执行密码操作的数据(例如,明文或密文)。前端210可以选择硬件安全模块来执行操作,或者另一部件(例如,负载平衡器)可以进行选择。可以从执行操作的硬件安全模块向服务前端210提供密码操作的执行结果,以便可响应于相应的请求而提供结果。
在实施方案中,计算资源服务提供商206包括数据存储服务206,所述数据存储服务206可以是提供API以使数据存储服务执行数据存储操作(例如,存储和检索数据对象)的计算机系统。服务前端210可以与数据存储服务通信,以存储由硬件安全模块222内维护的域密钥加密的密码密钥(例如,托管客户密钥)。例如,当由前端210接收到的请求需要使用客户密钥时,前端210可以向数据存储服务224提交请求以检索客户密钥(在域密钥下加密)。前端210可以接收加密的客户密钥,并将加密的客户密钥提供给硬件安全模块,以用于解密和执行密码操作。类似地,当硬件安全模块生成新的客户密钥(或者轮换在其下加密客户密钥的域密钥)时,所述硬件安全模块可以使用域密钥来加密客户密钥,并将加密的客户密钥提供给前端210,这进而可以将具有加密的客户密钥的请求发送到数据存储服务224,以用于通过其进行永久性存储。
需注意,虽然图2示出计算资源服务提供商的分布式系统的特定配置,但是其他配置也被认为在本公开的范围内。例如,可以由分布式系统(例如,服务前端210)的不同部件进行认证和授权确定。作为另一示例,一个或多个硬件安全模块或提供密码材料的硬件保护的其他装置可以由不同于计算资源服务提供商206的实体来托管,诸如由另一服务提供商或客户本身来托管。为了使这种硬件安全模块执行密码操作,服务后端214中的服务器可以通过网络(例如,互联网或者当硬件安全模块被托管在与服务后端214相同的数据中心中时通过内部网络)来发送消息。可以对这类消息进行认证,以使托管硬件安全模块的实体能够在授权请求与未经授权的请求之间进行区分,以执行密码操作。在另一示例中,硬件安全模块222由相同的计算资源服务提供商206的单独的服务来托管。例如,服务208可以提供利用密码操作的结果的服务(例如,虚拟数据存储装置或其他服务)。在这种示例中,服务间API调用可以从一个服务发送到另一个服务,以使其他服务使用硬件安全模块来执行密码操作。例如,这类调用可以根据为履行客户请求而执行的供应或其他工作流由一个服务来进行。
图3示出根据实施方案的可以用于维护一组导出域密钥的数据结构300的说明性示例。在图3的示例中,数据结构300是表,尽管其他数据结构被认为在本公开的范围内。如图3所示,数据结构300包括三列,每列对应于关于相应的导出域密钥的不同信息。第一列302用于记录导出域密钥的识别符。识别符用作对导出域密钥的引用,使得可以跟踪用于加密密码密钥的导出域密钥。例如,导出密钥令牌可以包括用于加密导出密钥令牌内的密码密钥的导出域密钥的识别符。以这种方式,当在另一时间提供导出密钥令牌时,适当的导出域密钥可以被识别(例如,从多个导出域密钥中选择)并且被访问以解密导出密钥令牌中的加密的密码密钥。在此特定示例中,导出域密钥的识别符是序列号。然而,应当注意,可以使用其他类型的识别符。
数据结构300的第二列304对应于相应的导出域密钥的期满。如上所述,密码服务在任何给定的时间可以访问多个导出域密钥,每个导出域密钥具有不同的期满,使得导出密钥令牌可以在导出域密钥被销毁之前的规定量的时间内使用,并且导出密钥令牌因此变得不可用作用于访问在导出密钥令牌中加密的客户密钥的机制。在图3的说明性示例中,数据结构300的第二列304中的每个条目具有24小时不同的期满。以这种方式,数据结构300记录导出域密钥的24小时不同的期满。然而需注意,24小时不同的期满是说明性的,并且可以使用其他期满。例如,连续期满可以通过少于24小时或超过24小时而不同,并且连续期满之间的差异不一定是均匀的。
需注意,相应的导出域密钥的每个期满可以由自动化过程的至少一个实例来强制执行,所述自动化过程导致导出域密钥对于曾经在根据期满所确定的时间处访问域密钥的所有安全模块变得不可访问(例如,永久地如此)。例如,安全模块队中的每个安全模块可以执行自动化过程的实例,所述自动化过程在出现其期满时不可避免地删除域密钥。安全模块可以被配置成使得在提供对域密钥的访问之前必须(例如由另一个安全模块或其他计算装置)独立地验证所述自动化过程的代码的完整性的远程证明或其他密码证明。安全模块还可以配置有防篡改机构,其导致安全模块由于篡改而无法访问域密钥,并且还被配置成使得去除对所述模块的供电导致所述安全模块无法访问域密钥(例如,由于域密钥的存储限于易失性存储器)。需注意,执行期满可以通过由另一装置执行的自动化过程来执行。在这类示例中,执行自动化过程的装置可以根据域密钥的期满来向安全模块发送命令以销毁域密钥(例如,其中识别指定域密钥来销毁的命令)。如果安全模块不履行销毁域密钥的命令,那么这种自动化过程可以包括传送通知或其他操作。
数据结构300中的第三列306用于对应于其相应的导出域密钥识别符和同一行中的期满的导出域密钥。作为说明性示例,在数据结构300的包含数据的第一行中,存储在第三列306中的条目中的导出域密钥具有31415926的导出域密钥识别符,并且具有在2015年3月24日的12:00a.m的期满。
通过使用诸如数据结构300的数据结构,可以选择导出域密钥以允许由客户或其他方式指定的导出密钥令牌的使用期。例如,客户可以请求具有30天的使用期的密码密钥。数据结构300可以用于定位导出域密钥,其具有将允许30天的使用期的期满。可以选择导出域密钥作为具有小于或等于所请求使用期的最高使用期的导出域密钥,或者在替代实施方案中,具有大于或等于所请求使用期的最短使用期的导出域密钥。在一些示例中,导出域密钥是被选择为具有小于或等于所请求使用期的最高使用期的导出域密钥还是被选择为具有大于或等于所请求使用期的最短使用期的导出域密钥是可配置的设置,其可以在对导出密钥令牌的请求的参数中进行选择。
应当注意,图3所示的数据结构300是为了说明的目的而提供的,并且许多被认为在本公开的范围内。例如,图3示出以特定顺序存储的特定类型的信息。不同类型的信息和不同的顺序被认为在本公开的范围内。作为另一示例,图3示出为每个导出域密钥存储期满值和导出域密钥识别符。在替代实施方案中,导出域密钥的期满可以用作导出域密钥识别符,并且因此可以省略用于导出域密钥识别符的列。其他变化也被认为在本公开的范围内。
图4示出图400,示出根据各种实施方案的示例性导出密钥令牌402。如图4所示,导出密钥令牌402包括各种部件。例如,在实施方案中,导出密钥令牌402对应于客户密钥,并且为了识别客户密钥,参见导出密钥令牌402可以包括用于客户密钥的一组识别符。在此示例中,导出密钥令牌402包括内部客户密钥识别符404和外部密钥识别符406。内部客户密钥识别符404可以是由客户用于客户密钥的识别符。类似地,外部客户密钥识别符406可以用作用于由生成导出密钥令牌402的服务提供商使用的客户密钥的识别符。在示例性实施方案中,从客户到服务提供商的对于客户密钥的请求可以包括内部客户密钥识别符404作为参数,客户将使用所述内部客户密钥识别符404来用于其自己的计算机系统内部中的客户密钥。外部客户密钥识别符406可以由服务提供商生成以供服务提供商使用,诸如使得策略和其他访问控制机制能够与客户密钥相关联。然而,应当注意,导出密钥令牌402可能缺少内部客户密钥识别符404,诸如当客户没有指定内部客户密钥识别符或者当未提供对这类识别符的支持时。在一些示例中,外部客户密钥识别符406可以用作内部客户密钥识别符,并且在这类示例中,可以重复外部客户密钥识别符406,或者导出密钥令牌402的单个部件可以是外部客户密钥识别符406。
此外,如图4所示,在实施方案中,导出密钥令牌402包括在导出域密钥下加密的客户密钥的加密副本408。因此,为了能够识别用于加密导出密钥令牌402的客户密钥的特定导出域密钥,导出密钥令牌402可以包括导出域密钥识别符410。以这种方式,当服务提供商接收到导出密钥令牌402时,服务提供商可以使用导出域密钥识别符410来获得适当的导出域密钥,以便解密导出密钥令牌402中的客户密钥的加密副本408。
其他信息也可以包括在导出密钥令牌402中。例如,尽管在图中未示出这种信息,但是用于加密客户密钥的非初始化矢量或其他信息可以包括在导出密钥令牌402中。作为另一示例,导出密钥令牌402可以包括包含在导出密钥令牌402中的信息的数字签名。数字签名可以使得能够验证导出密钥令牌402的完整性。例如,可以使用数字签名来验证外部客户密钥识别符406和导出域密钥识别符410和或包括客户密钥的加密副本408的其他信息没有被无意或恶意地修改。数字签名可以使用服务提供商可访问的密码密钥来生成,诸如由服务提供商维护为机密的专用密码密钥或者由服务提供商维护为机密的对称密码密钥。通常,可以使用可由服务提供商用来验证一些或所有导出密钥令牌402的完整性的任何认证信息。
如上所述,密码服务可以允许客户请求导出密钥令牌。因此,图5示出根据实施方案的用于处理对导出密钥令牌的请求的过程500的说明性示例。过程500可以由任何合适的系统执行,诸如通过上文讨论的密码服务来执行。参与过程500的执行的各种操作的执行可以通过密码服务的不同部件而发生,诸如以下更详细地描述的。在实施方案中,过程500包括接收502对导出密钥令牌的请求。请求502可以是例如从其系统执行过程500的服务提供商的客户的计算装置接收的web服务请求。可以由诸如web服务器的密码服务的适当部件来接收502所述请求。
为了处理接收502到的请求,web服务器或密码服务的另一部件可以确定504所述请求是否真实。可以根据各种实施方案以各种方式执行所述请求是否真实的确定504。在一些示例中,对请求进行数字签名,以便可密码地验证。因此,确定504请求是否真实可以包括验证被接收502的请求的数字签名。例如,使用在客户与服务提供商之间作为机密共享的对称密码密钥来生成的对称数字签名可以是对应于用所述请求提供或以其他方式指定的公共密码密钥的专用密码密钥,诸如在对应于专用密码密钥的数字证书中。认证服务可以用来验证数字签名,诸如以上结合图2所述。在其他示例中,通过密码保护的通信会话(诸如传输层安全性(TLS)会话)接收502所述请求。会话的建立可能需要某种类型的认证,并且因此通过密码保护的通信会话来接收502请求的事实指示所述请求的真实性。通常,可以通过使用认证信息来执行所述请求的真实性的验证,以验证所述请求是由与所述请求相关联的实体提交的。
如果确定504请求不真实(即,如果不能验证所述请求的真实性),那么过程500可以包括拒绝506所述请求。可以通过各种实施方案以各种方式拒绝所述请求。在一些示例中,例如提供了指示拒绝的对所述请求的响应。作为另一示例,可以不采取任何行动,并且所述请求可以被允许超时。还可以结合所述请求的拒绝506来执行其他操作,并且这类操作可以取决于执行过程500的系统的具体实现方式。
如果确定504请求是真实的,那么过程500可以包括密码服务的web服务器或者其他部件确定508是否授权履行所述请求。可以根据各种实施方案以各种方式执行确定是否授权履行所述请求。参考以上讨论的图2,确定508是否授权履行所述请求可以包括验证适用于所述请求的任何策略是否允许履行所述请求。通常,服务提供商可以维持控制所述请求的履行的条件,并且对是否授权履行所述请求的验证508可以包括验证这类条件是否允许履行所述请求。
如果确定508未授权履行所述请求,那么过程500可以包括拒绝506请求,如上所述。例如,接收502到所述请求的web服务器可以发送寻址到所述请求指定为所源于的地址的消息。如果确定508授权履行所述请求,那么执行过程500的系统可以执行一组操作来履行所述请求。在此示例中,过程500包括选择510具有与接收502到的请求中所指定的使用期匹配的期满的导出域密钥。web服务器或安全模块可以选择导出域密钥。使用期可以例如被指定为所述请求的参数,或者可以以其他方式来指定,例如在默认情况下指定。过程500还可以包括生成512客户密钥。执行过程500的web服务器或系统的其他部件可以例如将指令发送到安全模块,从而致使所述安全模块生成512客户密钥。安全模块可以利用例如伪随机数发生器或其他机构(例如,应用于其中至少一些被保持为机密的信息的密钥推导功能)来生成512客户密钥。需注意,虽然图5示出作为过程500的一部分的生成512客户密钥,但是客户密钥生成可以与过程500异步地执行。例如,可以预先生成客户密钥,并且可以获得预先生成的客户密钥。在其他示例中,对导出密钥令牌的请求包括将要在导出密钥令牌中加密的客户密钥的副本。
一旦已生成512客户密钥,生成512客户密钥的安全模块就可以使用选定的导出域密钥来加密514所生成的客户密钥。例如,安全模块可以从存储器访问选定的导出域密钥,并将生成的客户密钥和选定的导出域密钥输入到产生所生成的客户密钥的加密副本的密码算法中。一旦已获得所生成的客户密钥的加密副本,执行过程500的系统就可以使用加密的客户密钥来生成516导出密钥令牌。
生成516导出密钥令牌的方式可以根据各种实施方案而变化。在一些示例中,生成并加密客户密钥的安全模块可以另外生成516导出密钥令牌,并且在其他示例中,安全模块可以将加密的客户密钥的副本提供给另一服务器,诸如执行过程500的系统的web服务器,使得服务器将使用加密的客户密钥的副本来生成516导出密钥令牌。无论如何生成516,接收502到所述请求的web服务器都可以获得导出密钥令牌,并且所述web服务器可以响应于所述请求而提供518所生成的导出密钥令牌。
一旦已提供518所生成的导出密钥令牌或者在已生成516导出密钥令牌之后的时间,执行过程500的系统可能会无法访问520客户密钥。访问可以根据各种实施方案以各种方式而失去,诸如通过覆写存储具有诸如零随机数据或非随机数据的不同数据的一些或所有客户密钥的存储器位置或者通过重新分配存储器,其中当执行过程500的系统继续操作时一些或所有客户密钥被存储以最终被覆写为其他数据。如上所述,可能无法访问可从中获得客户密钥的其他信息(例如,导出密钥令牌的任何副本)。以这种方式,在某种程度上,服务提供商无法访问客户密钥,并且对客户密钥的访问因此由客户来控制,即使在服务提供商处存在严重安全漏洞的不太可能的情况下亦是如此。例如,除非客户在后续请求中或以其他方式提供导出密钥令牌,否则服务提供商不能够访问客户密钥。
如上所述,服务提供商的客户可以将导出密钥令牌提供回给服务提供商,目的是使服务提供商使用在导出密钥令牌中加密的密码密钥来执行密码操作。图6示出用于处理对使用导出密钥令牌执行密码操作的请求的过程600的说明性示例。过程600可以由任何合适的系统执行,诸如通过上文讨论的密码服务来执行。密码服务的不同部件可以执行不同的操作,如以下更详细所述的。在实施方案中,过程600包括接收600对于使用导出密钥令牌来执行一个或多个密码操作的请求。所述请求可以包括例如作为请求的参数的导出密钥令牌。正如从客户接收的所有请求,所述请求可以由执行过程600的密码服务的服务前端的web服务器来接收602。如以上结合图5所讨论的,执行过程600的系统可以确定604请求是否是真实的,如以上结合图2所述的。如上所述,如果确定604请求不真实(即,如果不能验证所述请求的真实性),那么可以拒绝606所述请求。然而,如果确定604请求是真实的,那么过程600可以包括确定608是否授权履行所述请求。如上所述,如果确定608未授权履行所述请求,或者通常如果不能确定已授权所述请求,那么执行过程600的系统可以拒绝606所述请求。
然而,如果确定608授权履行所述请求,那么执行过程600的系统可以确定610导出域密钥是否可用。如上所述,可以使用具有期满的导出域密钥来加密客户密钥,以用于导出密钥令牌。当导出域密钥期满时,密码服务可以执行可能导致密码服务并且通常所述服务提供商会无法访问导出域密钥的一组操作。因此,当接收到对于使用导出密钥令牌来执行一个或多个密码操作的请求时,所述请求可以或可以不履行,这取决于导出域密钥是否用于加密期满的导出密钥令牌内的客户密钥,并且因此服务提供商已无法访问导出域密钥。确定610导出域密钥是否可用可以根据各种实施方案以各种方式来执行。在一些示例中,web服务器使用导出密钥令牌中的导出域密钥的识别符来检查识别符是否出现在活动导出域密钥的列表或其他数据结构中。这类操作也可以由安全模块来执行。
如果确定610导出域密钥不可用,例如因为导出域密钥已期满并且因此服务提供商已无法访问导出域密钥,执行过程600的系统可以拒绝606请求,如上所述。然而,如果执行过程600的系统,并且具体地系统的确定610导出域密钥是否可用的所述部分确定导出域密钥可用,那么执行过程600的系统可以选择612在导出密钥令牌中识别的导出域密钥。所述选择可以通过存储导出密钥令牌的安全模块或以其他方式由接收602到请求的web服务器而发生。在已选择612的情况下,可以使用614导出域密钥来解密客户密钥。执行过程600的系统的安全模块可以是使用614选定的导出域密钥来解密客户密钥的系统的部件。
一旦使用614选定的导出域密钥来解密客户密钥的系统的部件可以访问解密的客户密钥,所述部件就可以使用616解密的客户密钥来执行所请求的一个或多个密码操作。例如,密码服务的安全模块可以使用解密的客户密钥来加密或解密在请求中所包括或指定的数据,诸如通过被包括在请求中或者在请求中引用以使得能够检索所述数据。如上所述,可以执行其他密码操作,而不是或除了加密和/或解密之外。例如,数字签名包括在请求中,请求具有据称通过其生成数据签名的数据,并且一个或多个密码操作可以包括验证数字签名。其他操作可以包括确定数字证书是否被信任并且使用所述数字证书来执行一个或多个密码操作。
在已执行616一个或多个密码操作以履行接收602到的请求的情况下,可以响应于所述请求而生成并提供618对包括执行一个或多个密码操作的一个或多个结果的请求的响应。例如,安全模块可以向执行接收602请求的过程600的系统的web服务器提供一个或多个密码操作的一个或多个结果。响应可以被提供给在请求中识别为作为发起所述请求的网络目的地的网络目的地(例如,互联网协议(IP)地址)。
如上所述,一旦已使用解密的客户密钥执行一个或多个密码操作,并且执行处理600的系统不再需要解密的客户密钥,执行过程600的系统就可以通过执行导致系统无法访问客户密钥的一组操作而无法访问620客户密钥。
如上所述,由密码服务使用的导出域密钥可以在不同时间轮换。图7示出用于在导出域密钥轮换上维护一组导出域密钥和执行规则的过程700的说明性示例。过程700可以由任何合适的系统来执行,诸如通过密码服务或其他计算机系统中的每个安全模块,诸如具有执行密钥轮换规则的角色的密码服务中的计算机系统。在实施方案中,过程700包括检测702导出域密钥轮换触发。导出域密钥轮换触发可以是其发生会导致将要执行的过程700的另外操作的事件。在一些示例中,导出域密钥轮换触发是时钟达到某一值。在其他示例中,所述触发可以是从另一计算机系统接收命令。也可以根据各种实施方案使用其他触发。例如,当计数超过阈值时,计数或粗略计数在密码操作中使用导出域密钥的次数的计数器可以是触发。其他触发也被认为在本公开的范围内。
在已检测702到导出域密钥轮换触发的情况下,执行过程704的系统可以选择704一组期满的导出域密钥。数据结构,诸如以上结合图3描述的数据结构或其变型,可以被引用来识别已期满的任何导出域密钥。一旦已选择704已期满的一组导出域密钥,执行过程700的系统就可以导致706无法访问任何期满的导出域密钥。导致706无法访问任何期满的导出域密钥的方式可以根据各种实施方案而变化。在一些示例中,一个或多个存储器位置用于存储已期满的导出域密钥。存储期满的导出域密钥的一个或多个存储器位置可以用随机或非随机数据来覆写。作为另一示例,这种存储器可以被解除分配,使得存储器可以由利用存储器的任何其他进程来覆写,使得在经过特定时间量(例如,一小时或一天)之后,存在一个或多个存储器位置将已被覆写的高可能性。通常,可能无法访问期满的导出域密钥的任何方式都被认为在本公开的范围内。
如图7所示,过程700还包括生成708一组替换导出域密钥以替换所述一组期满的导出域密钥。可以根据各种实施方案以各种方式生成替换导出域密钥。在一些示例中,使用伪随机数发生器来生成替换导出域密钥。生成替换导出域密钥的其他方法包括使用密钥推导功能和/或其他操作。通常,可以生成密码密钥的任何方式被认为在本公开的范围内。
可以确定710用于到达替换导出域密钥的识别符。为替换导出域密钥确定识别符的方式可以根据各种实现方式而变化。例如,在某些情况下,导出域密钥的识别符是序列值,并且识别符可以被选择为在所使用的序列中的下一个未使用的序列值。所述序列可以是例如整数序列。也可以确定712每个替换导出域密钥的期满。根据各种实施方案,可以以各种方式来确定712期满。作为说明性示例,可以将指定的时间量添加到正替换的导出域密钥的期满。指定的时间量可以是例如365天,尽管其他时间量被认为在本公开的范围内。
一旦已生成708的任何替换导出域密钥具有相应的识别符和期满,所生成708的所述一组替换导出域密钥就可以与识别符和期满相关联地存储。参考图3的说明性示例,例如可以为生成的每个替换导出域密钥向数据结构300添加一行。通常,可以使用可以与替换导出域密钥识别符和/或期满直接或间接相关联地存储替换导出域密钥的任何方式。
如上所述,在本公开的各种实施方案中,密码服务可以允许客户灵活地使用托管密码密钥以及服务提供商无法访问的导出密钥令牌中加密的客户密钥。图8示出用于履行由这种密码服务所接收到的请求的过程800的说明性示例。过程800可以由任何合适的系统执行,诸如通过上文讨论的密码服务来执行。密码服务的不同部件可以诸如按照以下讨论的方式执行过程800的不同操作。在实施方案中,过程800包括接收802执行一个或多个密码操作的请求。如上所述,可以以各种方式来接收802所述请求。例如,可以由诸如上述的密码服务前端的web服务器来接收802所述请求。
如上所述,在已接收802到请求的情况下,所述过程可以包括确定804所述请求是否是真实的,并且确定808是否授权履行所述请求。如果确定804请求不真实(即,如果不能验证所述请求的真实性),那么过程800可以包括拒绝806所述请求。类似地,如果确定808未授权履行所述请求,那么过程800可以包括拒绝所述请求。
如果执行过程800的系统确定所述请求真实并且授权履行所述请求,那么过程800可以包括确定810所述请求是否包括导出密钥令牌。如上所述,导出密钥令牌可以可选地在执行一个或多个密码操作的请求的参数中来提供。因此,确定810请求是否具有导出密钥令牌可以包括解析所述请求并确定这种导出密钥令牌是否被包括为所述请求的参数。例如,密码服务的前端的web服务器可以确定所述请求是否包括导出密钥令牌。
如果确定810请求不具有导出密钥令牌,那么过程800可以包括使用812提供商托管的客户密钥来处理所述请求。作为说明性示例,执行过程800的密码服务的web或其他服务器可以从数据存储位置诸如从单独的数据存储服务获得提供商托管的客户密钥的加密副本。一旦获得,服务器就可以将提供商托管的客户密钥的加密副本提供给安全模块。需注意,所述请求可以包括提供商托管的客户密钥的识别符,执行过程800的系统使用所述识别符来从为多名客户托管的多个提供商托管的客户密钥中选择提供商托管的客户密钥。也可以使用确定提供商托管的客户密钥的其他方式,诸如当客户具有不需要用识别符特别指定的默认提供商托管的客户密钥时。
一旦提供给安全模块,所述安全模块可以使用域密钥来解密加密的副本,以便获得明文形式的提供商托管的客户密钥。安全模块可以随后使用提供商托管的客户密钥来执行一个或多个密码操作来履行所述请求,并且可以向服务器提供执行一个或多个密码操作的结果,以用于包括在对接收802到的请求的响应中。安全模块随后可能无法访问安全模型从提供商托管的客户密钥的加密副本获得的提供商托管的客户密钥的明文副本。
如果在过程800中执行的系统确定810所述请求实际上确实具有导出密钥令牌,那么执行过程800的系统可以使用814导出密钥令牌来处理所述请求。导出密钥令牌可以用于处理如上结合图6所述的请求。
如上所述,当客户请求导出密钥令牌时,这类请求可以指定作为履行请求的结果而返回的导出密钥令牌中加密的客户密钥的使用期。在某些情况下,利用导出密钥令牌的服务提供商的客户可能希望延长在导出密钥令牌中加密的密码密钥的使用期。例如,客户可能需要在导出密钥令牌密码密钥的使用期期满后的时间来访问数据。图9示出用于处理对延长在导出密钥令牌中加密的客户密钥的使用期的请求的过程900的说明性示例。过程900可以由任何合适的系统来执行,诸如通过如上所述的密码服务来执行,并且密码服务的不同部件可以在过程900中执行不同的操作,诸如以下更详细地描述的。
在实施方案中,过程900包括接收对延长在导出密钥令牌中加密的客户密钥的使用期的请求。可以以各种方式来接收902所述请求,诸如通过诸如以上结合图2所述的密码服务前端的web服务器来接收。正如上述其他请求,过程900可以包括确定904所述请求是否是真实的,并且确定908是否授权履行所述请求。如上所述,如果确定904请求不真实(即,如果不能验证所述请求的真实性)或者如果确定未授权履行所述请求,那么过程900可以包括拒绝906所述请求。
如图9所示,如果执行过程900的系统确定904请求是真实的,并且还确定908授权履行所述请求,那么过程900可以包括确定910导出域密钥是否可用。例如如果在导出密钥令牌中加密的密码密钥期满之前接收到请求,那么导出域密钥可以是可用的。类似地,如果在导出密钥令牌中加密的客户密钥期满后接收902到请求,那么导出域密钥可以是不可用的。确定910导出域密钥是否可用可以根据不同的实现方式由不同的部件来执行。例如,在一些实施方案中,确定910由密码服务的web或其他服务器进行,而在其他实施方案中,确定910由安全模块进行。
如上所述,如果执行过程900的系统确定910导出域密钥不可用,那么过程900可以包括拒绝906所述请求。然而,如果确定910导出域密钥可用,那么导出域密钥可以被选择912为在导出密钥令牌中识别的导出域密钥。如上结合图3所述的数据结构可以用来选择912在导出密钥令牌中识别的导出域密钥。可以随后使用914导出密钥令牌来解密客户密钥。
如上所述,导出密钥令牌可以仅在授权的安全模块内可用,并且因此导出域密钥的选择912和导出密钥令牌中的客户密钥的解密可以由安全模块来执行。可以选择916与在接收902到的请求中所指定的请求的使用期匹配的导出域密钥。选择916可以由参考如以上结合图3描述的数据结构的安全模块来进行。选择916与所请求的使用期匹配的导出域密钥的安全模块可以使用918选择的导出域密钥来加密客户密钥。
一旦获得在选择916的导出域密钥下加密的客户密钥,过程900就可以包括用加密的客户密钥来生成920导出密钥令牌。导出密钥令牌的生成可以由加密客户密钥的安全模块或者由服务器而发生。例如,在一些实现方式中,导出密钥令牌由安全模块使用在授权的安全模块队之外不可访问的密码密钥来进行数字签名。因此,安全模块可以负责生成920导出密钥令牌。如果安全模块生成920导出密钥令牌,那么安全模块可以将导出密钥令牌提供给执行过程900的密码服务的前端的web服务器。无论前端的web服务器如何获得导出密钥令牌,web服务器都可以响应于请求而提供922所生成的导出密钥令牌。正如本文所描述的其他过程,如上所述,在客户密钥不再需要用于执行任何密码操作之后的时间,过程900可以包括无法访问924客户密钥。
在一些示例中,服务提供商的客户可以利用导出密钥令牌来允许服务提供商有限地访问其客户密钥。例如,客户可以开始更多地信任服务提供商和/或可能希望具有由服务提供商执行的附加服务,以减轻客户维护其自己的计算资源的负担。图10示出用于处理对将导出客户密钥转换成托管客户密钥的请求的过程1000的说明性示例。过程1000可以由任何合适的系统来执行,诸如通过如上所述的密码服务来执行,并且密码服务的不同部件可以执行过程1000的不同操作。在实施方案中,过程1000包括接收1002对将导出客户密钥转换成托管客户密钥的请求。可以由如上所述的密码服务的前端的web服务器来接收1002所述请求。所述请求可以包括例如作为接收1002的请求的参数的导出密钥令牌。正如上述涉及对执行涉及导出密钥令牌的各种操作的请求的其他过程,如上所述,过程1000可以包括确定1004所述请求是否是真实的、确定1008是否授权履行所述请求、以及确定1010合适的导出域密钥是否可用。
合适的导出域密钥可以是可以用于从所述请求中接收的导出密钥令牌获得客户密钥的明文副本的导出域密钥。如果确定所述请求不是真实的(即,如果不能验证所述请求的真实性),那么不授权履行所述请求,或者如果确定合适的导出域密钥不可用,那么过程1000可以包括拒绝1006所述请求。然而,如果确定1004所述请求是真实的,那么确定1008授权履行所述请求,并且如果确定1010合适的导出域密钥可用,那么执行过程1000的系统可以选择1012在所述请求中接收到的导出密钥令牌中所识别的导出域密钥。
如上所述,导出域密钥的选择可以由执行过程1000的密码服务的安全模块或者web或其他服务来执行。执行过程1000的密码服务的安全模块可以使用1014导出密钥令牌来解密客户密钥。安全模块可以随后选择1016域密钥,所述域密钥可以是安全模块被配置来用于托管客户密钥的密码密钥,诸如具有比至少一些导出域密钥更短的轮换安排的密码密钥。安全模块可以随后使用1018域密钥来加密客户密钥。密码服务的安全模块或者web或其他服务器可以用加密的客户密钥来生成1020密钥令牌。密钥令牌可以被结构化,诸如以上结合图4描述的导出密钥令牌。在一些实现方式中,密钥令牌被构造成以上结合图4描述的导出密钥令牌402,除了密钥令牌可能缺少内部客户识别符404之外,尽管一些实现方式允许使用用于托管客户密钥的内部客户密钥识别符。
在安全模块生成1020密钥令牌之后,安全模块可以向密码服务的web服务器提供密钥令牌,所述web服务器接收1002请求以使得所述web服务器能够存储1022生成1020的密钥令牌。在一些示例中,web服务器将请求发送到数据存储服务,以使得数据存储服务使用诸如数据存储服务的数据存储装置的计算资源来存储密钥令牌。通常,可以将密钥令牌存储在由其密码服务执行过程1000的服务提供商托管和/或由其控制的硬件中的任何方式被认为在本公开的范围内。还需注意,在一些实施方案中,安全模块可以将请求发送到数据存储服务本身,并且向web服务器提供这种存储的通知,以提供对请求的指示已履行所述请求的响应。此外,在一些替代实施方案中,安全模块可以不生成密钥令牌,但是可以将密钥令牌存储在安全模块之外不能够访问的其自身的本地存储器中。可以执行安全模块之间的安全转移,以使得多个安全模块能够在这类替代实施方案中访问客户密钥。
在一些示例中,由于各种原因,服务提供商的客户可能希望将其托管客户密钥转换成导出客户密钥。因此,图11示出用于处理对将托管客户密钥转换成导出客户密钥的请求的过程1100的说明性示例。过程1100可以由任何合适的系统执行,诸如如上所述的密码服务。在实施方案中,过程1100包括接收1102对将托管客户密钥转换成导出客户密钥的请求。可以由执行过程1100的密码服务的前端的web服务器接收1102所述请求。请求可以包括托管客户密钥的识别符作为参数,其可用于将托管客户密钥与由服务提供商托管的其他托管客户密钥区分开。正如本文所述的其他过程,过程1100可以包括确定1104所述请求是否是真实的,并且确定1108是否授权履行所述请求。如果未确定1104请求真实或者如果确定1108未授权履行所述请求,那么过程1100可以包括拒绝1106所述请求。
然而,如果确定1104请求是真实的并且确定1108授权履行所述请求,那么过程1100可以包括从数据存储装置获得1110密钥令牌,其中所述密钥令牌包括接收1102的请求中所指定的托管客户密钥的加密副本。正如本文描述的不涉及访问客户密钥的明文副本的许多操作,可以根据不同的实施方案通过不同的部件诸如通过执行过程1100的密码服务的web或其他服务器或者其安全模块来获得1110密钥令牌。
不管如何从数据存储装置获得1110密钥令牌,密钥令牌都可以由执行过程1100的密码服务的安全模块来获得。因此,如图11所示,安全模块可以使用1112域密钥来解密客户密钥。安全模块可以选择1114导出域密钥,所述导出域密钥与在接收1102到的请求中指定为参数或者隐含地指定(例如,作为默认)的使用期匹配,并且可以使用1116选定的导出域密钥来加密客户密钥。如上所述的合适的部件可以生成1118具有加密的客户密钥的导出密钥令牌。
生成1118的导出密钥令牌可以被配置成如以上结合图4所描述的,并且可以包括例如以上描述的各种识别符,其中内部客户密钥识别符404可以被指定为接收1102的请求的参数。执行过程1100的密码服务的前端的web服务器可以响应于所述请求而提供1120生成的导出密钥令牌。正如本文所描述的其他过程,如上所述,当客户密钥的明文副本不再需要时,过程1100可以包括无法访问1122客户密钥。
图5至图11示出可由密码服务或其他计算机系统执行的各种过程。所述过程示出以特定顺序执行的各种操作。应当注意,操作顺序可以与所示的顺序不同,诸如当一个操作的执行不依赖于另一操作时。例如,可以以不同的顺序或并行地执行请求真实性和请求履行的授权的确定。不需要以特定顺序执行其他对操作,诸如当一个操作的输出不用作另一个操作的输入时,可以以不同于所示的顺序或并行来执行。作为说明性示例,本文描述的许多过程包括执行导致密码服务无法访问客户密钥的任何明文副本的一组操作。在图中所示的所有过程中,导致无法访问的所述一组操作在过程结束时发生。然而,导致系统无法访问的操作可以在任何合适的时间点执行,诸如在已完成对客户密钥的明文副本执行的任何操作或以其他方式使用客户密钥的明文副本执行的任何操作之后。其他变化也被认为在本公开的范围内。
例如,在一些实施方案中,导出域密钥的期满导致完全无法访问导出域密钥,使在导出域密钥下加密的信息(例如,客户密钥)在缺少特殊的计算工作量的情况下不可恢复。在一些实施方案中,服务提供商可以允许在其期满之后检索导出域密钥,诸如允许在导出域密钥的使用期后恢复数据。例如,服务提供商可以在导出域密钥期满之后的有限时间内将导出域密钥的副本维护在离线存储库中,使得可以检索导出域密钥以解密信息,同时可从离线存储库检索导出域密钥的副本。作为另一示例,专用密码密钥可以维护在离线存储库中(例如,在数据中心的锁定房间中的保险箱中或者在其他位置中)。对应的公共密钥可以用来加密导出域密钥的副本,并且加密的副本可以存储在数据存储系统中。在稍后的时间点,可以访问并销毁专用密码密钥,从而消除恢复导出域密钥的任何潜在的能力。其他变化也被认为在本公开的范围内。
如所讨论的,本公开的许多变化涉及执行可以利用对称和/或非对称密码原语的各种密码操作。对称密钥算法可以包括用于对包括分组密码、流密码和数字签名方案的数据执行密码操作的各种方案。示例性对称密钥算法包括高级加密标准(AES)、数据加密标准(DES)、三重DES(3DES)、Serpent、Twofish、blowfish、CAST5、RC4以及国际数据加密算法(IDEA)。对称密钥算法还可以包括用于生成单向函数的输出的那些算法,并且包括利用基于散列的消息认证码(HMAC)、通常消息认证码(MAC)、PBKDF2和Bcrypt的算法。非对称密钥算法还可以包括用于对数据执行密码操作的各种方案。示例性算法包括利用Diffie-Hellman密钥交换协议、数字签名标准(DSS)、数字签名算法、E1Gamal算法、各种椭圆曲线算法、密码认证密钥协商技术、paillier密码系统、RSA加密算法(PKCS#1)、Cramer-Shoup密码系统、YAK认证密钥协商协议、NTRUEncrypt密码系统、McEliece密码系统等的那些算法。椭圆曲线算法包括椭圆曲线Diffie-Hellman(ECDH)密钥协商方案、椭圆曲线综合加密方案(ECIES)、椭圆曲线数字签名算法(ECDSA)、ECMQV密钥协商方案以及ECQV隐含证书方案。其他算法和算法的组合也被认为在本公开的范围内,并且以上内容并不旨在是详尽的列表。
图12示出用于实施根据各个实施方案的各方面的示例性环境1200的各方面。如将了解,尽管出于解释目的使用基于web的环境,但是可以视情况使用不同环境来实施各个实施方案。环境包括电子客户端装置1202,所述电子客户端装置1202可以包括可操作来通过适当网络1204发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回装置用户的任意适当装置。此类客户端装置的示例包括个人计算机、手机、手持式消息传送装置、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入计算机系统、电子书阅读器等。网络可以包括任意适当网络,包括内联网、互联网、蜂窝网、局域网、卫星网或任意其他此类网络和/或上述网络的组合。用于这种系统的部件可以至少部分地取决于选定的网络和/或环境的类型。用于通过此类网络通信的协议和部件是众所周知的,因而本文将不再详细论述。通过网络的通信可以通过有线或无线连接及其组合来实施。在此示例中,网络包括互联网,因为环境包括用于接收请求并且响应于所述请求而提供内容的web服务器1206,但是对于其他网络来说,可以使用服务类似目的的替代装置,如本领域普通技术人员所明白的。
说明性环境包括至少一个应用服务器1208和数据存储区1210。应当理解,可以存在可链接起来或以其他方式配置的若干应用服务器、层或其他元件、过程或部件,这些应用服务器、层或其他元件、过程或部件可以交互来执行诸如从适当的数据存储区获得数据的任务。如本文所使用的服务器可以以各种方式实施,诸如硬件装置或虚拟计算机系统。在一些上下文中,服务器可以指在计算机系统上执行的编程模块。如本文所使用的,除非另行指出或从上下文中明确可知,术语“数据存储区”是指能够存储、访问和检索数据的任意装置或装置组合,所述装置或装置组合可以包括任意标准、分布式、虚拟或集群式环境中的任意组合和任意数目的数据服务器、数据库、数据存储装置和数据存储介质。应用服务器可以包括任何适当硬件、软件和固件,所述硬件、软件和固件视执行客户端装置的一个或多个应用的各方面的需要而与数据存储区集成、处理应用的一些或所有数据访问和业务逻辑。应用服务器可以提供与数据存储区协作的存取控制服务,并且能够生成可用于提供给用户的内容,所述内容包括但不限于文本、图片、音频、视频和/或其他内容,所述内容可以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、层叠样式表(“CSS”)或另一种适当客户端侧结构化语言的形式由web服务器提供给用户。传送给客户端装置的内容可以由客户端装置处理,以便提供呈一种或多种形式的内容,所述形式包括但不限于用户可以通过听觉、视觉和/或通过其他感觉(包括触觉、味觉和/或嗅觉)来感知的形式。全部请求和响应的处理以及客户端装置1202与应用服务器1208之间的内容递送可以由web服务器使用PHP:超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML或在这个示例中另一种适当服务器侧结构化语言来处理。应当理解,web服务器和应用服务器不是必要的,且仅仅是示例性部件,因为本文所论述的结构化代码可以在如本文其他地方所论述的任意适当装置或主机上执行。此外,除非上下文另外清楚规定,否则如由单个装置执行的本文所述的操作可以由可形成分布式和/或虚拟系统的多个装置共同执行。
数据存储区1210可以包括用于存储与本公开的特定方面相关的数据的若干单独数据表、数据库、数据文档、动态数据存储方案和/或其他数据存储机构和介质。例如,所示数据存储区可以包括用于存储生产数据1212和用户信息1216的机构,生产数据1212和用户信息1216可用于提供生产侧的内容。数据存储区还被示出为包括用于存储日志数据1214的机构,所述日志数据可以用于报告、分析或其他此类目的。应当理解,可能存在可能需要存储在数据存储区中的许多其他方面,如页面图像信息和访问权信息,所述方面可以视情况存储在上文列出的机构中的任意机构中或存储在数据存储区1210中的额外机构中。数据存储区1210可以通过与其相关联的逻辑来操作,以便从应用服务器1208接收指令,并且响应于所述指令而获得、更新或以其他方式处理数据。应用服务器1208可以响应于所接收指令而提供静态数据、动态数据或静态数据和动态数据的组合。动态数据(诸如web日志(博客)、购物应用、新闻服务以及其他这类应用中使用的数据)可以由如本文所描述的服务器侧结构化语言生成,或者可以由在应用服务器上操作或在其控制下的内容管理系统(“CMS”)提供。在一个示例中,用户通过由用户操作的装置可以提交针对某种类型的项目的搜索请求。在这种情况下,数据存储区可能访问用户信息来验证用户的身份,并且可以访问目录详细信息以获得关于所述类型的项目的信息。随后,可以将信息诸如以网页上的结果列表的形式返回给用户,用户能够通过用户装置1202上的浏览器来查看所述网页。可以在浏览器的专用页面或窗口中查看感兴趣的特定项目的信息。然而,应当注意,本公开的实施方案不一定限于网页的上下文,但是可以更一般地适用于处理基本请求,其中请求不一定是针对内容的请求。
每个服务器通常将包括提供用于此服务器的基本管理和操作的可执行程序指令的操作系统,并且通常将包括计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),其存储当由服务器的处理器执行时允许服务器执行其预期功能的指令。服务器的操作系统和基本功能的合适实现方式是已知的或可商购获得的,并且由本领域普通技术人员特别是根据本文的本公开而容易地实施。
在一个实施方案中,环境是利用通过通信链路、使用一个或多个计算机网络或直接连接来互连的多个计算机系统和部件的分布式和/或虚拟计算环境。然而,本领域普通技术人员应了解,这种系统可以在具有比图12中所示的部件更少或更多数量的部件的系统中同样顺利地操作。因此,图12中的系统1200的描绘本质上应视为说明性的,并且不限制本公开的范围。
各种实施方案还可以在各种各样的操作环境中实施,所述操作环境在一些情况下可以包括可用于操作多个应用中的任何一个的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可以包括许多通用个人计算机中的任何一个,诸如运行标准操作系统的台式机、膝上计算机或平板计算机,以及运行移动软件并且能够支持多个网络和消息传送协议的蜂窝、无线和手持装置。这种系统还可以包括运行多种可商购获得的操作系统和其他已知应用中的任何一种的许多工作站,以用于诸如开发和数据库管理的目的。这些装置还可以包括其他电子装置,诸如虚拟终端、瘦客户端、游戏系统和能够通过网络进行通信的其他装置。这些装置还可以包括虚拟装置,诸如虚拟机、管理程序和能够通过网络通信的其他虚拟装置。
本公开的各种实施方案利用本领域技术人员可能熟悉的至少一种网络来支持使用多种可商购得的协议中的任一种进行通信,所述协议诸如传输控制协议/互联网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各个层中操作的协议、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、公共互联网文件系统(“CIFS”)以及AppleTalk。网络可以是例如局域网、广域网、虚拟专用网、互联网、内联网、外联网、公共交换电话网、红外网、无线网、卫星网以及上述网络的任何组合。
在利用web服务器的实施方案中,web服务器可以运行多种服务器或中间层级应用中的任一种,包括超文本传送协议(“HTTP”)服务器、FTP服务器、通用网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器和业务应用服务器。服务器还可能够响应于来自用户装置的请求而执行程序或脚本,诸如通过执行可以实施为以任何编程语言(诸如
Figure BDA0003158039380000341
C、C#或C++)或任何脚本语言(诸如Ruby、PHP、Perl、Python或TCL)以及其组合写成的一个或多个脚本或程序的一个或多个web应用。服务器也可以包括数据库服务器,包括但不限于,可从
Figure BDA0003158039380000342
Figure BDA0003158039380000343
商购获得的数据库服务器、以及开源服务器(诸如MySQL、Postgres、SQLite、MongoDB),以及能够存储、检索和访问结构化数据或非结构化数据的任何其他服务器。数据库服务器可以包括基于表格的服务器、基于文件的服务器、非结构化服务器、关系式服务器、非关系式服务器或这些和/或其他数据库服务器的组合。
环境可以包括如上文所论述的各种各样的数据存储区以及其他存储器和存储介质。这些可以驻留在各种位置,诸如在存储介质上,所述存储介质在一个或多个计算机的本地(和/或驻留在其中),或者远离网络中的任何或所有计算机。在一组特定实施方案中,信息可以驻留在本领域技术人员熟悉的存储区域网络(“SAN”)中。类似地,在适当情况下,用于执行归因于计算机、服务器或其他网络装置的功能的任何必要文件可以在本地和/或远程存储。在系统包括计算机化装置的情况下,每个这种装置可以包括可通过总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。这种系统还可以包括一个或多个存储装置诸如磁盘驱动器、光存储装置和诸如随机存取存储器(“RAM”)或只读存储器(“ROM”)的固态存储装置、以及可移除介质装置、存储卡、闪存卡等。
此类装置还可以包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外线通信装置等)和如上所述的工作存储器。计算机可读存储介质读取器可以与表示远程、本地、固定和/或可移除存储装置以及用于临时和/或更永久地包含、存储、发送和检索计算机可读信息的存储介质的计算机可读存储介质连接或被配置来接收所述计算机可读存储介质。系统和各种装置通常还将包括位于至少一个工作存储器装置内的许多软件应用、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用或网络浏览器。应当理解,替代实施方案可以具有与上述不同的许多变化。例如,还可以使用定制硬件和/或特定元件可以在硬件、软件(包括便携式软件,例如小程序)或两者中实施。此外,可以采用与其他计算装置(诸如网络输入/输出装置)的连接。
用于包含代码或代码部分的存储介质和计算机可读介质可以包括本领域中已知或使用的任何适当的介质,所述介质包括存储介质和通信介质,诸如但不限于以任何方法或技术实施用于存储和/或传输信息的易失性和非易失性、可移除和不可移除介质,所述信息诸如计算机可读指令、数据结构、程序模块或其他数据,所述介质包括RAM、ROM、电可擦除可编程只读存储器(“EEPROM”)、闪速存储器或其他存储器技术、光盘只读存储器(“CD-ROM”)、数字通用盘(DVD)或其他光存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储装置或者可用来存储所需信息并且可由系统装置访问的任何其他介质。基于本文所提供的公开内容和教义,本领域普通技术人员将了解实施各个实施方案的其他方式和/或方法。
因此,说明书和附图视为说明性而非限制性意义。然而,将明显的是,在不脱离如权利要求所阐述的本发明的更广泛的精神和范围的情况下,可以进行各种修改和改变。
其他变化在本公开的精神内。因此,虽然所公开的技术易于进行各种修改和替代构造,但是其某些示出的实施方案在附图中示出并已在上文详细描述。然而,应当理解,不意图将本发明限制为所公开的一种或多种具体形式,相反,本发明旨在覆盖落入本发明的精神和范围内的所有修改、替代构造和等效物,如所附权利要求中所限定的。
在描述公开的实施方案(特别是在所附权利要求的上下文中)的上下文中使用术语“一(a)”和“一(an)”以及“所述”以及类似的指示物应被解释为涵盖单数和复数,除非本文另外指明或上下文明显矛盾。术语“包括”、“具有”、“包括”和“包含”均被解释为开放式术语(即意味着“包括但不限于”),除非另有说明。术语“连接的”在未经修改且涉及物理连接的情况下,应解释为部分地或整体地包含在内、附接到或接合在一起,即使会有一些物件介于其间。除非本文另有说明,否则本文的值的范围的叙述仅用于作为单独参考落在所述范围内的每个单独值的速记方法,并且将每个单独值并入本说明书中,如同本文单独列举每个单独值一样。术语“集”(例如,“项目集”)或“子集”的使用除非另有说明或与上下文相矛盾,否则应被解释为包括一个或多个成员的非空集合。此外,除非另有说明或与上下文相矛盾,否则对应集合的术语“子集”不一定表示对应集合的适当子集,但子集和对应集合可相等。
除非另外特别规定或另外与上下文明显矛盾,否则连接性语言,诸如具有形式“A、B、以及C中的至少一个”或“A、B以及C中的至少一个”的短语与上下文一起理解为一般用来呈现项目、项等可以是A或B或C,或A和B和C的集合的任何非空子集。例如,在具有三个成员的集的说明性示例中,连接性短语“A、B、和C中的至少一个”和“A、B和C中的至少一个”是指以下集中的任一集:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,此类连接性语言一般并非意图暗示某些实施方案需要A中的至少一个、B中的至少一个以及C中的至少一个每个存在。
本文所描述的进程的操作可以任何合适的顺序执行,除非本文另外指明或者否则上下文明显矛盾。本文所描述的进程(或其变型和/或其组合)可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以被实施为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)通过硬件或其组合实施。代码可以存储在计算机可读存储介质上,例如以包括可由一个或多个处理器执行的多条指令的计算机程序的形式进行存储。计算机可读存储介质可以是非暂时性的。
本文所提供的任何和所有示例或示例性语言(例如“诸如”)的使用仅旨在更好地说明本发明的实施方案,并且不对本发明的范围构成限制,除非另有说明。说明书中的任何语言都不应解读为指示任何未要求保护的要素是实施本发明所必需的。
本文描述了本公开的实施方案,包括本发明人已知的用于执行本发明的最佳模式。在阅读前面的描述之后,这些实施方案的变型对于本领域普通技术人员来说可能变得明显。本发明人期望本领域技术人员在适当情况下使用这种变型,并且本发明人希望本公开的实施方案以不同于本文具体描述的方式来实施。因此,本公开的范围包括根据适用法律允许的所附权利要求中所述的主题的所有修改和等效物。此外,除非本文另外指明或者否则上下文明显矛盾,否则所有可能变型的上述元素的任何组合都包含在本公开的范围内。
本文所引用的所有参考文献(包括公布、专利申请和专利)据此以引用方式并入,其程度等同于每个参考文献单独地且具体地被指示为以引用方式并入本文并且以其全文在本文得以陈述。
本公开的实施方案可以根据以下条款来描述:
1.一种计算机实施方法,其包括:
在密码服务的web服务器处接收对密码密钥的请求,所述请求指定使用期,所述请求来自与所述密码服务的客户相关联的装置;
在提供密码材料的硬件保护的装置中生成所述密码密钥;
从存储在所述装置内并且从所述装置以编程方式不可导出的一组域密钥中选择具有与所述指定使用期匹配的期满的域密钥,所述期满由自动化过程的至少一个实例强制执行,所述自动化过程致使所述域密钥在根据所述期满确定的时间变得对于所述装置永久地不可访问;
在所述装置中加密所述生成的密码密钥;
生成包括所述加密密码密钥和所述密码密钥的识别符的令牌;
响应于所述接收的请求而向与所述客户相关联的所述装置提供所述令牌;以及
执行致使所述装置无法访问所述密码密钥的一个或多个操作。
2.如条款1所述的计算机实施方法,其还包括将策略与所述密码密钥的所述识别符相关联,使得所述密码服务使用所述策略来控制对使用所述密码密钥执行密码操作的请求的履行。
3.如条款1或2所述的计算机实施方法,其还包括:
在所述web服务器处接收对托管密码密钥的第二请求;
在所述装置中生成所述托管密码密钥;
使用存储在所述装置中的第二域密钥来加密所述托管密码密钥;以及
将所述加密的托管密码密钥存储在对于所述密码服务可访问的位置中。
4.如条款3所述的计算机实施方法,其中:
所述域密钥是来自提供用于导出密码密钥的所述一组域密钥的第一子集的第一域密钥;以及
所述第二域密钥来自提供用于托管密码密钥的所述一组域密钥的第二子集。
5.一种系统,其包括:
至少一个计算装置,所述至少一个计算装置被配置来实施一个或多个服务,所述一个或多个服务被配置来:
接收对密码密钥的请求;以及
通过以下方式履行对所述密码密钥的所述请求:
获得所述密码密钥;
使用密码材料来加密所述获得的密码密钥,所述密码材料在各自提供所述密码材料的硬件保护的一组硬件装置之外不可访问,所述密码材料具有对应于时间的期满,在所述时间后所述密码材料变得对于所述一组硬件装置不可访问的,其中所述期满由通过所述系统执行的自动化过程强制执行;
提供所述加密的密码密钥;以及
致使所述一组硬件装置无法访问所述获得的密码密钥。
6.如条款5所述的系统,其中:
所述一个或多个服务被进一步配置来生成包括所述密码密钥的识别符的令牌;以及
提供所述加密的密码密钥包括提供所述生成的令牌。
7.如条款5或6所述的系统,其中所述一个或多个服务被进一步配置来:
接收对使用所述密码密钥来执行密码操作的第二请求,所述第二请求包括所述加密的密码密钥;以及
通过解密所述加密的密码密钥并且使用所述密码密钥执行所述密码操作来履行所述第二请求,这取决于仍然可用的所述密码材料。
8.如条款7所述的系统,其中所述一个或多个服务被进一步配置来:
接收对执行所述密码操作的第三请求,所述请求指定由所述一个或多个服务管理的第二密码密钥的识别符;以及
至少通过以下各项来履行所述请求:
从数据存储位置获得所述第二密码密钥的加密副本;
解密所述第二密码密钥的所述加密副本;以及
使用所述第二密码密钥来执行所述密码操作。
9.如条款5-8中任一项所述的系统,其中所述一个或多个服务被进一步配置来:
将策略与所述密码密钥相关联,所述策略指定用于所述密码密钥的一组许可;
根据所述策略来控制对使用所述密码密钥的请求的履行。
10.如条款5-9中任一项所述的系统,其中所述一个或多个服务被进一步配置来至少部分地基于所述密码材料的期满来选择所述密码材料,所述期满指示时间,在所述时间后所述一个或多个服务将无法访问所述密码材料。
11.如条款5-10中任一项所述的系统,其中所述硬件装置是硬件安全模块。
12.如条款5-11中任一项所述的系统,其中获得所述密码密钥包括:
从对于所述一个或多个服务可访问的数据存储系统检索所述密码密钥的加密副本;以及
使用与所述密码材料不同的其他密码材料来解密所述密码密钥的所述加密副本。
13.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令当由第一实体的计算机系统的一个或多个处理器执行时,致使所述计算机系统至少:
针对对密钥令牌的第一请求:
获得包括第一密码密钥的加密副本的密钥令牌以及可用于识别用于加密所述第一密码密钥的第二密码密钥的信息,所述第二密码密钥从管理所述第二密码密钥的一组硬件装置之外不可访问,其中获得所述密钥令牌致使所述第一密码密钥在生成所述密钥令牌之后变得对所述实体不可访问,并且其中所述第二密码密钥具有指示时间的期满,在所述时间后所述第二密码密钥变得对所述一组硬件装置不可访问的;以及
针对对密钥令牌的第二请求,所述第二请求与第二实体相关联:
获得所述密钥令牌;
如果尚未经过由所述期满指示的所述时间,那么致使所述一组硬件装置中的硬件装置解密所述第一密码密钥,并且使用所述解密的第一密码密钥来执行一个或多个密码操作,并且向所述计算机系统提供所述一个或多个密码操作的结果;以及
提供对所述第二请求的至少部分地基于所述提供的结果的响应。
14.如条款13所述的非暂时性计算机可读存储介质,其中所述指令被配置成使得获得所述密钥令牌的所述指令当由所述一个或多个处理器执行时致使所述计算机系统使所述密钥令牌作为接收到所述第一请求的结果而生成。
15.如条款13或14所述的非暂时性计算机可读存储介质,其中所述指令被配置成使得获得所述密钥令牌的所述指令当由所述一个或多个处理器执行时致使所述计算机系统向所述一组硬件装置中的所述硬件装置中的一个发送命令以致使生成所述密钥令牌。
16.如条款13-15中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括当针对所述第二请求执行时致使所述计算机系统执行以下各项的指令:
至少部分地基于所述第一密码密钥的识别符来确定一组策略,所述一组策略定义用于使用所述第一密码密钥的一组许可;
确定履行所述请求是否符合所述确定的一组策略;以及
致使所述计算机系统使所述硬件装置解密所述第一密码密钥并且使用所述解密的第一密码密钥来执行所述一个或多个密码操作的所述指令的执行取决于确定履行所述请求符合所述确定的一组策略。
17.如条款13-16中任一项所述的非暂时性计算机可读存储介质,其中所述第一实体是操作所述计算机系统的服务提供商,并且所述第二实体是所述服务提供商的客户。
18.如条款13-17中任一项所述的非暂时性计算机可读存储介质,其中:
所述第二请求包括所述密钥令牌;以及
致使所述计算机系统获得所述密钥令牌的所述指令在由所述一个或多个处理器执行时致使所述计算机系统从所述第二请求确定所述密钥令牌。
19.如条款13-18中任一项所述的非暂时性计算机可读存储介质,其中所述一组硬件装置包括多个硬件安全模块。
20.如条款13-19中任一项所述的非暂时性计算机可读存储介质,其中致使所述计算机系统获得所述密钥令牌的所述指令当由所述一个或多个处理器执行时致使所述计算机系统获得所述密钥令牌,其方式导致由于所述第二密码密钥具有与所述第一请求中所指定的使用期匹配的期满而选择所述第二密码密钥。

Claims (15)

1.一种计算机实施方法,其包括:
在密码服务的web服务器处接收对密码密钥的请求,所述请求指定使用期,所述请求来自与所述密码服务的客户相关联的装置;
在提供密码材料的硬件保护的装置中生成所述密码密钥;
从存储在所述装置内并且从所述装置以编程方式不可导出的一组域密钥中选择具有与所述指定使用期匹配的期满的域密钥,所述期满由自动化过程的至少一个实例强制执行,所述自动化过程致使所述域密钥在根据所述期满确定的时间变得对于所述装置永久地不可访问;
在所述装置中加密所述生成的密码密钥;
生成包括所述加密密码密钥和所述密码密钥的识别符的令牌;
响应于所述接收的请求而向与所述客户相关联的所述装置提供所述令牌;以及
执行致使所述装置无法访问所述密码密钥的一个或多个操作。
2.如权利要求1所述的计算机实施方法,其还包括将策略与所述密码密钥的所述识别符相关联,使得所述密码服务使用所述策略来控制对使用所述密码密钥执行密码操作的请求的履行。
3.如权利要求1所述的计算机实施方法,其还包括:
在所述web服务器处接收对托管密码密钥的第二请求;
在所述装置中生成所述托管密码密钥;
使用存储在所述装置中的第二域密钥来加密所述托管密码密钥;以及
将所述加密的托管密码密钥存储在对于所述密码服务可访问的位置中。
4.如权利要求3所述的计算机实施方法,其中:
所述域密钥是来自提供用于导出密码密钥的所述一组域密钥的第一子集的第一域密钥;以及
所述第二域密钥来自提供用于托管密码密钥的所述一组域密钥的第二子集。
5.一种系统,其包括:
至少一个计算装置,所述至少一个计算装置被配置来实施一个或多个服务,所述一个或多个服务被配置来:
接收对密码密钥的请求;以及
通过以下方式履行对所述密码密钥的所述请求:
获得所述密码密钥;
使用密码材料来加密所述获得的密码密钥,所述密码材料在各自提供所述密码材料的硬件保护的一组硬件装置之外不可访问,所述密码材料具有对应于时间的期满,在所述时间后所述密码材料变得对于所述一组硬件装置不可访问,其中所述期满由通过所述系统执行的自动化过程强制执行;
提供所述加密的密码密钥;以及
致使所述一组硬件装置无法访问所述获得的密码密钥。
6.如权利要求5所述的系统,其中:
所述一个或多个服务被进一步配置来生成包括所述密码密钥的识别符的令牌;以及
提供所述加密的密码密钥包括提供所述生成的令牌。
7.如权利要求5所述的系统,其中所述一个或多个服务被进一步配置来:
接收对使用所述密码密钥来执行密码操作的第二请求,所述第二请求包括所述加密的密码密钥;以及
通过解密所述加密的密码密钥并且使用所述密码密钥执行所述密码操作来履行所述第二请求,这取决于仍然可用的所述密码材料。
8.如权利要求7所述的系统,其中所述一个或多个服务被进一步配置来:
接收对执行所述密码操作的第三请求,所述请求指定由所述一个或多个服务管理的第二密码密钥的识别符;以及
至少通过以下各项来履行所述请求:
从数据存储位置获得所述第二密码密钥的加密副本;
解密所述第二密码密钥的所述加密副本;以及
使用所述第二密码密钥来执行所述密码操作。
9.如权利要求5所述的系统,其中所述一个或多个服务被进一步配置来:
将策略与所述密码密钥相关联,所述策略指定用于所述密码密钥的一组许可;
根据所述策略来控制对使用所述密码密钥的请求的履行。
10.如权利要求5所述的系统,其中所述一个或多个服务被进一步配置来至少部分地基于所述密码材料的期满来选择所述密码材料,所述期满指示时间,在所述时间后所述一个或多个服务将无法访问所述密码材料。
11.如权利要求5所述的系统,其中所述硬件装置是硬件安全模块。
12.如权利要求5所述的系统,其中获得所述密码密钥包括:
从对于所述一个或多个服务可访问的数据存储系统检索所述密码密钥的加密副本;以及
使用与所述密码材料不同的其他密码材料来解密所述密码密钥的所述加密副本。
13.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令当由第一实体的计算机系统的一个或多个处理器执行时,致使所述计算机系统至少:
针对对密钥令牌的第一请求:
获得包括第一密码密钥的加密副本的密钥令牌以及可用于识别用于加密所述第一密码密钥的第二密码密钥的信息,所述第二密码密钥从管理所述第二密码密钥的一组硬件装置之外不可访问,其中获得所述密钥令牌致使所述第一密码密钥在生成所述密钥令牌之后变得对所述实体不可访问,并且其中所述第二密码密钥具有指示时间的期满,在所述时间后所述第二密码密钥变得对所述一组硬件装置不可访问;以及
针对对密钥令牌的第二请求,所述第二请求与第二实体相关联:
获得所述密钥令牌;
如果尚未经过由所述期满指示的所述时间,那么致使所述一组硬件装置中的硬件装置解密所述第一密码密钥,并且使用所述解密的第一密码密钥来执行一个或多个密码操作,并且向所述计算机系统提供所述一个或多个密码操作的结果;以及
提供对所述第二请求的至少部分地基于所述提供的结果的响应。
14.如权利要求13所述的非暂时性计算机可读存储介质,其中所述指令被配置成使得获得所述密钥令牌的所述指令当由所述一个或多个处理器执行时致使所述计算机系统使所述密钥令牌作为接收到所述第一请求的结果而生成。
15.如权利要求13所述的非暂时性计算机可读存储介质,其中所述指令被配置成使得获得所述密钥令牌的所述指令当由所述一个或多个处理器执行时致使所述计算机系统向所述一组硬件装置中的所述硬件装置中的一个发送命令以致使生成所述密钥令牌。
CN202110787083.3A 2015-03-31 2016-03-25 密钥导出方法和系统以及非暂时性计算机可读存储介质 Pending CN113381857A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/675,614 US10469477B2 (en) 2015-03-31 2015-03-31 Key export techniques
US14/675,614 2015-03-31
CN201680023756.5A CN107534667B (zh) 2015-03-31 2016-03-25 密钥导出方法和系统以及非暂时性计算机可读存储介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201680023756.5A Division CN107534667B (zh) 2015-03-31 2016-03-25 密钥导出方法和系统以及非暂时性计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN113381857A true CN113381857A (zh) 2021-09-10

Family

ID=55661646

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110787083.3A Pending CN113381857A (zh) 2015-03-31 2016-03-25 密钥导出方法和系统以及非暂时性计算机可读存储介质
CN201680023756.5A Active CN107534667B (zh) 2015-03-31 2016-03-25 密钥导出方法和系统以及非暂时性计算机可读存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201680023756.5A Active CN107534667B (zh) 2015-03-31 2016-03-25 密钥导出方法和系统以及非暂时性计算机可读存储介质

Country Status (9)

Country Link
US (2) US10469477B2 (zh)
EP (1) EP3278533A1 (zh)
JP (2) JP6499310B2 (zh)
KR (2) KR102311843B1 (zh)
CN (2) CN113381857A (zh)
AU (3) AU2016243115B2 (zh)
CA (2) CA3147153A1 (zh)
SG (1) SG11201707796PA (zh)
WO (1) WO2016160597A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9930066B2 (en) 2013-02-12 2018-03-27 Nicira, Inc. Infrastructure level LAN security
US20150379280A1 (en) 2014-06-30 2015-12-31 Nicira, Inc. Method and Apparatus for Dynamically Creating Encryption Rules
US10798073B2 (en) * 2016-08-26 2020-10-06 Nicira, Inc. Secure key management protocol for distributed network encryption
GB2556638B (en) * 2016-12-02 2018-12-12 Gurulogic Microsystems Oy Protecting usage of key store content
US10489307B2 (en) * 2017-01-05 2019-11-26 Pure Storage, Inc. Periodically re-encrypting user data stored on a storage device
KR102468390B1 (ko) * 2017-05-31 2022-11-18 삼성에스디에스 주식회사 토큰 관리 방법 및 이를 수행하기 위한 서버
WO2018236420A1 (en) 2017-06-20 2018-12-27 Google Llc CLOUD EQUIPMENT SECURITY MODULES FOR CRYPTOGRAPHIC EXTERNALIZATION OPERATIONS
US10505938B2 (en) * 2017-07-21 2019-12-10 Schlage Lock Company Llc Leveraging flexible distributed tokens in an access control system
US10536267B2 (en) * 2017-09-15 2020-01-14 Visa International Service Association Cryptographic services utilizing commodity hardware
KR101967380B1 (ko) * 2017-10-31 2019-08-13 삼성에스디에스 주식회사 키 관리 시스템
US11095446B2 (en) * 2018-02-27 2021-08-17 Anchor Labs, Inc. Cryptoasset custodial system with different rules governing access to logically separated cryptoassets and proof-of-stake blockchain support
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
US20200036705A1 (en) * 2018-07-27 2020-01-30 Jasper Chee Pang LEE Strong password by convention methods and systems
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN110795774B (zh) 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
US11082235B2 (en) 2019-02-14 2021-08-03 Anchor Labs, Inc. Cryptoasset custodial system with different cryptographic keys controlling access to separate groups of private keys
US11240022B1 (en) * 2019-04-11 2022-02-01 Wells Fargo Bank, N.A. Passive encryption rotation keys
US11698981B2 (en) * 2019-06-14 2023-07-11 Mongodb, Inc. Systems and methods for client-side and field-level encryption with dynamic schema databases
US11494763B2 (en) 2019-08-19 2022-11-08 Anchor Labs, Inc. Cryptoasset custodial system with custom logic
US11301845B2 (en) 2019-08-19 2022-04-12 Anchor Labs, Inc. Cryptoasset custodial system with proof-of-stake blockchain support
US11100497B2 (en) 2019-08-20 2021-08-24 Anchor Labs, Inc. Risk mitigation for a cryptoasset custodial system using a hardware security key
US11562349B2 (en) 2019-08-20 2023-01-24 Anchor Labs, Inc. Risk mitigation for a cryptoasset custodial system using data points from multiple mobile devices
US11501291B2 (en) * 2019-08-23 2022-11-15 Anchor Labs, Inc. Cryptoasset custodial system using encrypted and distributed client keys
US11838413B2 (en) * 2019-10-22 2023-12-05 Synamedia Limited Content recognition systems and methods for encrypted data structures
US11259082B2 (en) 2019-10-22 2022-02-22 Synamedia Limited Systems and methods for data processing, storage, and retrieval from a server
US11159330B1 (en) 2019-10-24 2021-10-26 Whatsapp Llc. Rendering online content via secured URL
US11308228B1 (en) 2019-10-24 2022-04-19 Whatsapp Inc. Providing access for online content via secured URL
CN110809035B (zh) * 2019-10-25 2021-12-03 广州查正源电子科技有限公司 一种去中心化防伪数据生成和管理方法及系统
US11522684B2 (en) 2020-09-24 2022-12-06 Capital One Services, Llc Key rotation service
TWI769961B (zh) * 2020-12-11 2022-07-01 熵碼科技股份有限公司 基於物理不可複製函數的密鑰管理系統及其操作方法
US11223489B1 (en) 2021-02-23 2022-01-11 Garantir LLC Advanced security control implementation of proxied cryptographic keys
US11418329B1 (en) * 2021-05-28 2022-08-16 Garantir LLC Shared secret implementation of proxied cryptographic keys
US11218317B1 (en) 2021-05-28 2022-01-04 Garantir LLC Secure enclave implementation of proxied cryptographic keys
US11502827B1 (en) 2021-09-03 2022-11-15 Garantir LLC Exporting remote cryptographic keys

Family Cites Families (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868877A (en) 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US4918728A (en) 1989-08-30 1990-04-17 International Business Machines Corporation Data cryptography operations using control vectors
US5146498A (en) 1991-01-10 1992-09-08 Motorola, Inc. Remote key manipulations for over-the-air re-keying
US5201000A (en) 1991-09-27 1993-04-06 International Business Machines Corporation Method for generating public and private key pairs without using a passphrase
US5495533A (en) 1994-04-29 1996-02-27 International Business Machines Corporation Personal key archive
US5761306A (en) 1996-02-22 1998-06-02 Visa International Service Association Key replacement in a public key cryptosystem
JPH1041933A (ja) 1996-07-22 1998-02-13 Fuji Xerox Co Ltd 復号装置
US6253323B1 (en) 1996-11-01 2001-06-26 Intel Corporation Object-based digital signatures
US6546492B1 (en) 1999-03-26 2003-04-08 Ericsson Inc. System for secure controlled electronic memory updates via networks
JP2000295209A (ja) 1999-04-09 2000-10-20 Ntt Data Corp 鍵管理方法、鍵管理システム及び記録媒体
SE9904094D0 (sv) 1999-11-12 1999-11-12 Protegrity Research & Dev Method for reencryption of a database
US6826609B1 (en) 2000-03-31 2004-11-30 Tumbleweed Communications Corp. Policy enforcement in a secure data file delivery system
DE10025626A1 (de) 2000-05-24 2001-11-29 Deutsche Telekom Ag Verschlüsseln von abzuspeichernden Daten in einem IV-System
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
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
AU2002224119A1 (en) 2000-11-28 2002-06-11 Fujitsu Limited Data terminal for managing ciphered content data and license acquired by software
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7050583B2 (en) 2001-03-29 2006-05-23 Etreppid Technologies, Llc Method and apparatus for streaming data using rotating cryptographic keys
CA2358048A1 (en) 2001-09-25 2003-03-25 Luis Rueda A cryptosystem for data security
US7200747B2 (en) 2001-10-31 2007-04-03 Hewlett-Packard Development Company, L.P. System for ensuring data privacy and user differentiation in a distributed file system
US7243366B2 (en) 2001-11-15 2007-07-10 General Instrument Corporation Key management protocol and authentication system for secure internet protocol rights management architecture
US20020076044A1 (en) 2001-11-16 2002-06-20 Paul Pires Method of and system for encrypting messages, generating encryption keys and producing secure session keys
US7392390B2 (en) 2001-12-12 2008-06-24 Valve Corporation Method and system for binding kerberos-style authenticators to single clients
US7117366B2 (en) 2002-01-08 2006-10-03 International Business Machines Corporation Public key based authentication method for transaction delegation in service-based computing environments
US7376967B1 (en) 2002-01-14 2008-05-20 F5 Networks, Inc. Method and system for performing asynchronous cryptographic operations
JP3897613B2 (ja) 2002-02-27 2007-03-28 株式会社日立製作所 公開鍵暗号方式における登録局サーバの運用方法、登録局サーバ、及びプログラム
US20030188188A1 (en) 2002-03-15 2003-10-02 Microsoft Corporation Time-window-constrained multicast for future delivery multicast
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
US7778606B2 (en) 2002-05-17 2010-08-17 Network Security Technologies, Inc. Method and system for wireless intrusion detection
US20040009815A1 (en) 2002-06-26 2004-01-15 Zotto Banjamin O. Managing access to content
US7620680B1 (en) 2002-08-15 2009-11-17 Microsoft Corporation Fast byzantine paxos
US7877607B2 (en) 2002-08-30 2011-01-25 Hewlett-Packard Development Company, L.P. Tamper-evident data management
FR2844656B1 (fr) 2002-09-18 2005-01-28 France Telecom Procede de signature electronique, programme et serveur pour la mise en oeuvre du procede
US20040107345A1 (en) 2002-10-21 2004-06-03 Brandt David D. System and methodology providing automation security protocols and intrusion detection in an industrial controller environment
US7565419B1 (en) 2002-11-22 2009-07-21 Symantec Operating Corporation Conflict resolution in a peer to peer network
US20040143733A1 (en) 2003-01-16 2004-07-22 Cloverleaf Communication Co. Secure network data storage mediator
GB2400699B (en) 2003-04-17 2006-07-05 Hewlett Packard Development Co Security data provision method and apparatus and data recovery method and system
US7409545B2 (en) * 2003-09-18 2008-08-05 Sun Microsystems, Inc. Ephemeral decryption utilizing binding functions
JP2005151529A (ja) 2003-10-20 2005-06-09 Sony Corp データ伝送方法、データ伝送装置及びデータ受信装置
US7296023B2 (en) 2004-01-15 2007-11-13 International Business Machines Corporation Method and apparatus for persistent real-time collaboration
EP2267624B1 (en) 2004-04-19 2017-07-12 Lumension Security S.A. A generic framework for runtime interception and execution control of interpreted languages
WO2005112335A1 (ja) 2004-05-17 2005-11-24 Mitsubishi Denki Kabushiki Kaisha 量子暗号通信装置
US20060010323A1 (en) 2004-07-07 2006-01-12 Xerox Corporation Method for a repository to provide access to a document, and a repository arranged in accordance with the same method
EP1768303A1 (en) 2004-07-15 2007-03-28 Matsushita Electric Industrial Co., Ltd. Time authentication device, time authentication method, computer program, recording medium, integrated circuit, and time authentication system
US20060021018A1 (en) 2004-07-21 2006-01-26 International Business Machines Corporation Method and system for enabling trust infrastructure support for federated user lifecycle management
US7814314B2 (en) 2004-08-31 2010-10-12 Ntt Docomo, Inc. Revocation of cryptographic digital certificates
WO2006027933A1 (ja) 2004-09-03 2006-03-16 Nec Corporation グループ署名システム、メンバ状態判定装置、グループ署名方法及びメンバ状態判定プログラム
JP2006120089A (ja) 2004-10-25 2006-05-11 Ntt Docomo Inc データ管理システム及びデータ管理方法
JP2006127349A (ja) 2004-11-01 2006-05-18 Ntt Communications Kk デジタル著作権管理装置およびプログラム
JP4714482B2 (ja) 2005-02-28 2011-06-29 株式会社日立製作所 暗号通信システムおよび方法
US7900247B2 (en) 2005-03-14 2011-03-01 Microsoft Corporation Trusted third party authentication for web services
US7774826B1 (en) 2005-03-18 2010-08-10 Novell, Inc. System and method for determining effective policy profiles in a client-server architecture
US8295492B2 (en) 2005-06-27 2012-10-23 Wells Fargo Bank, N.A. Automated key management system
US7784087B2 (en) 2005-08-04 2010-08-24 Toshiba Corporation System and method for securely sharing electronic documents
US8566607B2 (en) 2005-08-26 2013-10-22 International Business Machines Corporation Cryptography methods and apparatus used with a processor
JP4569464B2 (ja) 2005-12-20 2010-10-27 沖電気工業株式会社 マルチホップネットワークにおける鍵更新システム,鍵管理装置,通信端末および鍵情報構築方法
US7912994B2 (en) 2006-01-27 2011-03-22 Apple Inc. Reducing connection time for mass storage class peripheral by internally prefetching file data into local cache in response to connection to host
JP4226606B2 (ja) 2006-02-06 2009-02-18 株式会社コナミデジタルエンタテインメント 通信装置、通信方法、ならびに、プログラム
US7925023B2 (en) * 2006-03-03 2011-04-12 Oracle International Corporation Method and apparatus for managing cryptographic keys
US8064604B2 (en) 2006-04-04 2011-11-22 Oracle International Corporation Method and apparatus for facilitating role-based cryptographic key management for a database
US9002018B2 (en) 2006-05-09 2015-04-07 Sync Up Technologies Corporation Encryption key exchange system and method
US20070283446A1 (en) 2006-06-05 2007-12-06 Kabushiki Kaisha Toshiba System and method for secure handling of scanned documents
WO2008014328A2 (en) 2006-07-25 2008-01-31 Pivx Solutions, Inc. Systems and methods for digitally-signed updates
US8689287B2 (en) 2006-08-17 2014-04-01 Northrop Grumman Systems Corporation Federated credentialing system and method
US20100316219A1 (en) 2007-08-06 2010-12-16 David Boubion Systems and methods for simultaneous integrated multiencrypted rotating key communication
US7953978B2 (en) 2006-09-07 2011-05-31 International Business Machines Corporation Key generation and retrieval using key servers
US8407806B2 (en) 2006-09-29 2013-03-26 Purusharth Agrawal Digital data distribution detection, deterrence and disablement system and method
GB2443244A (en) 2006-10-05 2008-04-30 Hewlett Packard Development Co Authenticated Encryption Method and Apparatus
CN101166259B (zh) * 2006-10-16 2010-11-10 华为技术有限公司 手机电视业务保护方法、系统、手机电视服务器及终端
US8090098B2 (en) 2006-11-13 2012-01-03 Electronics And Telecommunications Research Institute Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher
US8818796B2 (en) 2006-12-12 2014-08-26 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Encoder, decoder and methods for encoding and decoding data segments representing a time-domain data stream
US20080172562A1 (en) 2007-01-12 2008-07-17 Christian Cachin Encryption and authentication of data and for decryption and verification of authenticity of data
JP4890309B2 (ja) 2007-03-19 2012-03-07 株式会社リコー 情報処理装置及び情報保護方法
US8218761B2 (en) 2007-04-06 2012-07-10 Oracle International Corporation Method and apparatus for generating random data-encryption keys
US8112358B2 (en) 2007-06-04 2012-02-07 Qualcomm Atheros, Inc. Authorizing customer premise equipment on a sub-network
US20080319909A1 (en) 2007-06-25 2008-12-25 Perkins George S System and method for managing the lifecycle of encryption keys
MX2010000619A (es) 2007-07-17 2010-05-17 William Howard Peirson Jr Sistemas y procesos para obtener y manejar firmas electronicas para documentos de transacciones de bienes raices.
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
CN101400059B (zh) 2007-09-28 2010-12-08 华为技术有限公司 一种active状态下的密钥更新方法和设备
KR100980831B1 (ko) 2007-12-12 2010-09-10 한국전자통신연구원 일회용 패스워드를 이용한 신뢰성 있는 통신 시스템 및방법
US8495357B2 (en) 2007-12-19 2013-07-23 International Business Machines Corporation Data security policy enforcement
WO2009104873A2 (en) 2008-02-19 2009-08-27 Lg Electronics Inc. Method and device for managing authorization of right object in digital rights management
US8681990B2 (en) 2008-03-28 2014-03-25 International Business Machines Corporation Renewal management for data items
US8225106B2 (en) 2008-04-02 2012-07-17 Protegrity Corporation Differential encryption utilizing trust modes
US8494168B1 (en) 2008-04-28 2013-07-23 Netapp, Inc. Locating cryptographic keys stored in a cache
US8589697B2 (en) 2008-04-30 2013-11-19 Netapp, Inc. Discarding sensitive data from persistent point-in-time image
US20090300356A1 (en) 2008-05-27 2009-12-03 Crandell Jeffrey L Remote storage encryption system
US20100014662A1 (en) 2008-06-19 2010-01-21 Sami Antti Jutila Method, apparatus and computer program product for providing trusted storage of temporary subscriber data
WO2009157142A1 (ja) 2008-06-23 2009-12-30 パナソニック株式会社 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路
US8261320B1 (en) 2008-06-30 2012-09-04 Symantec Corporation Systems and methods for securely managing access to data
GB0811897D0 (en) 2008-06-30 2008-07-30 Steed Darren Intelligent file encapsulation
JP4620146B2 (ja) 2008-07-18 2011-01-26 株式会社東芝 情報処理装置及び認証方法
US8302170B2 (en) 2008-09-22 2012-10-30 Bespoke Innovations S.A.R.L. Method for enhancing network application security
US8804950B1 (en) 2008-09-30 2014-08-12 Juniper Networks, Inc. Methods and apparatus for producing a hash value based on a hash function
JP2010087888A (ja) 2008-09-30 2010-04-15 Onkyo Corp 暗号鍵配信システム、暗号鍵配信サーバ、コンテンツ配信サーバ、及びクライアント
US8699704B2 (en) 2010-01-13 2014-04-15 Entropic Communications, Inc. Secure node admission in a communication network
US9165154B2 (en) 2009-02-16 2015-10-20 Microsoft Technology Licensing, Llc Trusted cloud computing and services framework
US8245037B1 (en) 2009-02-17 2012-08-14 Amazon Technologies, Inc. Encryption key management
US8284945B2 (en) 2009-06-02 2012-10-09 Hewlett-Packard Development Company, L.P. Automatic change of symmetrical encryption key
US9031876B2 (en) 2009-06-19 2015-05-12 Hewlett-Packard Development Company, L.P. Managing keys for encrypted shared documents
US8799322B2 (en) 2009-07-24 2014-08-05 Cisco Technology, Inc. Policy driven cloud storage management and cloud storage policy router
US8904169B2 (en) 2009-09-15 2014-12-02 Symantec Corporation Just in time trust establishment and propagation
US9311465B2 (en) 2009-09-21 2016-04-12 James McNulty Secure information storage and retrieval apparatus and method
IL201351A0 (en) 2009-10-01 2010-05-31 Michael Feldbau Device and method for electronic signature via proxy
DE102009046436A1 (de) 2009-11-05 2011-05-12 Robert Bosch Gmbh Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels
RU2012130355A (ru) 2009-12-18 2014-01-27 Конинклейке Филипс Электроникс Н.В. Управление цифровыми правами с использованием шифрования на основе атрибутов
GB201000288D0 (en) 2010-01-11 2010-02-24 Scentrics Information Security System and method of enforcing a computer policy
US20110213971A1 (en) 2010-03-01 2011-09-01 Nokia Corporation Method and apparatus for providing rights management at file system level
US8667269B2 (en) 2010-04-02 2014-03-04 Suridx, Inc. Efficient, secure, cloud-based identity services
EP2378451B1 (en) 2010-04-19 2018-07-04 Vodafone Holding GmbH User authentication in a tag-based service
US8601263B1 (en) 2010-05-18 2013-12-03 Google Inc. Storing encrypted objects
US20120079289A1 (en) 2010-09-27 2012-03-29 Skymedi Corporation Secure erase system for a solid state non-volatile memory device
US8401186B2 (en) 2010-11-29 2013-03-19 Beijing Z&W Technology Consulting Co., Ltd. Cloud storage data access method, apparatus and system based on OTP
US8565422B2 (en) * 2010-12-03 2013-10-22 Salesforce.Com, Inc. Method and system for enryption key versioning and key rotation in a multi-tenant environment
KR101145766B1 (ko) 2010-12-10 2012-05-16 고려대학교 산학협력단 보안 서비스 제공 시스템 및 방법
US8478858B2 (en) 2011-02-01 2013-07-02 Limelight Networks, Inc. Policy management for content storage in content delivery networks
US8588426B2 (en) 2011-02-21 2013-11-19 Blackberry Limited Methods and apparatus to secure communications in a mobile network
EP2515499B1 (de) * 2011-04-21 2015-10-28 Wibu-Systems AG Verfahren zum Erzeugen eines kryptographischen Schlüssels für ein geschütztes digitales Datenobjekt auf Basis von aktuellen Komponenten eines Rechners
US8850593B2 (en) 2011-05-12 2014-09-30 Hewlett-Packard Development Company, L.P. Data management using a virtual machine-data image
US9076020B2 (en) 2011-05-13 2015-07-07 Microsoft Technology Licensing, Llc Protected mode for mobile communication and other devices
US9049023B2 (en) 2011-05-24 2015-06-02 Zeutro Llc Outsourcing the decryption of functional encryption ciphertexts
US9106633B2 (en) 2011-05-26 2015-08-11 First Data Corporation Systems and methods for authenticating mobile device communications
KR20120134509A (ko) 2011-06-02 2012-12-12 삼성전자주식회사 어플리케이션 개발 시스템에서 디바이스용 어플리케이션을 생성 및 설치하기 위한 장치 및 방법
US8516244B2 (en) 2011-06-10 2013-08-20 Zeutro Llc System, apparatus and method for decentralizing attribute-based encryption information
US20120323990A1 (en) 2011-06-15 2012-12-20 Microsoft Corporation Efficient state reconciliation
US8812844B2 (en) 2011-06-20 2014-08-19 Liaison Technologies, Inc. Luhn validation and data security across multiple active domains
US8751807B2 (en) 2011-06-23 2014-06-10 Azuki Systems Inc. Method and system for secure over-the-top live video delivery
US9009315B2 (en) 2011-07-28 2015-04-14 Telefonaktiebolaget L M Ericsson (Publ) Hierarchical delegation and reservation of lookup keys
US8798273B2 (en) 2011-08-19 2014-08-05 International Business Machines Corporation Extending credential type to group Key Management Interoperability Protocol (KMIP) clients
US8788843B2 (en) 2011-10-28 2014-07-22 LogMeln, Inc. Storing user data in a service provider cloud without exposing user-specific secrets to the service provider
WO2013084054A1 (en) 2011-12-08 2013-06-13 Dark Matter Labs Inc. Key creation and rotation for data encryption
US8639951B2 (en) 2011-12-19 2014-01-28 International Business Machines Corporation States for breakout appliance in a mobile data network
US8954758B2 (en) 2011-12-20 2015-02-10 Nicolas LEOUTSARAKOS Password-less security and protection of online digital assets
US9449183B2 (en) 2012-01-28 2016-09-20 Jianqing Wu Secure file drawer and safe
US9237446B2 (en) 2012-05-24 2016-01-12 Blackberry Limited System and method for controlling access to media content
US9590959B2 (en) 2013-02-12 2017-03-07 Amazon Technologies, Inc. Data security service
WO2014011454A2 (en) 2012-07-09 2014-01-16 Jvl Ventures, Llc Systems, methods, and computer program products for integrating third party services with a mobile wallet
US9137222B2 (en) 2012-10-31 2015-09-15 Vmware, Inc. Crypto proxy for cloud storage services
US8713311B1 (en) 2012-11-07 2014-04-29 Google Inc. Encryption using alternate authentication key
US8997197B2 (en) 2012-12-12 2015-03-31 Citrix Systems, Inc. Encryption-based data access management
US10038679B2 (en) 2012-12-24 2018-07-31 Intel Corporation Centralized secure device pairing
JP6112874B2 (ja) 2013-01-21 2017-04-12 キヤノン株式会社 通信装置、通信装置の制御方法、および、プログラム
US9547771B2 (en) 2013-02-12 2017-01-17 Amazon Technologies, Inc. Policy enforcement with associated data
US9311500B2 (en) * 2013-09-25 2016-04-12 Amazon Technologies, Inc. Data security using request-supplied keys
US9094453B2 (en) 2013-11-06 2015-07-28 Google Technology Holdings LLC Method and apparatus for associating mobile devices using audio signature detection

Also Published As

Publication number Publication date
AU2021229223A1 (en) 2021-10-07
CA3147153A1 (en) 2016-10-06
JP6838799B2 (ja) 2021-03-03
CN107534667B (zh) 2021-07-30
KR20170131577A (ko) 2017-11-29
AU2016243115A1 (en) 2017-10-19
US10469477B2 (en) 2019-11-05
SG11201707796PA (en) 2017-10-30
JP6499310B2 (ja) 2019-04-10
AU2019203153B9 (en) 2021-06-24
US20170006018A1 (en) 2017-01-05
US11374916B2 (en) 2022-06-28
AU2016243115B2 (en) 2019-02-07
US20200099674A1 (en) 2020-03-26
CA2980590A1 (en) 2016-10-06
AU2019203153A1 (en) 2019-05-30
JP2019118135A (ja) 2019-07-18
KR20190062615A (ko) 2019-06-05
JP2018511247A (ja) 2018-04-19
EP3278533A1 (en) 2018-02-07
AU2019203153B2 (en) 2021-06-10
CN107534667A (zh) 2018-01-02
CA2980590C (en) 2022-04-12
WO2016160597A1 (en) 2016-10-06
KR101985187B1 (ko) 2019-06-04
KR102311843B1 (ko) 2021-10-14

Similar Documents

Publication Publication Date Title
CN107534667B (zh) 密钥导出方法和系统以及非暂时性计算机可读存储介质
US20240126895A1 (en) Data security using request-supplied keys
US20200213283A1 (en) Key rotation techniques
US9692757B1 (en) Enhanced authentication for secure communications
US9300464B1 (en) Probabilistic key rotation
US9866392B1 (en) Distributed system web of trust provisioning
US11570158B2 (en) Efficient use of keystreams
US11372993B2 (en) Automatic key rotation
US9397835B1 (en) Web of trust management in a distributed system
US9596263B1 (en) Obfuscation and de-obfuscation of identifiers
US9521000B1 (en) Complete forward access sessions

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination