CN105191207B - 联合密钥管理 - Google Patents
联合密钥管理 Download PDFInfo
- Publication number
- CN105191207B CN105191207B CN201480013039.5A CN201480013039A CN105191207B CN 105191207 B CN105191207 B CN 105191207B CN 201480013039 A CN201480013039 A CN 201480013039A CN 105191207 B CN105191207 B CN 105191207B
- Authority
- CN
- China
- Prior art keywords
- key
- request
- data
- service
- cryptographic
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
一种***使用结合请求提交的信息来确定是否和如何处理所述请求。所述信息可由请求者使用密钥电子地签名,使得处理所述请求的所述***可验证所述请求者具有所述密钥且所述信息是真实的。所述信息可包括识别用于处理所述请求所需的密钥的持有者的信息,其中所述密钥的所述持有者可以是所述***或另一可能的第三方***。可处理对数据解密的请求以确保在提供对所述已解密的数据的访问之前某一时间量经过,从而提供取消此类请求和/或另外减低可能的安全缺口的机会。
Description
相关申请的交叉参考
此申请要求2013年2月12日提交的美国专利申请号13/765,209的优先权,所述专利申请的内容以引用的方式全部并入本文中。此申请为了所有目的以引用的方式并入有以下专利申请的全部公开内容:同此同时提交的标题为“AUTOMATIC KEY ROTATION”的共同待决的美国专利申请号13/764,944,同此同时申请的标题为“DATA SECURITY SERVICE”的共同待决的美国专利申请号13/764,963,同此同时申请的标题为“DATA SECURITY WITH ASECURITY MODULE”的共同待决的美国专利申请号13/765,020,同此同时申请的标题为“POLICY ENFORCEMENT WITH ASSOCIATED DATA”的共同待决的美国专利申请号13/764,995,同此同时申请的标题为“DELAYED DATA ACCESS”的共同待决的美国专利申请号13/765,239,同此同时申请的标题为“DATA SECURITY SERVICE”的共同待决的美国专利申请号13/765,265,以及同此同时申请的标题为“SECURE MANAGEMENT OF INFORMATION USING ASECURITY MODULE”的共同待决的美国专利申请号13/765,283。
附图简述
将参照附图描述根据本公开的各种实施方案,在附图中:
图1示出表示根据各种实施方案的本公开的各方面的说明性图;
图2示出可实施本公开的各方面的环境的说明性示例;
图3示出可实施本公开的各方面的环境的说明性示例和根据至少一个实施方案的环境的各种组件中的示例信息流;
图4示出根据至少一个实施方案的用于存储密文的说明性进程的示例步骤;
图5示出可实施本公开的各方面的环境的说明性示例和根据至少一个实施方案的环境的各种组件中的示例信息流;
图6示出根据至少一个实施方案的用于响应于检索数据的请求的说明性进程的示例步骤;
图7示出可实施本公开的各方面的环境的说明性示例和根据至少一个实施方案的环境的各种组件中的示例信息流;
图8示出根据至少一个实施方案的用于响应于存储数据的请求的说明性进程的示例步骤;
图9示出可实施本公开的各方面的环境的说明性示例和根据至少一个实施方案的环境的各种组件中的示例信息流;
图10示出根据至少一个实施方案的用于响应于检索数据的请求的说明性进程的示例步骤;
图11示出可实施本公开的各方面的环境的说明性示例;
图12示出可实施本公开的各方面的环境的说明性示例和根据至少一个实施方案的环境的各种组件中的示例信息流;
图13示出根据至少一个实施方案的用于响应于检索数据的请求的说明性进程的示例步骤;
图14示出根据至少一个实施方案的用于响应于对数据解密的请求的说明性进程的示例步骤;
图15示出根据至少一个实施方案的用于获得已解密的数据的说明性进程的示例步骤;
图16示出根据至少一个实施方案的示例密码服务的图解表示;
图17示出根据至少一个实施方案的用于配置策略的说明性进程的示例步骤;
图18示出根据至少一个实施方案的用于在施行策略时执行密码操作的说明性进程的示例步骤;
图19示出根据至少一个实施方案的用于对数据加密的进程的说明性示例;
图20示出根据至少一个实施方案的使用安全模块来对数据加密的说明性示例;
图21示出根据至少一个实施方案的使用安全模块来对用以加密数据的密钥加密的说明性示例;
图22示出根据至少一个实施方案的用于使用相关联的数据施行策略的进程的说明性示例;
图23示出根据至少一个实施方案的用于使用相关联的数据和安全模块施行策略的进程的说明性示例;
图24示出根据至少一个实施方案的针对策略的状态图的说明性示例;
图25示出根据至少一个实施方案的针对策略的另一状态图的说明性示例;
图26示出根据至少一个实施方案的用于自动地旋转密钥的进程的说明性示例;
图27示出根据至少一个实施方案的用于自动地旋转密钥的进程的说明性示例;
图28示出根据至少一个实施方案的可用以跟踪密钥使用的数据库的表示的说明性示例;
图29示出可实施各种实施方案的环境的说明性示例;
图30示出根据至少一个实施方案的可与密钥相关联的信息的图解表示;
图31示出根据至少一个实施方案的可结合请求被包括的密钥访问注释的图解表示;
图32示出根据至少一个实施方案的用于处理请求的进程的说明性示例;
图33示出根据至少一个实施方案的用于处理请求的进程的说明性示例;以及
图34图示可实施各种实施方案的环境。
详细描述
在以下说明书中,将描述各种实施方案。出于解释的目的,阐述具体配置和细节以便提供对实施方案的透彻理解。然而,对本领域技术人员还将清楚的是,可在没有具体细节的情况下实践实施方案。此外,可省略或简化众所周知的特征以便不混淆描述的实施方案。
本文中描述和建议的技术允许涉及分布式计算资源的环境中的增强的数据安全。在一个示例中,分布式计算环境包括可通过适当的计算资源实施的一个或多个数据服务。数据服务可允许执行与数据有关的各种操作。作为一个说明性示例,分布式计算环境包括一个或多个数据存储服务。可将电子请求传输至数据存储服务以执行数据存储操作。示例操作是使用数据存储服务存储数据和使用数据存储服务来检索由数据存储服务存储的数据的操作。包括数据存储服务的数据服务还可执行操纵数据的操作。举例来说,在一些实施方案中,数据存储服务能够对数据加密。
本公开的各种实施方案包括分布式计算环境,分布式计算环境包括使用适当的计算资源实施的密码服务。密码服务可由分布式***实施,分布式***接收且响应于执行密码操作(诸如明文的加密和密文的解密)的电子请求。在一些实施方案中,密码服务管理密钥。响应于执行密码操作的请求,密码服务可执行使用所管理的密钥的密码操作。举例来说,密码服务可响应于所接收的请求而选择执行密码操作的适当密钥、执行密码操作并提供密码操作的一个或多个结果。在替代配置中,密码服务可产生包络密钥(例如,用以对具体数据项目加密的会话密钥)且将包络密钥传回至调用服务的密码操作的***。***接着可使用包络密钥来执行密码操作。
在一些实施方案中,密码服务为计算资源服务提供者的多个租户管理密钥。计算资源的租户可以是作为计算资源提供者的客户操作的实体(例如,组织或个人)。客户可远程地和用编程方式配置和操作物理上由计算资源提供者托管的资源。当客户向密码服务提交执行密码操作的请求时(或当实体向密码服务提交请求时),密码服务可为客户选择密码服务管理的密钥来执行密码操作。密码服务管理的密钥可被安全地管理,使得其它用户和/或数据服务无法访问其他人的密钥。实体(例如,用户、客户、服务)无法访问另一实体的密钥可意味着实体没有获得另一人的密钥的授权的方式,和/或实体没有使管理另一人的密钥的***在所述实体的指令下使用密钥的授权的方式。举例来说,密码服务可管理密钥,使得对于客户来说,其它客户既无法访问所述客户的密钥,也不能使密码服务使用所述客户的密钥来执行密码操作。作为另一示例,密码服务可管理密钥,使得其它服务(诸如数据存储服务)不能使密码服务使用一些或所有密钥来执行密码操作。可通过适当的安全措施防止对密钥的未被授权的访问,使得(举例来说)未被授权的访问是困难的或不可能的。困难可因为计算的不实际性和/或因为获得访问需要未被授权的行为(例如,非法的、侵权的和/或另外禁止的,诸如授权凭证的泄露)发生。根据各种实施方案的***可被配置来确保获得对密钥的访问的计算的不实际性的客观测量。此类测量可以是(例如)在使具有计算能力的定义单元(例如,每单位时间的某些操作)的计算机解开对密钥的授权的访问所需的已加密的信息所花的平均时间量方面测量的。
如所指出,密码服务可接收来自各种实体(诸如计算资源提供者的客户)的请求。密码服务还可接收来自计算资源提供者内部的实体的请求。举例来说,在一些实施方案中,由计算资源提供者实施的数据服务可将请求传输至密码服务以使密码服务执行密码操作。作为一个示例,客户可将存储数据对象的请求传输至数据存储服务。请求可指示数据对象在存储时应被加密。数据存储服务可将执行密码操作的请求传达至密码服务。密码操作可以是(例如)由数据存储服务用来对数据对象加密的密钥的加密。密码操作可以是数据对象本身的加密。密码操作可以是产生数据存储服务可用来对数据对象加密的包络密钥。
根据各种实施方案的***实施各种安全措施以提供增强的数据安全。举例来说,在各种实施方案中,密码服务可利用其管理的密钥的方式是有限的。举例来说,在一些实施方案中,密码服务被配置来在适当授权时仅使用对应于客户的密钥。如果使用客户的密钥的请求据称源自客户(即,来自代表客户操作的计算装置),那么密码服务可被配置来要求请求被使用所述客户拥有的适当凭证电子地(数字地)签名。如果使用客户的密钥的请求源自另一数据服务,那么密码服务可被配置来要求数据服务提供客户已向数据服务做出签名的请求的证明。在一些实施方案中,举例来说,数据服务被配置来获得和提供充当已认证的客户请求的证明的令牌。其它安全措施还可建立至包括密码服务的电子环境的配置中。举例来说,在一些实施方案中,密码服务被配置来根据上下文限制密钥使用。作为一个说明性示例,密码服务可被配置来使用密钥以用于对来自客户或来自代表客户行动的数据服务的请求加密。然而,密码服务可被配置来仅使用密钥以用于来自客户(而不是来自另一数据服务)的请求的解密。以此方式,如果数据服务泄露,那么数据服务将不能使密码服务对数据解密。
各种安全措施可建立至密码服务和/或其电子环境中。一些安全措施可根据策略管理,所述策略在一些实施方案中是可配置的。作为一个示例,密码服务可利用使得用户能够配置关于密钥的策略的应用编程接口(API)。关于密钥的策略可以是在由密码服务处理时确定密钥是否可用于某些情形的信息。举例来说,策略可限制能够直接使用密钥的用户的身份和/或***、限制可使用密钥时的时间、限制密钥可用以对其执行密码操作的数据和提供其它限制。策略可提供明确限制(例如,谁不能使用密钥)和/或可提供明确授权(例如,谁可以使用密钥)。另外,策略可具有复杂结构以大体上提供何时可以和不能使用密钥的条件。当接收到使用密钥执行密码操作的请求时,可访问和处理关于密钥的任何策略以确定根据策略请求是否可履行。
本公开的各种实施方案涉及与密钥相关联的策略的施行,其中密钥可由密码服务管理。密码服务的用户(诸如托管密码服务的计算资源提供者的客户)可指定将由密码服务施行的关于密钥的策略。策略可对与谁可以指导密码服务使用密钥、密钥可用以执行的什么操作、可使用密钥的情形和/或其它密钥使用有关的限制和/或特权编码。
在一实施方案中,与密文相关联的数据用于策略的施行。与密文相关联的数据可以是通过使用密码(诸如高级加密标准(AES)的模式)获得的数据。举例来说,对密码算法的输入可包括将被加密的明文和相关联的数据。密码算法可使用密钥来对明文加密且提供认证输出,诸如使得能够确定相关联的数据是否已更改的消息认证码(MAC)。认证输出可至少部分基于相关联的数据和明文而确定。
策略施行可至少部分基于相关联的数据。举例来说,一些策略可要求相关联的数据在已解密的密文(即,明文)被提供之前具有特定值。认证输出(例如,MAC)可用以确保相关联的数据尚未更改,且因此策略的施行被正确地执行。相关联的数据可以是任何合适的数据,且数据本身可由策略明确地或隐含地指定。举例来说,策略可指定仅可在对密文解密的请求由具有用户识别符的用户提交时提供已解密的密文(明文),用户识别符被编码在用以对密文加密的相关联的数据中。以此方式,如果另一用户请求密文的解密(在不冒充具有用户识别符的用户的情况下),请求将因为与策略的冲突而不被履行。作为另一示例,策略可陈述仅可在密文标记有指定的信息时提供已解密的密文。作为又一示例,策略可陈述仅可在密文标记有等于明文的散列、密文的散列或其它指定的值的相关联的数据时提供已解密的密文。一般来说,本公开的实施方案允许在揭示密码算法的输出之前围绕密码算法的输入或输出的充足的策略施行。在一些实施方案中,相关联的数据本身可表示策略。
本公开的各种实施方案还允许围绕密钥使用的策略。举例来说,在一些实施方案中,密钥自动地旋转以防止密钥被使用足够时间以实现可揭示密钥的成功的密码攻击。为了防止密钥被使用足够的时间而导致可能的安全缺口,密码服务或利用密钥的其它***可跟踪用密钥执行的操作。当由密钥识别符(KeyID)识别的密钥用于阈值数目个操作中时,密钥可引退(例如,不可用于未来的加密操作,但可用于未来的解密操作)且用由KeyID识别的新密钥替换。以此方式,新密钥及时地产生。另外,本公开的各种实施方案以对某些实体为透明的方式执行此密钥旋转。作为一个示例,计算资源提供者的客户或其它实体可向密码服务提交使用由KeyID识别的密钥执行操作的请求。密码服务可独立于来自实体的执行密钥旋转的任何请求而执行密钥旋转。从客户或其它实体的角度来看,请求仍可使用指定的KeyID提交,而没有因为密钥已引退且用新密钥替换而必要的任何重新编程或其它重新配置。
在一些实施方案中,支持密码或其它服务的多个***同时访问密钥且用以履行执行密码操作的请求。举例来说,密码服务可利用安全模块的群集,其中至少一些冗余地存储一个或多个密钥。服务可将操作分配给安全模块且维持其自己的计数器。当安全模块使用其自己的分配时(例如,使用密钥执行所分配数目的操作),服务可检查密钥是否仍可用或密钥是否应引退。应指出,安全模块(或其它计算机***)可被配置来使用密钥执行多个类型的操作,诸如加密、解密、电子签名产生和类似物。在一些实施方案中,不是所有类型的操作都会使安全模块使用操作分配的一部分。举例来说,解密操作可不导致使用所分配的操作,而加密操作可导致使用所分配的操作。一般来说,在各种实施方案中,导致新信息(例如,密文和/或电子签名)的产生的密码操作可导致使用所分配的操作,而不导致新信息的产生的密码操作可不导致使用所分配的操作。另外,不同类型的操作可导致执行不同数目的密码操作。作为一个示例,明文的加密可至少部分基于明文的大小而在所需的密码操作的量方面变化。举例来说,使用块密码可导致针对所产生的密文的每一块使用所分配的密码操作。
如果对于密钥可用的操作的总数仍可用,那么服务可将额外操作分配给安全模块。如果密钥应引退(例如,因为计数器如此指示),那么服务可使冗余地存储密钥的安全模块引退密钥且用新密钥替换所述密钥,其中新密钥可由一个安全模块产生或另外获得且被安全地传递至剩余安全模块。在一些实施方案中,其它安全模块替代地用完其在较旧密钥下的所分配的操作。如果安全模块故障、变得不可操作、有意地离线(例如,用于维护)和/或另外变得不可用于执行密码操作而不提供关于其已使用一个或多个密钥执行了多少操作的信息,那么服务可将不可用性当作使用了其分配。举例来说,如果安全模块针对密钥集中的每一密钥被分配一百万个操作,且安全模块变得不可操作,那么服务可像安全模块针对密钥集中的每一者执行了一百万个操作一样操作。举例来说,服务可将额外操作分配给安全模块或另一安全模块,从而相应地调整计数器,和/或如果对应计数器指示替换是必要的话,那么可使密钥中的一者或多者引退和被替换。
本公开的实施方案还通过注释和/或联合密钥管理技术允许增强的数据安全。在一些实施方案中,向服务(诸如密码服务或其它数据服务)提交的请求可包括注释(也称作密钥访问注释)或另外与注释相关联,注释含有实现策略的施行的信息。在一实施方案中,密钥访问注释必须在对应请求可被履行之前满足一个或多个条件。在一些实施方案中,一个或多个条件包含使用与KeyID相关联的密钥电子地签名注释的条件,其中KeyID识别可用于履行请求的不同密钥。有效电子签名的存在可不仅指示注释中的信息尚未修改,而且也证明拥有用以产生电子签名的密钥。
在一些实施方案中,密钥访问注释可包括可用以履行请求的密钥的持有者的识别符。密钥的持有者可以是托管接收请求的***的实体或可以是另一***,诸如第三方的***。接收请求的***可检测识别符的存在,且在适当时根据识别符处理请求本身或将请求传输至所识别的密钥持有者以用于处理。接收请求的实体和/或密钥持有者可验证诸如上文和本文中其它地方描述的用于策略施行的电子签名。举例来说,如果电子签名无效,那么请求的接收者可不将请求传递至在注释中识别的密钥持有者。类似地,如果确定电子签名是无效的,那么密钥持有者可拒绝请求。接收请求的实体和密钥持有者可验证相同的电子签名,或在一些实施方案中,请求包括至少两个签名,一个用于请求的接收者且一个用于密钥持有者。每一签名可使用对应于希望验证签名的实体的密钥产生。
本公开的实施方案还通过在某些类型的请求被履行之前的被迫延迟来允许增强的数据安全。举例来说,在一些实施方案中,某些数据的解密在响应于对应请求提供明文之前需要延迟。在延迟期间,可采取各种动作来通知待决请求的关注方对信息解密。以此方式,向关注方(例如,组织的合规官员或被授权允许明文被提供的其它人)提供在提供明文之前取消请求的机会。在各种实施方案中,请求容易被取消。举例来说,对取消请求的要求可不如对履行请求的要求严格。以此方式,未被授权的数据泄露可易于检测和/或防止。
图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中执行的***可向诸如上文结合图3描述的单独的认证服务提交(例如,经由适当地配置的API调用)认证请求。类似地,执行其自己的认证的数据服务前端可向由数据服务前端实施的认证模块提交认证请求。一般来说,认证请求可根据各种实施方案用任何合适的方式提交。
在提交认证请求后,通过认证请求提交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请求,如上文所描述,拒绝请求可根据各种实施方案用各种方式执行。
如果确定608 GET请求是真实的,那么进程600可包括从存储装置检索密文。从存储装置检索612密文可用任何合适的方式执行。举例来说,参照上文结合图5论述的环境500,数据服务前端可向数据服务后端存储***提交对密文的请求,且作为响应可接收密文。一般来说,可用任何合适的方式从存储装置获得密文。在接收密文后,进程600可包括执行614与对密文解密相关的一个或多个操作。举例来说,在一实施方案中,数据存储服务可将执行与对密文解密相关的一个或多个密码操作614的请求发送至密码服务。在一个示例配置中,数据服务可将API调用发送至密码服务,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示出可执行以将数据对象存储在数据存储***(诸如上文结合图7描述的数据服务后端存储***)中的进程800的说明性示例。进程800可由任何合适的***(诸如由上文结合图7描述的数据服务前端***)执行。在一实施方案中,进程800包括接收802对数据对象的PUT请求。接收对数据对象的PUT请求可用诸如上文描述的任何合适的方式执行。应指出,数据对象可结合请求接收或可从另一服务接收。举例来说,请求可包括数据对象的识别符,数据对象可使用识别符从另一服务获得。与上文描述的其它进程一样,在一实施方案中,进程800包括提交804认证请求和接收806认证响应。接收806的认证响应可用以确定808PUT请求是否为真实的请求。如果确定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认证响应。提交认证请求和接收认证响应可用诸如上文描述的任何合适的方式执行。认证响应可用以确定1008 GET请求是否真实。如果确定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(例如)可由上文结合图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大体上可适合于数据的解密。解密请求可用诸如上文描述的任何合适的方式(例如,经由适当地配置的API调用)接收1402。另外,解密请求可由适于进程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可包括拒绝1410诸如上文描述的GET请求。然而,如果确定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。作为另一示例,执行进程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,Data,[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)可用以使密码服务电子地撕碎指定的KeyID识别的密钥或密钥族。电子撕碎可包括使密钥不再可访问。举例来说,使用Shred(KeyID)请求可使密码***命令一个或多个硬件装置对指定的KeyID识别的一个或多个密钥执行安全擦除操作。一般来说,KeyID识别的密钥可用任何合适的方式电子地撕碎,诸如通过用其它数据(例如,一连串零或一或随机字符串)重写对密钥编码的数据。如果密钥存储成在一密钥下加密,那么可电子地撕碎用以对密钥加密的所述密钥,从而导致丢失对密钥的访问。在一些实施方案中,撕碎操作可导致解密操作在未来某一确定的点指示被撕碎的KeyID失效。可使用安全地且永久地毁坏对密钥的任何可能的访问的其它方式。
在一实施方案中,ReKey(Ciphertext,OldKeyID,NewKeyID)请求可用以使密码服务在不同密钥下对密文加密。当密码服务接收ReKey(Ciphertext,OldKeyID,NewKeyID)请求时,其可使用OldKeyID识别的密钥来对指定的密文解密,且接着使用NewKeyID识别的密钥来对已解密的密文加密。如果NewKeyID识别的密钥尚不存在,那么密码服务可产生将要使用的密钥且使所产生的密钥与诸如结合上文描述的Create(KeyID)请求描述的指定的NewKeyID相关联。在一些实施方案中,ReKey操作可操作以使数据可在密码服务的隔离的实例之间传送。在一些实施方案中,策略可准许对密文执行rekey操作但可能不准许同一请求者直接对密文解密。在一些实施方案中,ReKey可支持将密文从第一账户内的第一KeyID识别的密钥进行ReKey为第二账户内的KeyID识别的密钥。
类似地,前端***可实施策略配置API,在一实施方案中,策略配置API使用户能够提交对配置用于执行密码操作和其它策略相关的操作的策略的请求。在各种实施方案中,策略可与密钥、密钥群、账户、用户和其它逻辑实体相关联。下文提供可经由策略配置API配置的示例策略。在一实施方案中,密码服务策略配置API包括以下请求:
SetKeyPolicy(KeyID,Policy)
Suspend(KeyID,Public Key)
Reinstate(KeyID,Private Key)
在一实施方案中,SetKeyPolicy(KeyID,Policy)请求可用以使密码服务存储关于KeyID识别的密钥(或密钥族)的策略。策略可以是确定所请求的密码操作是否可在特定环境中执行的信息。策略可用声明性访问控制策略语言编码,诸如可扩展访问控制标记语言(XACML)、企业隐私授权语言(EPAL)、亚马逊网络服务访问策略语言、微软SecPol或对执行密码操作必须满足的一个或多个条件编码的任何合适的方式。策略可定义可执行什么操作、何时可执行操作、哪些实体可进行对将被执行的操作的授权的请求、对于授权特定请求需要什么信息和类似物。另外,除了上文给出的示例之外或替代于上文给出的示例,还可使用访问控制列表、与用户相关联的特权和/或操作位掩码来定义和/或施行策略。示例策略出现在下文。
在一些实施方案中,密码服务可(例如)使用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或结合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可由密码服务验证。在又其它实施方案中,密码服务可接收硬件证明产生的信息以作为操作的部分。在一些实施方案中,密码服务可操作以关于内容提供数字权利管理服务。
如上文所论述,本公开的各种实施方案允许充足的策略施行和可配置性。许多密码***提供认证的加密操作模式,其中可执行密码操作以同时提供对数据的机密性、完整性和真实性保证。机密性可通过明文数据的加密而提供。真实性可针对明文和针对可保持未加密的相关联的数据两者提供。借助此类***,对密文或相关联的数据的改变可导致密文的解密失效。
在一实施方案中,与明文相关联的数据用于策略的施行。图19相应地示出根据各种实施方案的进程1900的说明性示例,进程1900用于以允许使用相关联的数据的策略施行的方式对数据加密。进程1900可由任何合适的***(诸如密码服务和/或安全模块)执行。如所示,进程1900包括获得1902明文。明文可用任何合适的方式获得。举例来说,在诸如上文描述的服务提供者环境中,用户(例如,客户)可提供将被加密的数据。作为另一示例,获得1902可包括产生密钥(将被加密的)和/或获得将被加密的密钥。可诸如上文所描述而使用密钥。
如所示出,进程1900包括获得相关联的数据。相关联的数据可以是与明文相关联或将与明文相关联的任何数据。相关联的数据可以是一个或多个策略至少部分所基于的任何数据。示例出现在下文。另外,相关联的数据可用任何合适的方式编码,诸如可扩展标记语言(XML)、JavaScript对象表示法(JSON)、抽象语法表示法1(ASN1)、YAML不是标记语言(也称作另一种标记语言)(YAML)或另一结构化可扩展数据格式。在一实施方案中,进程1900包括至少部分基于明文和相关联的数据产生1906消息认证码(MAC)和密文。MAC和密文的组合(诸如AES-GCM密码的输出)可称作认证的密文。产生MAC和密文可用任何合适的方式执行且MAC和密文的产生可取决于使用哪一/哪些密码***。举例来说,在一实施方案中,高级加密标准(AES)支持在CCM模式或GCM模式中操作时的相关联的认证的数据(AAD),其中CCM表示CBC-MAC计数器,GCM表示伽罗瓦/计数器模式,且CBC表示密码块链。在CCM或GCM模式中使用AES,可提供明文和相关联的数据作为输入以获得明文和相关联的数据两者的密文和MAC的串接对的输出。应指出,尽管出于说明的目的而提供AES-CCM和AES-GCM,但可使用其它认证的加密方案且可相应地修改本文中明确地描述的技术。举例来说,本公开的技术一般来说适用于支持认证的加密模式的对称块密码。另外,根据本公开的各种实施方案将其它加密方案与MAC功能组合。合适的加密方案和MAC功能组合包括(但不限于)加密方案在所选择的明文攻击下在语义上是安全的且MAC功能在所选择的消息攻击下不可伪造的组合。另外,尽管本公开的各种实施方案利用导致对密文和MAC两者编码的单一输出的密文,但MAC和密文可使用不同的密码产生。另外,尽管MAC用作说明性示例,但也可使用一般来说不称作MAC的其它值,诸如一般散列值、校验和、签名和/或可替代MAC使用的其它值。因此,具有支持相关联的数据的自动加密模式的密码包括使用除了MAC之外或作为MAC的替代的其它密码原语的密码。
另外,产生MAC和密文可根据各种实施方案用各种方式执行。举例来说,在一实施方案中,诸如上文所描述将明文提供给安全模块。安全模块可被配置来产生MAC。在其它实施方案中,电子环境的除了安全模块之外的组件产生MAC和密文。在此类实施方案中,安全模块可用以对密钥解密,所述密钥在明文形式时用以产生MAC和密文。一旦产生,就可提供1908 MAC和密文(即,认证的密文)。在一些实施方案中,还提供相关联的数据。可在使用进程1900和其变化的各种实施方式中用各种方式提供MAC和密文。举例来说,在一些实施方案中,将MAC和密文诸如上文所描述提供给用户,或诸如上文所描述提供给数据服务,以用于由数据服务处理。另外,如所指出,尽管可提供相关联的数据,但在各种实施方案中,不提供相关联的数据和/或其一般来说以明文形式坚持。作为示例,如果不可独立地获得相关联的数据,那么可不提供相关联的数据。作为说明性示例,如果相关联的数据是装置的持久识别符(例如,存储装置的识别符),那么可在稍后时间策略施行需要时和/或出于其它目的获得相关联的数据。
如上文所论述,本公开的各种实施方案利用安全模块来提供增强的数据安全。图20提供根据各种实施方案的进程2000的说明性示例,进程2000可用以用允许新颖的和充足的策略施行的方式对数据加密。进程2000可由任何合适的***(诸如密码服务和/或安全模块)执行。如图20中所示,进程2000包括获得明文和相关联的数据。如上文,明文和相关联的数据可在单一通信中、在单独通信中和/或从单独实体接收。一旦获得,将明文、相关联的数据和KeyID提供2004至安全模块。安全模块可诸如上文所描述。另外,安全模块可从参与电子环境(诸如支持密码服务的环境,诸如上文所示)的多个安全模块中选择。KeyID可如上文所描述且可在向密码服务提交的对明文加密的请求中指定或可另外指定。另外,在进程2000的替代实施方案中,可不指定KeyID。举例来说,在一些实施方案中,安全模块可选择KeyID和/或可产生稍后被指派KeyID的密钥。在此类实施方案中,进程2000可被修改以提供来自安全模块的KeyID。
回到所示的实施方案,进程2000可包括从安全模块接收2006密文和MAC。密文可在KeyID识别的密钥下加密。MAC可以是对明文和相关联的数据两者的组合的MAC,使得对密文或相关联的数据的改变将导致对MAC的检查失效。如上文,应指出变化包括其中MAC至少部分基于相关联的数据但独立于明文而产生的变化。另外,如上文所论述,密文和MAC可一起提供(诸如从使用AES-CCM或AES-GCM密码的输出)或可单独地提供。一旦从安全模块接收,将MAC和密文提供2008给适当的实体,诸如密码服务或结合密码服务操作的数据服务的用户,诸如上文所描述。
如上文所论述,安全模块可用各种方式使用以增强对数据的保护。如上文所论述,在一些实施方案中,安全模块用以对密钥加密,所述密钥(以其明文形式)被使用来对其它数据加密。图21相应地示出可用于此类情形的进程2100的说明性示例。进程2100可由任何合适的***(诸如密码服务和/或安全模块)执行。在一实施方案中,进程2100包括获得2102明文和相关联的数据,诸如上文所描述。如所示,进程2100包括将已加密的密钥、相关联的数据和KeyID提供2104至安全模块,KeyID识别可由安全模块用来对已加密的密钥解密的密钥。因此,进程2100包括从使用由KeyID识别的密钥来对已加密的密钥解密的安全模块获得已解密的密钥。一旦获得,密钥可用以对明文加密,从而计算2108密文和MAC。密文可以是明文的加密且MAC可针对(即,至少部分基于)相关联的数据或相关联的数据和明文两者,诸如上文所描述。一旦被加密,进程2100可包括提供2110诸如上文描述的MAC和密文。另外,进程还可包括丢失2112对已解密的密钥的访问,其可用任何合适的方式执行,诸如通过安全擦除操作、重写存储已解密的密钥的存储器、移除存储密钥的易失性存储器的电力和/或***执行进程2100的任何其它方式(例如,密码***中不存在安全模块)。尽管并列地说明,但提供相关联的数据、MAC和/或密文与丢失对密钥的访问可按顺序执行,执行的次序可在各种实施方案中变化。
图22示出根据各种实施方案的可用以使用相关联的数据施行策略的进程2200的说明性示例。进程2200可由任何合适的***(诸如密码服务和/或安全模块)执行。在一实施方案中,进程2200包括接收2202执行操作的请求。请求可以是向处理请求的服务提交的任何请求。在一实施方案中,请求是向密码服务提交的执行密码操作的请求。响应于接收2202请求,进程2200可包括获得2204密文、MAC和预期的相关联的数据。获得2204密文、MAC和预期的相关联的数据可用任何合适的方式执行。举例来说,在一些实施方案中,在请求中接收密文、MAC和预期的相关联的数据中的一者或多者。可在单独请求或其它通信中接收和/或从数据存储(诸如本地数据存储)访问密文、MAC和预期的相关联的数据中的两者或两者以上。举例来说,在一实施方案中,接收密文和MAC作为串接对(可能从AES-GCM或AES-CCM密码的输出产生)以作为请求的部分。预期的相关联的数据也可以是请求的部分或可用其它方式识别。举例来说,可直接地或间接地使用请求者的身份来确定相关联的数据。作为特定示例,如果请求是关于存储在存储装置中的数据执行操作,那么获得2204相关联的数据可包括获得数据存储装置的识别符。识别符可明确地识别(例如,作为请求的部分)或隐含地识别(例如,因为其它信息可用以确定数据存储在数据存储装置中)。相关联的数据可以或可另外至少部分基于数据存储装置的识别符。如上文所论述,相关联的数据可在各种实施方案中极大地变化。
在一实施方案中,进程2200包括产生2206可用以确定预期的相关联的数据的真实性的参考MAC。举例来说,密文、相关联的数据和适当密钥(其可在请求中识别或可另外确定)用以产生2206参考MAC。产生MAC可用任何合适的方式(诸如通过使用用以获得密文的相同密码)执行。可确定2208参考MAC与所获得的MAC是否匹配。举例来说,在许多密码***中,MAC在其相等时匹配,但预期在各种实施方案中可使用其它类型的匹配。如果确定2208参考MAC与所获得的MAC匹配,那么在一实施方案中,进程2200包括访问2210至少部分基于相关联的数据的策略信息。访问2210策略信息可包括访问至少部分基于与KeyID相关联的一个或多个策略的来自远程或本地数据存储的一个或多个策略(即,一个或多个策略的电子表示),KeyID用以产生参考MAC和/或执行另一密码操作。
接着可至少部分基于所访问的策略信息确定2212策略是否允许执行所请求的操作(例如,策略是否允许履行请求)。确定策略是否允许执行所请求的操作可包括确定密文是否标记有所访问的策略信息指定的相关联的数据。另外,尽管未说明,但不是至少部分基于相关联的数据的策略信息(例如,基于除了相关联的数据以外的信息的策略)也可用来确定策略是否允许执行操作。如果确定2212策略允许操作,那么进程2200可包括执行2214操作。然而,如果确定2212策略不允许操作,和/或如果确定2208参考MAC与所获得的MAC不匹配,那么进程2200可包括拒绝2216请求,诸如上文所描述。
各种策略可使用上文描述的技术施行。举例来说,如所指出,策略可与密钥相关联,使得当被施行时,策略确定对于密钥可做什么和/或不能做什么。作为一个示例,策略可陈述数据服务可仅针对策略指定的某些类型的操作使用密钥(或,替代地,某些操作对于数据服务是禁止的)。策略还可指定使用中的条件、使用时间、IP地址、可被加密的内容、可被解密的内容和类似物。作为一个说明性示例,一个策略可指定仅在解密的散列与特定值匹配时允许提供解密的结果。因此,如果明文的散列与策略不一致,那么施行策略的密码或其它服务将不提供明文。作为另一示例,策略可指定仅在密文标记有等于指定值或以指定值开始的相关联的数据时允许密文的解密。作为又一示例,策略可指定仅在密文标记有用相关联的数据编码的存储装置的识别符时允许密文的解密。
一般来说,策略可指定至少部分基于与密文相关联的数据(即,认证的相关联的数据)的值的限制和/特权。一些额外策略包括指定仅在密文标记有请求解密的计算机的识别符、密文标记有安装(操作地连接)至请求解密的计算机的存储容量的识别符和/或密文标记有其它计算资源的识别符时允许解密的策略。计算资源也可以是由施行策略的计算资源提供者托管的计算资源。其它策略视为在本公开的范围内,诸如至少部分基于在向执行密码算法的实体之外的实体揭示(例如,向施行策略的密码服务之外的用户和/或其它数据服务揭示)密码算法的输出之前的密码算法的输入和/或输出的策略。如上文所指出,策略还可至少部分基于相关联的数据指定对于何时可修改策略的条件。
图23示出根据各种实施方案的进程2300的说明性示例,进程2300是上文结合图22论述的进程2200的变化,其中变化说明在施行策略时使用安全模块。在一实施方案中,进程2300包括接收2302对密文解密的请求,密文可以是已加密的密钥或其它已加密的数据。进程2300还包括获得2304密文、MAC和预期的相关联的数据,诸如上文结合图22所描述。如图23中所示,在一实施方案中,进程2300包括使用2306安全模块来对密文解密。使用2306安全模块还可包括从多个安全模块中选择可操作以对密文解密的安全模块,从而产生明文。还可使用2308安全模块以至少部分基于明文和预期的相关联的数据产生参考MAC。应指出,尽管在图23中示出为两个单独步骤,但使用安全模块来对密文解密和产生参考MAC可在单一操作(例如,至安全模块的单一请求)中执行。一旦从安全模块获得,进程2300包括确定2310参考MAC与所获得的MAC是否匹配,诸如上文结合图22所描述。然而,应指出,在一些实施方案中,进程2300可被修改,使得安全模块被提供参考MAC且确定参考MAC与所获得的MAC是否匹配。在此变化中,安全模块可提供指示是否存在匹配的响应。
回到图23中所示的实施方案,如果确定2310参考MAC与所获得的MAC匹配,那么进程2300包括访问2312至少部分基于相关联的数据的策略信息,诸如上文结合图22所描述。而且,如上文,尽管未如此说明,但也可访问关于不是至少部分基于相关联的数据的策略的额外策略信息。可确定2314策略是否允许操作。如果确定2314策略允许操作,那么可提供2316明文。如上文结合图22,如果确定2314策略不允许操作和/或如果确定参考MAC与所获得的MAC不匹配,那么进程可包括拒绝2318请求,诸如上文所描述。
尽管本公开的各种实施方案是使用密码的认证模式的相关联的数据说明的,但其它实施方案也视为在本公开的范围内。举例来说,本公开的实施方案一般来说适用于可用密文验证以施行策略的数据的使用。作为说明性示例,策略的表示可与第一明文组合以产生新明文(例如,包括明文和策略的新明文)。新明文可使用合适的密码(诸如AES)来加密以产生密文。当接收到对密文解密的请求时,接收请求的***可对密文解密,从新明文提取策略,且检查策略是否允许提供第一明文。如果策略不允许提供第一明文,那么可拒绝请求。可代替或除了上文结合密码的认证模式的相关联的数据论述的实施方案之外使用此类实施方案。
本公开的各种实施方案还允许指定审核如何发生的条件的关于密钥的策略。举例来说,关于密钥的策略可指定对密钥的审核等级,其中审核等级是确定密码服务如何审核密钥使用的密码服务的参数。审核可由任何合适的***执行。举例来说,参看图16,请求处理单元可与审核***(未示出)通信,审核***可以是密码服务的部分或与密码服务分离。当事件结合密码操作的执行发生时,可向记载信息的审核***提供相关信息。事件可以是执行密码操作的请求和/或指示是否执行所请求的操作的信息。举例来说,如果用户成功地请求密码服务执行解密操作,那么密码服务可将允许请求和操作被执行的信息提供给审核***。管理访问事件和一般来说,密码服务的任何交互或操作可记载有可识别事件中涉及的实体的相关信息、描述事件的信息、事件的时间戳和/或其它信息。
在一实施方案中,审核等级包括高耐久性等级和低耐久性等级。对于低耐久性等级,对密钥的审核操作可由密码服务最大努力地执行。在根据低耐久性等级审核的情况下,在正常操作期间,审核所有操作,但在密码服务的组件失效的事件中,一些审核数据可丢失。在根据高耐久性等级审核的情况下,在揭示密码操作的结果之前,获得操作已发生的审核记录已耐久地存入至存储器的保证。因为需要确认,高耐久性审核模式中的操作比低耐久性审核模式中的操作慢。审核记录已耐久地存入至存储器的保证可包括来自用以存储审核记录的一个或多个其它***的确认。因此,参看先前段落,密码服务可延迟向用户提供明文,直到审核***确认导致明文的解密的记录已耐久地存入至存储器。耐久地存入至存储器可意味着数据已根据获得耐久性的一个或多个条件存储。举例来说,当数据写入至非易失性存储器和/或数据已冗余地存储在多个数据存储装置中(例如,使用擦除编码或其它冗余编码方案)时,数据可耐久地存入至存储器。
在一实施方案中,密码服务使用低耐久性和高耐久性审核等级的子等级。举例来说,在一实施方案中,每一等级对应于两个单独的状态:不可变状态和可变状态。状态不可变还是不可变可确定状态之间的转变如何发生和是否发生。举例来说,使用审核耐久性的说明性示例,关于密钥的策略可能够在低耐久性可变与高耐久性可变之间、从低耐久性可变至低耐久性不可变和从高耐久性可变至高耐久性不可变改变。然而,密码服务可被配置,使得一旦用于密钥的策略处于低耐久性不可变或高耐久性不可变,那么禁止转变。因此,一旦用于密钥的策略处于不可变状态,那么策略不能改变。
图24示出此***的状态图的说明性示例,***一般化为可接通(施行)和切断(未施行)的策略。如图24中所示,用于密钥的策略可接通或切断。当接通且不可变时,策略可改变为接通且不可变(不可改变)或切断且可变(可改变)。类似地,当策略切断但可变时,策略可改变为接通但可变或切断且不可变。应指出,也可获得其它转变,诸如策略从切断但可变至接通且不可变的直接转变。另外,不是所示出的所有转变都可获得。举例来说,在一些情况下,密钥可能不具有切断且不可变状态。
图25示出一般状态图,其示出***可如何允许适用于密钥的各种策略中的转变。在此示例中,示出三个策略,策略A、策略B和策略C。这些策略中的每一者具有可变和不可变状态,且示出了状态之间可允许的转变和策略。举例来说,不允许来自不可变状态的转变。然而,可变状态中的策略可改变为可变状态中的另一策略。举例来说,关于密钥的策略可从策略A(可变)改变为策略B(可变)。如关于策略B所示,可存在对多个策略可用的转变。举例来说,策略可从策略B改变为策略C或策略A。与图24一样,可包括其它转变和策略且并非所有策略都可具有所有状态。另外,尽管各种示例示出具有不可变和可变状态的策略,但策略可具有两个以上状态,其中每一状态对应于可以或不能执行的一组动作。举例来说,半可变状态可允许在可变状态下将获得的一些但不是所有转变。
如所指出,策略可用于除了审核之外的各种操作。举例来说,关于策略转变的以上限制可适用于密钥可撕碎性。举例来说,策略可指示密钥是否可被撕碎(不能撤回地丢失)。策略可具有四个状态:可撕碎-可变;可撕碎-不可变;不可撕碎-可变;和不可撕碎-不可变。如上文,当在不可变状态中时,策略不可改变。作为另一示例,关于密钥是否可从安全模块导出的策略还可具有此四状态策略。
策略还可与密钥相关联以防止密钥使用实现安全攻击的弱点。举例来说,在一实施方案中,一个或多个密钥与自动旋转策略相关联,自动旋转策略使密钥在某一使用量后被引退(例如,被标记以便不再可用于加密)。此策略可以是用户可配置的(例如,客户可配置的)策略,用户(例如,客户)激活所述策略和/或提供所述策略的参数。策略还可以是适用于较大密钥集(诸如包括由密码服务代表其客户管理的至少所有密钥的集合)的总策略。以此方式,密钥可在其被使用足够时间而实现密码攻击之前引退,在密码攻击中知道足够的明文和对应的密文提供确定密钥的能力。
图26示出根据各种实施方案的可用以按适当间隔旋转密钥的进程2600的说明性示例。进程2600可由任何合适的装置(诸如上文论述的安全模块)执行。在一实施方案中,进程2600包括接收2602使用KeyID识别的密钥执行密码操作的请求。请求可以是从诸如上文描述的密码服务请求处理器接收的请求。请求可以是对数据加密或解密,或一般来说,使用KeyID识别的密钥执行任何密码操作(诸如产生电子签名、另一密钥或至少部分基于密钥的其它信息)的请求。在接收2602请求后,进程2600包括执行2604所请求的操作。执行所请求的操作可包括额外操作,诸如选择执行操作的密钥的适当版本。举例来说,如果操作是加密,那么标记为活跃的密钥可用以加密。如果操作是解密,那么执行操作可包括选择由KeyID识别的密钥的适当版本以解密,其在各种实施方案中是最初用以对数据加密的密钥。密钥可通过各种方式选择。举例来说,在一些实施方案中,密文可包括识别版本、序列号、日期或实现密钥的选择的其它信息的元数据。在一些实施方案中,可尝试每一可能的密钥直到数据被恰当地解密为止,其中恰当的解密可由与密文相关联的明文输出的散列或由相关联的数据的正确性确定。
一旦已执行2604密码操作,进程2600包括更新2606用于KeyID识别的活跃密钥的密钥使用计数器。举例来说,如果密码操作导致密钥的单次使用,那么计数器可增加一。类似地,如果密码操作导致密钥的N次(N是正整数)使用,那么计数器可增加N。可确定2608计数器是否超过阈值。阈值可以是分配给KeyID识别的密钥的版本的使用数目。阈值可由密码服务的管理对密钥的操作的分配的组件提供。阈值还可以是操作的默认数目。如果确定2608计数器超过阈值,那么在一实施方案中,进程2600包括获得2610新密钥。获得新密钥可用任何合适的方式执行。举例来说,如果进程2600由安全模块执行,那么获得新密钥可包括产生新密钥或从另一安全模块获得新密钥,其可由密码服务的操作者策划。将密钥从一个安全模块传递至另一安全模块可通过用提供和接收安全模块可访问的密钥对密钥加密而执行。执行进程2600的安全模块可接收已加密的密钥且对已加密的密钥解密。还可使用公共密钥密钥交换技术。
一旦已获得新密钥,在一实施方案中,进程2600可包括将当前活跃密钥标记2612为引退的。将当前活跃密钥标记为引退的可用任何合适的方式(诸如通过改变安全模块维护的数据库中的适当值)执行。另外,进程2600可包括使新密钥与KeyID相关联2614且将新密钥标记为活跃的,诸如通过更新安全模块维护的数据库。尽管未说明,但进程2600还可包括提供新密钥以供另一安全模块使用。如虚线所指示,在新密钥准备好供执行进程2600的安全模块(或其它***)使用之后的某一时刻,进程可包括接收2602执行另一密码操作的请求且进程2600可如上文所论述进行。另外,如果确定2608计数器不超过阈值,那么进程2600可结束和/或一旦接收2602另一请求就重复。
图27示出根据各种实施方案的进程2700的说明性示例,进程2700可用以在密码服务或其它环境中执行密钥的自动旋转。进程2700可由任何合适的***(诸如密码服务的根据各种实施方案跟踪密钥使用和策划密钥旋转的组件)执行。如图27所示,进程2700包括将对密钥的若干密钥操作(例如,对多个密钥中的每一者的若干操作)分配2702给一个或多个安全模块。作为特定示例,在利用五个安全模块来冗余地存储/使用密钥集的环境中,每一安全模块对于其管理的密钥中的每一者可被分配一百万个操作。被分配操作的安全模块(或其它计算机***)可托管在多个数据中心中的相同的数据中心中。举例来说,在一些实施方案中,计算资源提供者利用多个地理区域中的多个数据中心中的安全模块来实施地理上分布式密码或其它服务。
然而,应指出,可对一些但不是所有密钥进行分配,且对每一密钥的分配可能不相等。分配密钥操作可包括将分配通知提供给已被分配密钥操作的每一安全模块。通知可指定已对每一密钥分配的数目,或在一些实施方案中,至安全模块的通知可指示安全模块重新初始化预编程至安全模块中的计数器或将预编程的数目添加至计数器。在将密钥操作分配2702给安全模块后,可更新用于已对其分配操作的密钥中的每一者的密钥使用计数器。继续以上具体示例,如果五个安全模块中的每一者对于特定KeyID识别的密钥已被分配一百万个操作,那么用于KeyID的计数器可增加(向上或向下,这取决于计数是向上还是向下执行的)五百万。
在已被分配密钥操作后,安全模块可执行诸如上文描述的密码操作。安全模块可维持其自己的计数器,所述计数器至少部分基于已进行的分配。在以上示例的情况下,如果安全模块对于特定KeyID识别的密钥已被分配一百万个操作,那么安全模块可将计数器设置为一百万(或一百万以上,如果现有计数器具有剩余操作的话)。在使用密钥执行密码操作后,安全模块可相应地增加其自己的计数器。
在某一时刻,可检测2706一个或多个KeyID的分配耗尽事件。耗尽事件可以是一个或多个安全模块丢失或耗尽其分配的任何事件。作为一个示例,安全模块可使用其对特定KeyID识别的密钥的操作的分配,且检测耗尽事件可包括从安全模块接收安全模块已通过执行对应数目的操作而耗尽其对KeyID的分配(或在耗尽其分配的某一预定阈值内或另外被预测将很快耗尽其分配)的通知。作为另一示例,在一些实施方案中,安全模块被配置来在某些事件后(诸如故障,检测到侵入或其它窜改,或在操作者需要访问安全模块以用于维护时)丢失对存储在其中的密钥(和与密钥相关联的数据,诸如计数器)的访问。因此,耗尽事件可包括因为故障或检测到窜改/侵入有意的动作(诸如使安全模块暂时不能使用以用于维护)而丢失(可能暂时的)安全模块。在此示例中,安全模块可被看作好像使用了其分配,即使其未必执行所分配的数目的操作。然而,应指出,所有此类事件可不包括在某些实施方案中的耗尽事件,诸如当计数器持久地存储且因此甚至在丢失对对应密钥的访问后可恢复时。还应指出,耗尽事件可影响一个以上安全模块。举例来说,影响数据中心中的多个安全模块的停电可导致影响多个安全模块的耗尽事件。
在检测到耗尽事件后,可确定2710计数器对于与耗尽事件相关联的密钥中的任一者是否超过阈值。阈值可以是至少部分基于用以执行密码操作的密码的数学属性的操作的预定数目。举例来说,对于具有CBC模式的密码,操作的数目可以或可另外至少部分基于密钥空间的大小除以以下两者的平方的乘积:(1)用块表示的密文的长度;和(2)密文的数目。对于具有CTR模式(诸如AES-GCM)的密码,操作的数目可以或可另外至少部分基于密钥空间的大小除以以下两者的乘积:(1)以块为单位的密文的长度的平方;和(2)密文的数目。如果确定2710计数器对于受耗尽事件影响的密钥中的任一者超过阈值,那么进程2700可包括指示2712一个或多个安全模块(即,与耗尽事件相关联的一个或多个安全模块)获得对其的操作的分配已耗尽的一个或多个新密钥且用新密钥替换受影响的密钥。举例来说,如果安全模块暂时离线(从而导致耗尽事件),且因此导致对KeyID(但未必是所有KeyID)的计数器超过阈值,那么可指示安全模块获得新密钥,诸如上文所描述(例如,通过产生新密钥、访问来自数据存储器的预先产生的密钥或从另一安全模块获得新密钥)。然而,应指出,可指示与受耗尽事件影响的安全模块不同的安全模块获得新密钥,诸如在使一个安全模块离线且使新的安全模块在线时。用新密钥替换受影响的密钥(由KeyID识别)可包括将受影响的密钥标记为引退的、使新密钥与KeyID(例如,数据库中)相关联且将新密钥标记为活跃的。用新密钥替换受影响的密钥还可包括初始化用于新密钥的计数器(由用新密钥替换受影响的密钥的安全模块维持),新密钥可以是预编程的值或可以是从执行进程2700的***获得的值。进程2700还可包括诸如通过相应地更新数据库而将受影响的密钥标记2714为引退的且将新密钥标记2714为活跃的。应指出,执行进程2700的***可能无法访问受影响的和/或新密钥,且因此,将受影响的密钥标记为引退的且将新密钥标记为活跃的可包括适当地使密钥的识别符与指示引退的或新的值相关联。
在一实施方案中,在标记2714后,如果确定2710受影响的密钥中没有一个的计数器超过阈值,那么进程2700可包括2716对仍活跃的受影响的密钥和/或因为执行进程2700的操作而获得的任何新密钥分配额外密钥操作。在分配额外密钥操作后,可更新2704适当的密钥使用计数器,诸如上文所描述。
与本文中描述的所有进程一样,变化视为在本公开的范围内。举例来说,在一些实施方案中,安全模块不跟踪其对密钥的使用,但密码或其它服务的另一组件更新用于向任何安全模块提交的使用密钥执行一个或多个操作的每一请求的密钥的计数器。在此类实施方案中,对于多个密钥中的每一密钥,安全模块的组件可跟踪使用密钥执行操作的请求(或例如,通过请求被成功地履行的确认或其它指示跟踪所执行的操作),从而相应地更新用于密钥的计数器。当计数器达到阈值时,维持计数器的***可使所有适当的安全模块引退密钥且用新密钥替换所述密钥(或执行导致密钥被引退的某一其它操作,诸如使具有密钥的安全模块引退密钥和使一个或多个其它安全模块开始使用新密钥)。作为在本公开的范围内的变化的另一示例,在一些实施方案中,当安全模块使用其对密钥操作的分配且导致计数器超过阈值时,可指示安全模块获得新密钥,诸如上文所描述。其它安全模块可继续使用密钥直到其使用了其分配为止。当安全模块使用其分配时,其可获得已替换安全模块中的导致计数器超过阈值的密钥的新密钥。换句话说,可允许安全模块在不得不获得新密钥之前用完其对密钥操作的分配。
图28示出用以维护密钥使用的跟踪的数据库的说明性示例表示。数据库可由适当的***(诸如执行进程2700的***)维护。在所示的数据库中,列分别对应于KeyID、密钥版本、可用性和计数器。KeyID和密钥版本可如上文所描述。可用性列中的值可指示密钥是引退的还是活跃的(或者密钥是否具有另一状态,如果本公开的各种实施方式支持此类其它状态的话)。如图28中所示,数据库针对KeyID识别的密钥的每一版本(包括所有引退的版本和活跃的版本)具有一行。然而,应指出,数据库中密钥的所有版本可能不足。举例来说,密钥可出于各种安全理由而从存储器永久地移除。移除可(例如)按照客户请求或策略的施行。
如图28中所示,所示的数据库还包括用于每一活跃的密钥的计数器。而且,在此特定示例中,数据库包括用于不活跃的密钥的计数器(例如,示出超过阈值的每一密钥的值,从而导致获得新密钥)。然而,在一些实施方案中,可不保留不活跃的密钥的计数器值。计数器可在密钥操作被分配给安全模块时由维护数据库的***更新。一旦计数器行中的值超过阈值,新的行就可添加至数据库以容纳新密钥来替换计数器值超过阈值的密钥。
安全模块可出于其自己的目的而维护类似数据库。举例来说,安全模块可跟踪其自己对密钥的使用,且当安全模块对密钥的使用耗尽分配给安全模块的数目时,安全模块可通知密码服务(或使用安全模块的另一服务)的密钥旋转管理组件,密钥旋转管理组件可(例如)执行进程(诸如上文描述的进程2700)以将额外操作重新分配给安全模块或在可用于密钥的密钥操作的数目已耗尽时使安全模块获得新密钥。
用以跟踪密钥使用的数据库可与图28中所示和上文描述的数据库不同。举例来说,额外信息可包括在数据库中,诸如与密钥相关联的元数据,诸如产生时间、引退时间、关于密钥使用所针对的客户的信息和/或在各种实施方案中可为有用的其它信息。另外,尽管出于说明的目的而提供关系表,但可使用支持各种实施方案的存储数据的其它方式。
用以施行策略的信息可由密码服务用各种方式获得。图29示出可实践本公开的各种实施方案的环境2900的说明性示例。环境2900的组件可包括诸如上文论述的组件。举例来说,如所示,环境2900包括用户,用户通过用户装置与数据服务前端***(数据服务前端)交互,但被配置来与数据服务前端交互的任何计算机***可替代用户。另外,如所示,环境包括数据服务后端存储***和认证服务,其可如上文所描述。另外,环境包括密码服务,密码服务在图29中标注为内部密码服务以与在图中标注为外部密码服务的另一密码服务区分。内部和外部密码服务中的任一者或两者可作为密码服务操作,诸如上文所描述。与本文中描述的所有环境一样,变化视为在本公开的范围内。举例来说,尽管图29示出用户与数据服务前端通信,但用户可在没有数据服务前端的情况下与密码服务通信,诸如上文所描述。
另外消息服务包括在环境2900中,在一实施方案中,消息服务是被配置来响应于来自内部密码服务的请求而至少向一个或多个订户(其可由账户表示)公布消息的计算机***(例如,计算机或计算机的网络)。如下文更详细地论述,一些请求可触发环境2900中的组件进行操作以便使用消息服务来传输关于请求的消息。举例来说,一些数据可存储成在密钥下加密的,密钥具有对解密请求的响应必须被延迟特定时间量的相关联的策略。如果提交了对数据解密的请求,那么策略的施行可导致延迟的响应和通知将由消息服务发送。以此方式,监视消息的用户或计算机***可在延迟期间具有提交取消解密请求的请求或另外使解密请求被取消的机会。消息服务可使用一个或多个技术将消息传输至一个或多个订户,所述技术包括(但不限于)电子邮件、短消息服务(SMS)、电话、寻呼、传真和/或可用于将信息从消息服务传输至另一实体的任何合适的技术。
如图29中所示,向数据服务前端提交的请求可包括密钥访问注释。举例来说,如所示出,用户提交的获得请求包括密钥访问注释。密钥访问注释可包括由环境2900的一个或多个组件施行策略所必要的信息。密钥访问注释可包括或另外具备使用密钥产生的电子签名。用以产生签名的密钥可以是在用户与环境2900的施行策略的组件之间共享的密钥,或在利用公共密钥数字签名方案的一些实施方案中,密钥可以是用户的公共密钥,从而将签名呈现为可使用对应的公共密钥验证。环境2900的施行策略的组件可使用电子签名来验证密钥访问注释中的信息的真实性,且可使用密钥访问注释中的信息来确定策略是否允许履行请求。
如图29中所示,环境2900的若干组件中的任一者可接收密钥访问注释且使用密钥访问注释以用于策略的施行。举例来说,数据服务前端可将密钥访问注释与密文和认证证明一起传递至内部密码服务,密文和认证证明可如上文所描述而使用。内部密码服务可使用密钥访问注释来验证由内部密码服务管理的关于密钥的策略。在一些实施方案中,密钥访问注释包括识别另一服务(诸如外部密码服务)的信息。内部密码服务可在检测到识别外部密码服务的信息后将密钥访问注释提供给外部密码服务,外部密码服务可以是使用密钥访问注释的多个密码或其它服务中的一者,但此类其它服务在图29中未示出。
如上文所论述,根据各种实施方案管理的密钥可与对密钥的使用的限制和/或特权编码的策略相关联。根据各种实施方案,与策略施行相关的其它信息也可与此类密钥相关联。图30示出密钥3000(诸如由密码服务管理的密钥,如上文所描述)的说明性示例和可维持(例如,通过密码服务)与密钥3000相关联的示例信息。如所示,对用于密钥3000的一个或多个策略编码的策略信息维持与密钥3000相关联,诸如上文所描述。在一实施方案中,密钥集也维持与密钥3000相关联(例如,通过数据库或其它数据存储***与密钥3000相关联)。关联可用任何合适的方式维持。举例来说,关系表或其它机制可直接使密钥3000与密钥集中的密钥相关。作为另一示例,关系表或其它机制可使密钥3000与和密钥3000相关联的集合中的密钥的识别符和/或参考相关。
举例来说,在一些实施方案中,来自使用密钥集的一个或多个密钥和来自管理密钥集的一个或多个密钥维持与密钥3000相关联。在一实施方案中,密码服务被配置使得在一些实施方案中,使用密钥集中的密钥对于履行至少一些请求是必要的。明确地说,在一些实施方案中,对于使用KeyID识别的密钥执行操作的请求,请求的履行可尤其可能要求密钥访问注释由对应于使用密钥集中的密钥(例如,使用密钥集中的任何密钥或使用密钥集中的由密钥访问注释指定或另外与密钥访问注释结合的密钥)的密钥电子地(即,数字地)签名。如果此签名不存在,那么可拒绝请求。对应于使用密钥集中的密钥的密钥可以是使用密钥集中的密钥或对其的参考,或可以是对应于使用密钥集中的公共密钥的私有密钥(其中公共密钥和私有密钥用于公共密钥数字签名方案)。
在一实施方案中,管理密钥集中的密钥用于修改与密钥3000相关联的密钥集的目的。举例来说,在一些实施方案中,为了履行修改使用密钥集或管理密钥集(或两者)的请求,可需要使用对应于管理密钥集中的密钥的密钥的电子签名。修改可包括将密钥添加至密钥集、从密钥集移除密钥、用另一密钥替换密钥集中的密钥、重新使密钥集中的密钥与另一实体相关联和/或其它修改。换句话说,需要对管理密钥的访问的证明来修改使用密钥集和/或管理密钥集。管理密钥还可以类似的方式用于其它目的,诸如用于适用于密钥3000的策略的修改和/或其它管理动作。如图30中所示,密钥3000还可与操作位掩码相关联。信息位掩码可以是对密钥3000可用于的操作的集合编码的信息,但此信息可由策略编码。
使用与安全模块管理的密钥相关联的各种密钥集提供众多技术优点。举例来说,参看图30,如果与密钥3000相关联的密钥集中的密钥泄露,那么可修改密钥集以在不必改变密钥3000的情况下保护以防数据不安全。作为另一示例,可使用第三方密钥使得无单一实体可访问密文和对密文解密所需的密钥两者,使得需要实体之间的合谋来访问明文。
图31示出根据实施方案的示例密钥访问注释3100的说明性表示。在图30中,密钥访问注释3100包括与关于请求的策略的施行相关的信息,密钥访问注释被包括以用于所述请求。在此示例中,密钥访问注释包括时间戳(TimeStamp)和操作描述符(OperationDescriptor)、密钥持有者识别符(KeyHolderID)、KeyID和来自使用密钥集或管理密钥集的密钥的识别符,但可包括更少或更多信息。
在一实施方案中,密钥访问注释3100中的信息用以确定是否可履行请求。具体来说,在一些实施方案中,密钥访问注释3100中的信息对于履行请求必须满足一个或多个条件(除了存在必要的电子签名之外)。举例来说,在一些实施方案中,时间戳必须指示在接收请求时的某一阈值时间量内的时间。作为另一示例,密钥访问注释必须在操作计数器窗口内、必须授权与一条特定数据有关的特定操作或必须另外满足由已接收密钥访问注释的实体施行的一个或多个条件。
KeyHolderID可根据本公开的各种实施方案实现联合密钥管理。参看图29,举例来说,KeyHolderID可以是识别KeyID指定的密钥或另外实现KeyID指定的密钥的识别的信息。KeyHolderID可以是(例如)统一资源定位符(URL)、因特网协议(IP)地址或实现KeyHolderID的使用以将密钥访问注释(例如,通过转发包括注释的请求)提供给对应实体的其它信息。在一些实施方案中,KeyHolderID编码在KeyID中,使得请求的接收者可提取KeyHolderID,且在适当时将请求转发至适当的第三方。环境2900的内部密码服务可(例如)被配置来检测请求的KeyHolderID是否指定不同的实体,且在检测到KeyHolderID指定不同的实体后,将请求(或至少部分基于请求的其它信息)转发至不同的实体,所述实体可以是外部密码服务,诸如上文所描述(例如,不同计算资源提供者的密码服务)。不同的实体可利用本公开的各种实施方案来确定是否响应于请求,且在适当时提供对请求的响应,响应可通过密码服务提供。如果密钥访问注释缺乏KeyHolderID(或KeyHolderID指定内部密码服务),那么假定符合用于请求履行的策略和其它先决条件下,内部密码服务可履行请求本身。
图32示出可用以施行与结合诸如上文描述的密钥访问注释提交的请求有关的策略的进程3200的说明性示例。进程3200可由任何合适的装置,诸如请求处理中涉及的密码服务的装置(例如,实施密码服务的前端API的装置)执行。密码服务可以是内部或外部密码服务,诸如上文所描述。
在一实施方案中,进程3200包括接收3202与请求有关的密钥访问注释。密钥访问注释可以是与请求一起包括的注释,或可用其它方式接收。举例来说,可处理具有密钥访问注释的请求,且作为处理的部分,可将密钥访问注释提供给执行进程3200(或其变化)的装置。一旦接收密钥访问注释,在一实施方案中,进程3200包括使用3204注释来产生参考签名,诸如上文所描述。可确定3206参考签名与注释的签名是否匹配。应指出,在替代实施方案中,进程3200包括将密钥访问注释与信息一起提供给安全模块,信息使安全模块能够产生参考签名且检查参考签名与密钥访问注释的签名是否匹配。换句话说,确定密钥访问注释的签名是否有效可通过从安全模块获得此确定而执行。
如果确定3206参考签名与注释的签名匹配,那么进程3200可包括访问3208与请求中指定的KeyID相关联的任何策略。假定策略针对KeyID而存在,进程3200包括确定3210所访问的策略是否允许请求的履行。如果确定3210策略允许请求的履行,那么进程3200可包括确定3212 KeyHolderID(诸如上文所描述)是否识别外部实体。确定3212 KeyHolderID是否识别外部实体可根据各种实施方案用各种方式执行。举例来说,密钥访问注释中不存在KeyHolderID可指示否定确定,而密钥访问注释中存在KeyHolderID可指示肯定确定。作为另一示例,KeyHolderID可以是指示内部实体(例如,内部密码服务)或外部实体(例如,外部密码服务)的需要的值。
如果确定3212 KeyHolderID不识别外部实体,那么进程3200可包括履行3214诸如上文描述的请求。然而,如果确定3212 KeyHolderID识别外部实体,那么进程3200可包括将请求转发3216至所识别的外部实体,且作为响应接收3216允许请求履行的信息。信息可以是(例如)通过借助外部实体对密文解密获得的明文和/或至少部分基于外部实体执行的密码操作的信息。尽管未说明,但也可另外或替代地接收其它信息。举例来说,如果外部实体独立地确定不允许请求的履行(例如,因为外部实体施行的策略不允许履行请求),那么可提供指示拒绝的信息。假定接收到3216允许请求履行的信息,那么进程可包括履行3214请求,诸如上文所描述。举例来说,可将允许请求履行的所接收的信息提供给请求者。
除了上文明确地描述的变化之外的变化也视为在本公开的范围内。举例来说,图32说明针对请求验证电子签名和策略且随后将请求(或至少部分基于请求的信息)转发至外部实体。与本文中说明的所有进程一样,操作次序可变化。举例来说,进程3200可修改,使得请求在任何签名和/或策略验证发生之前被转发。除了或代替执行进程3200的***之外,外部实体可执行签名和/或策略验证。举例来说,在一些实施方案中,执行进程3200的操作的***不执行签名和/或策略验证,而是将此验证留给外部实体。在其它实施方案中,执行进程3200的操作的***执行签名和/或策略验证,且外部实体执行额外签名和/或策略验证。外部实体可(例如)使在请求履行之前检查的不同密钥和/或不同策略在适当位置。
本公开的实施方案还利用提供增强的数据安全的技术。举例来说,尽管尽了全力,但是安全缺口经常结合各种***发生。为了缓和此类缺口的影响,本公开的各种实施方案允许用提供检测缺口的时间和相应地响应的方式进行请求处理。举例来说,在一些实施方案中,已加密的数据的解密和/或对已解密的数据的访问需要延迟。例如,***的配置或由***施行的策略可需要延迟,其中策略根据本文中描述的各种实施方案配置)。此类延迟(例如)在对已加密的数据的快速访问是不必要的情形中(诸如强制或其它要求需要将某些数据存档,但数据未必可立即获得的情况下)可为有用的。
图33示出根据各种实施方案的用于提供此延迟的进程3300的说明性示例。进程3300可由密码服务(诸如内部或外部密码服务,诸如上文所描述)执行。在一实施方案中,进程3300包括接收3302使用KeyID识别的密钥对密文解密的请求。请求可用任何合适的方式接收。举例来说,请求可从用户或从数据服务接收,诸如上文所描述。在一实施方案中,访问3304与KeyID相关联的策略。然而,应指出,在一些实施方案中策略可自动地施行,且因此,在一些实施方式中,策略不可访问。关于图33中说明的实施方案,进程3300包括确定3306策略是否允许请求履行。确定3306策略是否允许请求履行可用诸如上文描述的任何合适的方式执行。
如果确定3306所访问的策略允许请求的履行,那么进程3300可包括检测3308所访问的策略中的一者或多者中的时间延迟策略。然而,如上文所指出,在一些实施方案中,时间延迟可以是自动的,且因此,此策略的检测可不发生。进程3300可包括初始化3310计时器且执行报警进程。计时器可以是用于确定的时间量的计时器,在一些实施方案中,所述时间量是可(例如)配置为时间延迟策略的部分的可配置量。计时器还可预定至用于执行进程3300的***的***配置设置中。报警进程可包括执行被配置来导致各种报警动作的执行的工作流。报警动作可包括(例如)使通知***(诸如上文所描述)将一个或多个消息传输至一个或多个个人或***。举例来说,可通知与已加密的数据相关联的组织的合规官员。作为另一示例,报警动作可包括使审核***执行增强的审核,其中,举例来说,收集与对***的各种访问有关的更多信息。在一些实施方案中,报警动作还可包括报警信号,其可包括报警的听觉和/或视觉指示。其它报警动作视为在本公开的范围内。
在计时器初始化后,进程3300可包括执行计时器是否已过期的检查3312,直到确定3312计时器实际上已过期为止。在一些实施方案中,请求可在其履行之前被取消。取消请求可需要不如对信息解密的请求严格的要求。举例来说,在一些实施方案中,请求可以平凡地由可访问***的任何人取消。作为另一示例,报警动作可包括传输包括超链接的消息,超链接在被选择时导致取消请求的请求在一些实施方案中在消息的接收者未认证的情况下被取消。也可使用使得请求被取消的其它方法。因此,在一实施方案中,一旦计时器已过期(或在其它时间,诸如计时器过期之前),可确定3314请求是否已取消。如果确定3314请求已取消,那么进程3300可包括(例如)通过使用KeyID识别的密钥来对密文解密且提供所得明文或通过使安全模块对密文解密且提供对应的明文且接着将明文传送至请求者或另外提供对明文的访问来履行3316请求。然而,如果确定3314请求尚未取消和/或如果确定3306策略不允许请求的履行,那么进程3300可包括拒绝请求,诸如上文所描述。
众多其它变化在本公开的范围内。举例来说,在一些实施方案中,密钥与指定有效日期或另外指示并非无限的某一确定的有效时段的策略相关联。举例来说,在一些实施方案中,密钥可与指定密钥在某一时间量之后、在某一日期或另外在一个或多个条件满足后应被毁坏的策略相关联。作为示例,组织和/或管辖规则、法规、策略或规章可指定数据应保留持续某一时间量。关于用以对此数据加密的密钥(例如,在密码中用以对数据加密的密钥或在密码中用以对另一密钥加密的密钥,数据在所述另一密钥下被加密)的策略可指定密钥应在所需时间量经过后被毁坏(即,无法挽回地使任何人不可访问)。密码服务或其它***可检测所需时间量的经过且相应地毁坏密钥。密码服务可用许多方式检测所需时间量的经过。举例来说,在一些实施方案中,密码服务维护其中存储有指示用于密钥破坏的时间的信息的数据库。由密码服务执行的周期性进程可毁坏数据库中指示为可破坏的密钥。
策略有效日期也可用其它方式使用。举例来说,被施行用于数据的解密的时间延迟可随时间经过而改变。举例来说,作为在密钥使用期限下加密的数据,被施行用于对数据解密的时间延迟可减小。作为另一示例,当事人可具有仅在特定时间段内使用密钥执行密码操作的特权,此可通过密码服务的API重新开始。以此方式,个人致使执行与密钥有关的密码操作的能力可自动过期。
在一些实施方案中,可出于其它目的做出除了或代替对密文解密的请求之外的请求。举例来说,上文描述的各种技术可适于各种类型的策略施行。举例来说,结合本公开的各种实施方案利用的策略可利用策略的有效时间。策略更新可具有有效时间,其指示策略更新在施行策略的***中变成有效时的未来的时刻。现有策略可需要一些或所有策略改变在特定条件下是可允许的,所述特定条件中的一者是策略更新具有有效时间,有效时间是未来的指定的时间量(例如,48小时)。可做出改变策略的请求以允许数据的检索,数据的检索可涉及数据的解密。请求可以(例如)是在数据可被检索之前削弱需要满足的条件的请求。请求可指定策略改变的有效时间。结合策略适用于的当事人施行策略的***可批准或拒绝至少部分基于有效时间是否与现有策略一致的请求。如果***批准策略改变,那么***可初始化计时器(其可至少部分基于有效时间)且执行报警进程,诸如上文所描述。另外,策略改变可以是可取消的直到请求被履行,诸如上文所描述。以此方式,可向关注方提供防止对数据的未被授权的访问的通知和机会。
其它变化也视为在本公开的范围内。举例来说,在一些实施方案中,数据存储***可具有对请求处理的固有等待时间,固有等待时间足以提供取消请求和/或另外保护以防可能的安全缺口的时间。举例来说,档案数据存储***可利用非同步请求处理,其中响应于请求的数据可在请求提交之后的几小时内可获得。另外,响应于请求的数据可在不同时间量之后可获得,所述时间量可取决于诸如***的因素。在此类***的情况下,计时器可因为固有等待时间而为不必要的。
本公开的实施方案可鉴于以下条款进行描述:
1.一种计算机实施的方法,其包括:
在配置有可执行指令的一个或多个计算机***的控制下,
从请求者接收执行密码操作的请求,所述请求包括信息和至少部分基于所述信息的一部分而产生的电子签名,所述电子签名可用对应于第二密钥的一个或多个密钥的集合中的第一密钥验证;
检测所述请求是否指定多个密钥持有者中的密钥持有者;
由于检测所述请求指定所述多个密钥持有者中的特定密钥持有者,使所述特定密钥持有者至少执行以下操作:
至少部分基于所述信息和所述第一密钥确定所述电子签名是否有效;
至少部分基于所述信息确定所述信息是否满足用于履行所述请求的一个或多个条件;
由于所述特定密钥持有者确定所述电子签名是有效的和所述信息满足所述一个或多个条件,从所述特定密钥持有者获得用于履行所述请求必要的响应信息,所述响应信息已至少部分基于使用所述第二密钥执行的一个或多个密码操作而产生;以及
使用所述所获得的响应信息以将对所述请求的响应提供给所述请求者。
2.如条款1所述的计算机实施的方法,其中所述特定密钥持有者是由第三方托管的计算机***。
3.如条款1或2所述的计算机实施的方法,其中对应于所述第二密钥的所述一个或多个密钥的集合包括多个密钥,所述多个密钥中的每一密钥可用以验证用于请求的履行所需的条件的满足。
4.如前述条款中任一项所述的计算机实施的方法,其还包括:
接收执行密码操作的第二请求,所述第二请求包括第二信息和至少部分基于所述第二信息的一部分的第二电子签名,所述电子签名可用对应于第四密钥的一个或多个密钥的第二集合中的第三密钥验证:
至少部分基于所述第二信息和所述第三密钥确定所述第二电子签名是否有效;
至少部分基于所述第二信息确定所述信息是否满足用于履行所述第二请求的一个或多个第二条件;以及
由于确定所述第二电子签名是有效的和所述第二信息满足所述一个或多个第二条件,使用所述第四密钥来执行一个或多个密码操作以履行所述第二请求。
5.如前述条款中任一项所述的计算机实施的方法,其中用于履行所述请求的所述一个或多个条件由对应于所述第二密钥的一个或多个策略定义。
6.如前述条款中任一项所述的计算机实施的方法,其中所述第二密钥是呈明文形式对所述一个或多个计算机***不可访问的。
7.一种计算机实施的方法,其包括:
在配置有可执行指令的一个或多个计算机***的控制下,
结合请求接收信息和至少部分基于所述信息的至少一部分的电子签名;
从多个密钥持有者中检测所述信息中指定的第二密钥的持有者;
由于检测所述第二密钥的所述持有者,使所述第二密钥的所述持有者执行以下操作:
至少部分基于所述信息的所述部分和与第二密钥相关联的第一密钥确定所述电子签名是否有效;以及
由于确定所述签名有效,使用所述第二密钥执行一个或多个密码操作;
使用从所述第二密钥的所述持有者获得的所述一个或多个密码的一个或多个结果来履行所述请求。
8.如条款7所述的计算机实施的方法,其中所述第一密钥是对应于所述第二密钥的一个或多个密钥的集合中的成员,所述一个或多个密钥的集合中的每一密钥可用以验证对于履行对应请求需要是有效的电子签名。
9.如条款7或8所述的计算机实施的方法,其中所述第二密钥的所述持有者是第三方。
10.如条款7至9中任一项所述的计算机实施的方法,其中所述一个或多个计算机***缺乏对呈明文形式的所述第二密钥的访问。
11.如条款7至10中任一项所述的计算机实施的方法,其中:
所述信息包括一个或多个值;
所述方法还包括确定所述一个或多个值是否满足一个或多个条件;且
履行所述请求取决于确定所述一个或多个值满足所述一个或多个条件。
12.如条款7至11中任一项所述的计算机实施的方法,其中所述第二密钥的所述持有者是所述一个或多个计算机***。
13.一种***,其包括:
一个或多个处理器;以及
存储器,其包括指令,所述指令在由所述一个或多个处理器执行时使所述计算机***执行以下操作:
存储与第一密钥相关联的一个或多个密钥的集合;
接收需要使用所述第一密钥以用于履行的请求;以及
由于所述第一密钥由第三方持有,使所述第三方执行以下操作:
使用来自所述一个或多个密钥的集合的第二密钥来确定所述请求是否应被履行;以及
由于确定所述请求应被履行,使用所述第一密钥来执行一个或多个密码操作。
14.如条款13所述的***,其中所述第一密钥的所述持有者是第三方***。
15.如条款13或14所述的***,其中所述一个或多个密钥的集合包括管理密钥子集,每一管理密钥可用于对于改变所述一个或多个密钥的集合所需的电子签名验证。
16.如条款13至15中任一项所述的***,其中所述***由实体托管且所述实体缺乏对呈明文形式的所述第一密钥的访问。
17.如条款13至16中任一项所述的***,其中所述请求指定所述第一密钥。
18.如条款13至17中任一项所述的***,其中使用来自所述一个或多个密钥的集合的所述第二密钥来确定所述请求是否应被履行包括使用所述第二密钥来验证结合所述请求提交的电子签名。
19.一个或多个计算机可读存储介质,其上存储有指令,所述指令在由计算机***的一个或多个处理器执行时使所述计算机***执行以下操作:
使一个或多个密钥的集合与第一密钥相关联;以及
使用来自所述一个或多个密钥的集合的第二密钥来确定是否通过至少使所述第一密钥的持有者在一个或多个密码操作中使用所述第一密钥来允许请求的履行。
20.如条款19所述的一个或多个计算机可读存储介质,其中所述第一密钥的所述持有者是第三方。
21.如条款19或20所述的一个或多个计算机可读存储介质,其中:
所述请求是结合请求信息提交的;
所述指令还使所述计算机***验证关于所述请求信息的一个或多个条件被满足;以及
需要所述一个或多个条件的满足以用于允许所述请求的履行。
22.如条款19至21中任一项所述的一个或多个计算机可读存储介质,其中:
所述一个或多个密钥的集合包括管理密钥子集;且
所述管理密钥子集中的每一管理密钥可用以确定是否履行改变所述一个或多个密钥的集合的请求。
23.如条款22所述的一个或多个计算机可读存储介质,其中改变所述一个或多个密钥的集合包括添加密钥或从所述一个或多个密钥的集合移除密钥。
24.如条款19至23中任一项所述的一个或多个计算机可读存储介质,其中所述请求是结合识别所述第一密钥的所述持有者的信息提交的。
25.如条款19至24中任一项所述的一个或多个计算机可读存储介质,其中所述第一密钥的所述持有者是所述计算机***。
图34图示用于实施根据各种实施方案的方面的示例环境3400的方面。如将了解,尽管基于Web的环境用于解释的目的,但可在适当时使用不同的环境以实施各种实施方案。环境包括电子客户端装置3402,其可包括可操作以经由适当的网络3404发送和接收请求、消息或信息且将信息传达回至装置的用户的任何适当的装置。此类客户端装置的示例包括个人计算机、手机、手持式消息传递装置、膝上型计算机、机顶盒、个人数据助理、电子书阅读器和类似物。网络可包括任何适当的网络,包括内联网、因特网、蜂窝式网络、局域网或任何其它此类网络或其组合。用于此***的组件可至少部分取决于所选择的网络和/或环境的类型。用于经由此网络进行通信的协议和组件是众所周知的且本文中将不详细论述。经由网络的通信可由有线或无线连接和其组合实现。在此示例中,网络包括因特网,因为环境包括用于接收请求和响应于请求而服务内容的Web服务器3406,但对于其它网络,可使用服务类似目的的替代装置,如对本领域技术人员将清楚。
说明性环境包括至少一个应用服务器3408和数据存储3410。应理解,可存在若干应用服务器、层或其它元件、进程或组件,其可链接或另外配置,其可交互以执行任务,诸如从适当的数据存储获得数据。如本文中所使用,术语“数据存储”指能够存储、访问和检索数据的任何装置或装置的组合,其可包括在任何标准的、分布式或群集环境中的数据服务器、数据库、数据存储装置和数据存储介质的任何组合和数目。应用服务器可包括任何适当的硬件和软件,其用于与执行用于客户端装置的一个或多个应用的方面所需的数据存储集成、处理大部分数据访问和应用的业务逻辑。应用服务器与数据存储合作提供访问控制服务,且能够产生将被传送至用户的内容,诸如文字、图形、音频和/或视频,其在此示例中可由Web服务器以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)或另一适当的结构化语言的形式向用户供应。所有请求和响应的处理,以及内容在客户端装置3402与应用服务器3408之间的递送可由Web服务器处理。应理解,因为本文中论述的结构化代码可在如本文中其它地方论述的任何适当的装置或主机上执行,所以Web和应用服务器不是必需的且仅为示例组件。
数据存储3410可包括若干单独的数据表、数据库或用于存储与特定方面相关的数据的其它数据存储机构和介质。举例来说,所示的数据存储包括用于存储产生数据3412和用户信息3416的机构,其可用以为产生端供应内容。数据存储还示出为包括用于存储日志数据3414的机构,其可用于报告、分析或其它此类目的。应理解,可存在可需要存储在数据存储中的许多其它方面,诸如对于页面图像信息和访问权利信息,其可适当地存储在上文列出的机构中的任一者中或数据存储3410中的额外机构中。数据存储3410通过与其相关联的逻辑可操作以从应用服务器3408接收指令且响应于指令而获得、更新或另外处理数据。在一个示例中,用户可提交对某一类型的项目的搜索请求。在此状况下,数据存储可访问用户信息以验证用户的身份,且可访问目录详细信息以获得关于那个类型的项目的信息。信息接着可传回至用户,诸如在用户能够经由用户装置3402上的浏览器查看的Web页面上列出的结果中。所关注的特定项目的信息可在浏览器的专用页面或窗口中查看。
每一服务器通常将包括提供用于那个服务器的一般管理和操作的可执行程序指令的操作***,且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时允许服务器执行其希望的功能。用于操作***的合适的实施方式和服务器的一般功能性是已知的或市售的,且易于由本领域技术人员尤其按照本文中的公开内容实施。在一些实施方案中,操作***可根据一个或多个验证制度(诸如,评估保证等级(EAL)等级4)配置或在一个或多个验证制度下验证。
在一个实施方案中的环境是利用若干计算机***和组件的分布式计算环境,所述计算机***和组件经由通信链路使用一个或多个计算机网络或直接连接互连。然而,本领域技术人员将了解,此***可在具有比图34中所示的较少或较大数目的组件的***中同样良好地操作。因此,图34中的***3400的描绘在本质上应看作说明性的,而不限于本公开的范围。
各种实施方案还可在广泛多种操作环境中实施,所述操作环境在一些状况下可包括可用以操作多个应用中的任一者的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可包括若干通用个人计算机(诸如运行标准的操作***的台式或膝上型计算机)中的任一者,以及运行移动软件且能够支持若干网络连接和消息传递协议的蜂窝式、无线和手持式装置。此***还可包括出于诸如开发和数据库管理的目的而运行多种市售操作***和其它已知应用中的任一者的若干工作站。这些装置还可包括其它电子装置,诸如虚拟终端、瘦客户端、游戏***和能够经由网络通信的其它装置。
大多数实施方案利用对于本领域技术人员将为熟悉的至少一个网络以用于支持使用多种市售模型和协议中的任一者的通信,所述模型和协议诸如传输控制协议/因特网协议(“TCP/IP”)、开放式***互连(“OSI”)、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件***(“NFS”)、公共因特网文件***(“CIFS”)和AppleTalk。网络可以是(例如)局域网、广域网、虚拟专用网络、因特网、内联网、外联网、公共交换电话网络、红外线网络、无线网络和其任何组合。
在利用Web服务器的实施方案中,Web服务器可运行多种服务器或中间层应用中的任一者,包括超文本传送协议(“HTTP”)服务器、FTP服务器、公共网关接口(“CGI”)服务器、数据服务器、Java服务器和业务应用服务器。服务器也可能够响应于来自用户装置的请求而执行程序或脚本,诸如通过执行可实施为用任何编程语言(诸如C、C#或C++)或任何脚本语言(诸如Perl、Python或TCL)以及其组合编写的一个或多个脚本或程序的一个或多个Web应用。服务器还可包括数据库服务器,其包括(不限于)可从 和购得的服务器。
环境可包括如上文论述的多种数据存储以及其它存储器和存储介质。这些可驻存在多种位置,诸如驻存在计算机中的一者或多者本地的存储介质上(和/或驻存在在计算机中的一者或多者中)或驻存在跨越网络远离计算机中的任一者或全部的存储介质上。在实施方案的特定组中,信息可驻存在本领域技术人员熟悉的存储区域网(“SAN”)中。类似地,用于执行归于计算机、服务器或其它网络装置的功能的任何必要的文件可适当地在本地和/或远程地存储。在***包括计算装置的情况下,每一此装置可包括可经由总线电耦合的硬件元件,元件包括(例如)至少一个中央处理单元(“CPU”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。此***还可包括一个或多个存储装置,诸如磁盘驱动器、光学存储装置和固态存储装置,诸如随机存取存储器(“RAM”)或只读存储器(“ROM”)以及可移动介质装置、存储卡、快闪卡等。本公开的各种实施方案还可使用定制硬件实施,定制硬件包括(但不限于)定制密码处理器、智能卡和/或硬件安全模块。
此类装置还可包括如上文所描述的计算机可读存储介质读取器、通信装置(例如,调制解调器、网络卡(无线或有线)、红外线通信装置等)和工作存储器。计算机可读存储介质读取器可与计算机可读存储介质连接或被配置来收纳计算机可读存储介质,计算机可读存储介质表示远程的、本地的、固定的和/或可移动存储装置以及用于暂时地和/或更永久地含有、存储、传输和检索计算机可读信息的存储介质。***和各种装置通常还将包括位于至少一个工作存储器装置内的若干软件应用、模块、服务或其它元件,包括操作***和应用程序,诸如客户端应用或Web浏览器。应了解,替代实施方案可具有与上文描述的众多变化。举例来说,也可使用定制硬件和/或特定元件可在硬件、软件(包括便携式软件,诸如小应用)或两者中实施。另外,可采用与其它计算装置(诸如网络输入/输出装置)的连接。
用于含有代码或代码的部分的存储介质或计算机可读介质可包括本领域中已知或使用的任何适当的介质,包括存储介质和通信介质,诸如(但不限于)用任何方法或技术实施以用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的易失性和非易失性、可移动和不可移动介质,包括RAM、ROM、电可擦除可编程只读存储器(“EEPROM”)、快闪存储器或其它存储器技术、压缩光盘只读存储器(“CD-ROM”)、数字通用光盘(DVD)或其它光学存储器、磁带盒、磁带、磁盘存储器或其它磁性存储装置或可用以存储所要信息且可由***装置访问的任何其它介质。基于本文中提供的公开内容和教示,本领域技术人员将了解实施各种实施方案的其它方式和/或方法。
因此,说明书和图式应按照说明性的而不是限制性的意义看待。然而,将清楚的是,可在不脱离如权利要求书中阐述的本发明的较宽精神和范围的情况下对本发明进行各种修改和改变。
其它变化在本公开的精神内。因此,尽管所公开的技术易于经受各种修改和替代构造,但某些说明的实施方案在图式中进行示出且已在上文详细地描述。然而,应理解,不希望将本发明限于公开的一个或多个特定形式,而是相反,本发明将涵盖落在如所附权利要求书中定义的本发明的精神和范围内的所有修改、替代构造和等效物。
除非本文中另外指示或清楚地与上下文矛盾,否则在描述公开的实施方案的上下文中(尤其在所附权利要求书的上下文中)使用术语“一(a/an)”和“所述”以及类似指代物将解释为涵盖单数和复数两者。除非另外指出,否则术语“包括(comprising)”、“具有”、“包括(including)”和“含有”将解释为开放术语(即,意味着“包括但不限于”)。术语“连接的”将解释为部分或完全含有于其内、附接至或接合在一起,即使存在***的某物。除非本文中另外指示,否则对本文中值的范围的陈述仅希望充当个别地参考落在范围内的每一单独值的简写方法,且每一单独值并入至说明书中就像其在本文中个别地陈述一样。除非本文中另外指示或另外清楚地与上下文矛盾,否则本文中描述的所有方法可用任何合适的次序执行。本文中提供的任何和所有示例或示范性语言(例如,“诸如”)的使用仅希望较好地阐明本发明的实施方案且不限制本发明的范围,除非另外要求。本说明书中的语言不应解释为将任何非要求的元件指示为对于本发明的实践是必要的。
本文中描述了本公开的优选实施方案,包括用于执行本发明的发明者已知的最佳模式。在阅读以上描述后,那些优选实施方案的变化对于本领域技术人员可变得清楚。发明者预期本领域技术人员适当地采用此类变化,且发明者希望与本文中特定地描述不同地实践本发明。因此,本发明包括如由适用法律准许的附加至本发明的权利要求书中陈述的主题的所有修改和等效物。此外,除非本文中另外指示或另外清楚地与上下文矛盾,否则本发明涵盖在其所有可能的变化中的上述元件的任何组合。
本文中引用的所有参考物(包括公告、专利申请和专利)特此以引用的方式并入,其并入程度如同每一参考个别地和特定地指示为以引用的方式并入且全部在本文中阐述。
Claims (15)
1.一种计算机实施的方法,其包括:
在配置有可执行指令的一个或多个计算机***的控制下,
结合访问数据服务前端的请求来接收信息和至少部分基于所述信息的至少一部分的电子签名;
从多个密钥持有者中检测所述信息中指定的第二密钥的持有者;
由于检测所述第二密钥的所述持有者,使所述第二密钥的所述持有者执行以下操作:
至少部分基于所述信息的所述部分和与所述第二密钥相关联的第一密钥确定所述电子签名是否有效,其中所述确定是由与所述数据服务前端分开的认证服务执行的;
至少部分基于所述信息确定所述信息是否满足用于履行所述请求的一个或多个条件;
由于确定所述签名有效并且所述信息满足所述一个或多个条件,从所述第二密钥的持有者获得用于履行所述请求所必要的响应信息,所述响应信息已经至少部分基于使用所述第二密钥执行的一个或多个密码操作而产生;以及
使用所获得的响应信息来履行所述请求。
2.如权利要求1所述的计算机实施的方法,其中所述第一密钥是对应于所述第二密钥的一个或多个密钥的集合中的成员,所述一个或多个密钥的集合中的每一密钥可用以验证对于履行对应请求需要是有效的电子签名。
3.如权利要求1或2所述的计算机实施的方法,其中所述第二密钥的所述持有者是第三方。
4.如权利要求1或2所述的计算机实施的方法,其中所述一个或多个计算机***缺乏对呈明文形式的所述第二密钥的访问。
5.如权利要求1或2所述的计算机实施的方法,其中:
所述信息包括一个或多个值;
所述方法还包括确定所述一个或多个值是否满足一个或多个条件;且
履行所述请求取决于确定所述一个或多个值满足所述一个或多个条件。
6.如权利要求1或2所述的计算机实施的方法,其中所述第二密钥的所述持有者是所述一个或多个计算机***。
7.一种计算机***,其包括:
一个或多个处理器;
数据服务前端;以及
存储器,其包括指令,所述指令在由所述一个或多个处理器执行时使所述计算机***执行以下操作:
存储与第一密钥相关联的一个或多个密钥的集合;
接收需要使用所述第一密钥以用于履行的访问所述数据服务前端的请求;以及
由于所述第一密钥由第三方持有,使所述第三方执行以下操作:
使用来自所述一个或多个密钥的集合的第二密钥以及用于履行所述请求的一个或多个条件来确定所述请求是否应被履行,其中所述确定是由与所述数据服务前端分开的认证服务执行的;以及
由于确定所述请求应被履行,使用所述第一密钥来执行一个或多个密码操作以产生用于履行所述请求所必要的响应信息。
8.如权利要求7所述的计算机***,其中所述第一密钥的所述持有者是第三方***。
9.如权利要求7或8所述的计算机***,其中所述一个或多个密钥的集合包括管理密钥子集,每一管理密钥可用于对于改变所述一个或多个密钥的集合所需的电子签名验证。
10.如权利要求7或8所述的计算机***,其中所述***由实体托管且所述实体缺乏对呈明文形式的所述第一密钥的访问。
11.如权利要求7或8所述的计算机***,其中所述请求指定所述第一密钥。
12.如权利要求7或8所述的计算机***,其中使用来自所述一个或多个密钥的集合的所述第二密钥来确定所述请求是否应被履行包括使用所述第二密钥来验证结合所述请求提交的电子签名。
13.如权利要求9所述的计算机***,其中改变所述一个或多个密钥的集合包括添加密钥或从所述一个或多个密钥的集合移除密钥。
14.如权利要求7或8所述的计算机***,其中所述请求是结合识别所述第一密钥的所述持有者的信息提交的。
15.如权利要求7或8所述的计算机***,其中所述第三方由控制所述***的实体控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010838180.6A CN111884801A (zh) | 2013-02-12 | 2014-02-07 | 联合密钥管理 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/765,209 | 2013-02-12 | ||
US13/765,209 US9705674B2 (en) | 2013-02-12 | 2013-02-12 | Federated key management |
PCT/US2014/015408 WO2014126814A1 (en) | 2013-02-12 | 2014-02-07 | Federated key management |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010838180.6A Division CN111884801A (zh) | 2013-02-12 | 2014-02-07 | 联合密钥管理 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105191207A CN105191207A (zh) | 2015-12-23 |
CN105191207B true CN105191207B (zh) | 2020-09-08 |
Family
ID=51298337
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480013039.5A Active CN105191207B (zh) | 2013-02-12 | 2014-02-07 | 联合密钥管理 |
CN202010838180.6A Pending CN111884801A (zh) | 2013-02-12 | 2014-02-07 | 联合密钥管理 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010838180.6A Pending CN111884801A (zh) | 2013-02-12 | 2014-02-07 | 联合密钥管理 |
Country Status (6)
Country | Link |
---|---|
US (4) | US9705674B2 (zh) |
EP (2) | EP2957065A4 (zh) |
JP (4) | JP6514115B2 (zh) |
CN (2) | CN105191207B (zh) |
CA (2) | CA2899008C (zh) |
WO (1) | WO2014126814A1 (zh) |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9590959B2 (en) | 2013-02-12 | 2017-03-07 | Amazon Technologies, Inc. | Data security service |
US9286491B2 (en) | 2012-06-07 | 2016-03-15 | Amazon Technologies, Inc. | Virtual service provider zones |
US10075471B2 (en) | 2012-06-07 | 2018-09-11 | Amazon Technologies, Inc. | Data loss prevention techniques |
US10084818B1 (en) | 2012-06-07 | 2018-09-25 | Amazon Technologies, Inc. | Flexibly configurable data modification services |
US9882713B1 (en) | 2013-01-30 | 2018-01-30 | vIPtela Inc. | Method and system for key generation, distribution and management |
US10467422B1 (en) | 2013-02-12 | 2019-11-05 | Amazon Technologies, Inc. | Automatic key rotation |
US9367697B1 (en) | 2013-02-12 | 2016-06-14 | Amazon Technologies, Inc. | Data security with a security module |
US10211977B1 (en) | 2013-02-12 | 2019-02-19 | Amazon Technologies, Inc. | Secure management of information using a security module |
US10210341B2 (en) | 2013-02-12 | 2019-02-19 | Amazon Technologies, Inc. | Delayed data access |
US9705674B2 (en) | 2013-02-12 | 2017-07-11 | Amazon Technologies, Inc. | Federated key management |
US9300464B1 (en) | 2013-02-12 | 2016-03-29 | Amazon Technologies, Inc. | Probabilistic key rotation |
US9953317B2 (en) * | 2013-03-13 | 2018-04-24 | Shopkeep.Com, Inc. | Method and system for secure key rotation |
US9832171B1 (en) | 2013-06-13 | 2017-11-28 | Amazon Technologies, Inc. | Negotiating a session with a cryptographic domain |
DE102013108714B3 (de) * | 2013-08-12 | 2014-08-21 | Deutsche Post Ag | Unterstützung einer Entschlüsselung von verschlüsselten Daten |
US9722795B2 (en) * | 2014-05-20 | 2017-08-01 | Vmware, Inc. | Digitally signing JSON messages |
US9397835B1 (en) | 2014-05-21 | 2016-07-19 | Amazon Technologies, Inc. | Web of trust management in a distributed system |
US9438421B1 (en) | 2014-06-27 | 2016-09-06 | Amazon Technologies, Inc. | Supporting a fixed transaction rate with a variably-backed logical cryptographic key |
US9866392B1 (en) | 2014-09-15 | 2018-01-09 | Amazon Technologies, Inc. | Distributed system web of trust provisioning |
US9806887B1 (en) * | 2014-09-23 | 2017-10-31 | Amazon Technologies, Inc. | Authenticating nonces prior to encrypting and decrypting cryptographic keys |
US10819959B2 (en) * | 2014-11-05 | 2020-10-27 | Jason Christopher Palazzolo | Firearm environmental recording apparatus and system |
WO2016112338A1 (en) * | 2015-01-08 | 2016-07-14 | Intertrust Technologies Corporation | Cryptographic systems and methods |
US9767293B2 (en) * | 2015-02-13 | 2017-09-19 | International Business Machines Corporation | Content based hardware security module assignment to virtual machines |
US10158953B2 (en) | 2015-07-02 | 2018-12-18 | Gn Hearing A/S | Hearing device and method of updating a hearing device |
EP3113516B1 (en) * | 2015-07-02 | 2023-05-31 | GN Hearing A/S | Hearing device and method of updating security settings of a hearing device |
US10419401B2 (en) * | 2016-01-08 | 2019-09-17 | Capital One Services, Llc | Methods and systems for securing data in the public cloud |
US10389793B2 (en) * | 2016-06-10 | 2019-08-20 | Amdocs Development Limited | System and method for providing feature-level delegation of service entitlements among users in a group |
US10757165B2 (en) * | 2016-06-10 | 2020-08-25 | Amdocs Development Limited | System and method for delegating service entitlements across multiple media services |
WO2018027059A1 (en) | 2016-08-03 | 2018-02-08 | KryptCo, Inc. | Systems and methods for delegated cryptography |
US20180176187A1 (en) * | 2016-12-16 | 2018-06-21 | Amazon Technologies, Inc. | Secure data ingestion 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 |
US10313344B2 (en) | 2017-03-30 | 2019-06-04 | Bank Of America Corporation | Internal footprint repository |
CN109150814B (zh) * | 2017-06-28 | 2022-12-02 | 西安中兴新软件有限责任公司 | 数据处理方法及其装置、终端、存储介质 |
CN109462472A (zh) * | 2017-09-06 | 2019-03-12 | 阿里巴巴集团控股有限公司 | 数据加密和解密的方法、装置和*** |
US11349822B2 (en) * | 2017-11-20 | 2022-05-31 | Fortanix, Inc. | Runtime encryption plugin for a key management system |
EP3714389B1 (en) * | 2017-11-20 | 2023-08-02 | Telefonaktiebolaget LM Ericsson (PUBL) | Deployment of components of a distributed application to runtime environments |
JP7090161B2 (ja) | 2017-12-13 | 2022-06-23 | ビザ インターナショナル サービス アソシエーション | セキュアな取引のための装置の自己認証 |
US10893505B2 (en) | 2018-01-23 | 2021-01-12 | Statum Systems Inc. | Enhanced pager network |
US11074997B2 (en) * | 2018-01-23 | 2021-07-27 | Statum Systems Inc. | Multi-modal encrypted messaging system |
US11070373B2 (en) | 2018-02-21 | 2021-07-20 | Ebay Inc. | Masked key hopping |
US11373176B2 (en) * | 2018-02-22 | 2022-06-28 | Wells Fargo Bank, N.A. | Systems and methods for federated identity management |
US11159498B1 (en) | 2018-03-21 | 2021-10-26 | Amazon Technologies, Inc. | Information security proxy service |
US10554701B1 (en) * | 2018-04-09 | 2020-02-04 | Amazon Technologies, Inc. | Real-time call tracing in a service-oriented system |
DK3554096T3 (da) | 2018-04-11 | 2023-06-19 | Gn Hearing As | Høreapparathus med integreret antenne |
US10909250B2 (en) * | 2018-05-02 | 2021-02-02 | Amazon Technologies, Inc. | Key management and hardware security integration |
US10606888B2 (en) * | 2018-06-05 | 2020-03-31 | Eight Plus Ventures, LLC | Image inventory production |
US10979403B1 (en) | 2018-06-08 | 2021-04-13 | Amazon Technologies, Inc. | Cryptographic configuration enforcement |
US11042661B2 (en) * | 2018-06-08 | 2021-06-22 | Weka.IO Ltd. | Encryption for a distributed filesystem |
US10956600B2 (en) * | 2018-10-31 | 2021-03-23 | Salesforce.Com, Inc. | Highly available encryption framework for multiple different computing environments |
US11177933B2 (en) * | 2019-03-24 | 2021-11-16 | Google Llc | Side channel timing attack mitigation in securing data in transit |
US20200396054A1 (en) * | 2019-06-17 | 2020-12-17 | Macronix International Co., Ltd. | Secure Memory Read |
US11188658B2 (en) * | 2019-09-11 | 2021-11-30 | International Business Machines Corporation | Concurrent enablement of encryption on an operational path at a storage port |
US11354455B2 (en) | 2019-09-11 | 2022-06-07 | International Business Machines Corporation | Maintenance of access for security enablement on a host system |
US11308243B2 (en) | 2019-09-11 | 2022-04-19 | International Business Machines Corporation | Maintenance of access for security enablement in a storage device |
US11188659B2 (en) * | 2019-09-11 | 2021-11-30 | International Business Machines Corporation | Concurrent enablement of encryption on an operational path at a host port |
US11887072B2 (en) | 2019-12-11 | 2024-01-30 | Bitt Inc. | Digital currency minting in a system of network nodes implementing a distributed ledger |
US11641275B2 (en) * | 2019-12-11 | 2023-05-02 | LendingClub Bank, National Association | Encryption key rotation framework |
CN111222958B (zh) * | 2020-01-10 | 2023-12-05 | 临沂大学 | 一种机械设备动力控制方法、***、介质及电子设备 |
JP7397403B2 (ja) * | 2020-01-20 | 2023-12-13 | 大日本印刷株式会社 | 電子情報記憶媒体、認証コード生成方法、認証コード検証方法、及びプログラム |
US10873852B1 (en) | 2020-04-10 | 2020-12-22 | Avila Technology, LLC | POOFster: a secure mobile text message and object sharing application, system, and method for same |
US11151229B1 (en) | 2020-04-10 | 2021-10-19 | Avila Technology, LLC | Secure messaging service with digital rights management using blockchain technology |
US11943338B2 (en) * | 2021-08-19 | 2024-03-26 | Capital One Services, Llc | Object-level encryption |
US20230078187A1 (en) * | 2021-09-12 | 2023-03-16 | Zoom Video Communications, Inc. | Distributed Encryption Key Allocation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030021417A1 (en) * | 2000-10-20 | 2003-01-30 | Ognjen Vasic | Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data |
CN101573910A (zh) * | 2006-10-31 | 2009-11-04 | 新加坡科技研究局 | 生成和分配对数字对象的访问许可的设备和方法 |
US20120297183A1 (en) * | 2011-05-16 | 2012-11-22 | Prakash Umasankar Mukkara | Techniques for non repudiation of storage in cloud or shared storage environments |
Family Cites Families (258)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6175625B1 (en) | 1944-12-15 | 2001-01-16 | The United States Of America As Represented By The National Security Agency | Control circuits for electric coding machines |
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 |
US5054067A (en) | 1990-02-21 | 1991-10-01 | General Instrument Corporation | Block-cipher cryptographic device based upon a pseudorandom nonlinear sequence generator |
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 |
US5870477A (en) | 1993-09-29 | 1999-02-09 | Pumpkin House Incorporated | Enciphering/deciphering device and method, and encryption/decryption communication system |
US5495533A (en) | 1994-04-29 | 1996-02-27 | International Business Machines Corporation | Personal key archive |
US7904722B2 (en) | 1994-07-19 | 2011-03-08 | Certco, Llc | Method for securely using digital signatures in a commercial cryptographic system |
US5826245A (en) * | 1995-03-20 | 1998-10-20 | Sandberg-Diment; Erik | Providing verification information for a transaction |
US5633931A (en) | 1995-06-30 | 1997-05-27 | Novell, Inc. | Method and apparatus for calculating message signatures in advance |
US5675653A (en) | 1995-11-06 | 1997-10-07 | Nelson, Jr.; Douglas Valmore | Method and apparatus for digital encryption |
US5761306A (en) | 1996-02-22 | 1998-06-02 | Visa International Service Association | Key replacement in a public key cryptosystem |
US5933503A (en) | 1996-03-15 | 1999-08-03 | Novell, Inc | Controlled modular cryptography apparatus and method |
US5862220A (en) * | 1996-06-03 | 1999-01-19 | Webtv Networks, Inc. | Method and apparatus for using network address information to improve the performance of network transactions |
US6012144A (en) * | 1996-10-08 | 2000-01-04 | Pickett; Thomas E. | Transaction security method and apparatus |
JP3542895B2 (ja) | 1997-08-22 | 2004-07-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 時間制約暗号システム |
CA2302784A1 (en) | 1997-09-17 | 1999-03-25 | Frank C. Luyster | Improved block cipher method |
US6978017B2 (en) | 1997-10-14 | 2005-12-20 | Entrust Limited | Method and system for providing updated encryption key pairs and digital signature key pairs in a public key system |
US6259789B1 (en) | 1997-12-12 | 2001-07-10 | Safecourier Software, Inc. | Computer implemented secret object key block cipher encryption and digital signature device and method |
US6185679B1 (en) | 1998-02-23 | 2001-02-06 | International Business Machines Corporation | Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks |
JP3659791B2 (ja) | 1998-03-23 | 2005-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 小時間鍵生成の方法及びシステム |
US6336186B1 (en) | 1998-07-02 | 2002-01-01 | Networks Associates Technology, Inc. | Cryptographic system and methodology for creating and managing crypto policy on certificate servers |
JP3939453B2 (ja) | 1999-01-22 | 2007-07-04 | 三菱電機株式会社 | 情報仲介システム |
US6356941B1 (en) | 1999-02-22 | 2002-03-12 | Cyber-Ark Software Ltd. | Network vaults |
US6505299B1 (en) | 1999-03-01 | 2003-01-07 | Sharp Laboratories Of America, Inc. | Digital image scrambling for image coding systems |
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 | 鍵管理方法、鍵管理システム及び記録媒体 |
JP4132530B2 (ja) * | 2000-01-24 | 2008-08-13 | 株式会社リコー | 電子保存装置 |
US8868914B2 (en) | 1999-07-02 | 2014-10-21 | Steven W. Teppler | System and methods for distributing trusted time |
SE9904094D0 (sv) | 1999-11-12 | 1999-11-12 | Protegrity Research & Dev | Method for reencryption of a database |
WO2001054099A1 (fr) | 2000-01-21 | 2001-07-26 | Sony Corporation | Systeme d'authentification de donnees |
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 |
US7362868B2 (en) | 2000-10-20 | 2008-04-22 | Eruces, Inc. | Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data |
JP2002140534A (ja) | 2000-11-01 | 2002-05-17 | Sony Corp | ログ管理構成を持つコンテンツ配信システムおよびコンテンツ配信方法 |
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 |
US20030037237A1 (en) | 2001-04-09 | 2003-02-20 | Jean-Paul Abgrall | Systems and methods for computer device authentication |
JP2007037197A (ja) | 2001-08-01 | 2007-02-08 | Matsushita Electric Ind Co Ltd | 暗号化データ配信システム |
CA2358048A1 (en) | 2001-09-25 | 2003-03-25 | Luis Rueda | A cryptosystem for data security |
CA2358980A1 (en) | 2001-10-12 | 2003-04-12 | Karthika Technologies Inc. | Distributed security architecture for storage area networks (san) |
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 |
US7333616B1 (en) | 2001-11-14 | 2008-02-19 | Omniva Corp. | Approach for managing access to messages using encryption key management policies |
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 |
US7865446B2 (en) * | 2001-12-11 | 2011-01-04 | International Businesss Machines Corporation | Method for secure electronic commercial transaction on-line processing |
US7580972B2 (en) | 2001-12-12 | 2009-08-25 | Valve Corporation | Method and system for controlling bandwidth on client and server |
JP4291970B2 (ja) | 2001-12-20 | 2009-07-08 | 富士通株式会社 | 暗号処理装置 |
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 | 株式会社日立製作所 | 公開鍵暗号方式における登録局サーバの運用方法、登録局サーバ、及びプログラム |
US7400733B1 (en) | 2002-02-27 | 2008-07-15 | Atheros Communications, Inc. | Key refresh at the MAC layer |
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 |
US6965674B2 (en) | 2002-05-21 | 2005-11-15 | Wavelink Corporation | System and method for providing WLAN security through synchronized update and rotation of WEP keys |
CA2486713A1 (en) | 2002-05-23 | 2003-12-04 | Atmel Corporation | Advanced encryption standard (aes) hardware cryptographic engine |
US20040009815A1 (en) | 2002-06-26 | 2004-01-15 | Zotto Banjamin O. | Managing access to content |
JP2005533438A (ja) | 2002-07-12 | 2005-11-04 | イングリアン ネットワークス インコーポレーテッド | ネットワークに付随する暗号化 |
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 |
US8064508B1 (en) | 2002-09-19 | 2011-11-22 | Silicon Image, Inc. | Equalizer with controllably weighted parallel high pass and low pass filters and receiver including such an equalizer |
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 |
US20050015471A1 (en) | 2003-07-18 | 2005-01-20 | Zhang Pu Paul | Secure cluster configuration data set transfer protocol |
US7697690B2 (en) | 2003-07-21 | 2010-04-13 | Hewlett-Packard Development Company, L.P. | Windowed backward key rotation |
JP4062206B2 (ja) | 2003-08-01 | 2008-03-19 | 日本電気株式会社 | 署名復号サービスシステム及びプログラム |
JP2005151529A (ja) | 2003-10-20 | 2005-06-09 | Sony Corp | データ伝送方法、データ伝送装置及びデータ受信装置 |
US7421079B2 (en) | 2003-12-09 | 2008-09-02 | Northrop Grumman Corporation | Method and apparatus for secure key replacement |
JP2005197912A (ja) | 2004-01-06 | 2005-07-21 | Nippon Telegr & Teleph Corp <Ntt> | 情報開示制御方法、情報開示制御プログラム、ならびに、耐タンパ装置 |
US8065720B1 (en) * | 2004-01-06 | 2011-11-22 | Novell, Inc. | Techniques for managing secure communications |
US7296023B2 (en) | 2004-01-15 | 2007-11-13 | International Business Machines Corporation | Method and apparatus for persistent real-time collaboration |
JP2005258801A (ja) | 2004-03-11 | 2005-09-22 | Matsushita Electric Ind Co Ltd | 個人認証システム |
EP2267624B1 (en) * | 2004-04-19 | 2017-07-12 | Lumension Security S.A. | A generic framework for runtime interception and execution control of interpreted languages |
JP4532484B2 (ja) | 2004-05-17 | 2010-08-25 | 三菱電機株式会社 | 量子暗号通信装置 |
US20050273629A1 (en) | 2004-06-04 | 2005-12-08 | Vitalsource Technologies | System, method and computer program product for providing digital rights management of protected content |
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 |
JP4847328B2 (ja) | 2004-07-15 | 2011-12-28 | パナソニック株式会社 | 時刻認証装置、時刻認証方法、コンピュータプログラム、記録媒体、集積回路及び時刻認証システム |
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 |
US20060048222A1 (en) | 2004-08-27 | 2006-03-02 | O'connor Clint H | Secure electronic delivery seal for information handling system |
US7814314B2 (en) * | 2004-08-31 | 2010-10-12 | Ntt Docomo, Inc. | Revocation of cryptographic digital certificates |
JP2006099548A (ja) | 2004-09-30 | 2006-04-13 | Hitachi Ltd | データ共有システム、データ共有方法、データ保有者デバイスおよびデータサーバ |
US8315387B2 (en) | 2004-11-05 | 2012-11-20 | Nucrypt Llc | System and method for data transmission over arbitrary media using physical encryption |
US7607164B2 (en) | 2004-12-23 | 2009-10-20 | Microsoft Corporation | Systems and processes for managing policy change in a distributed enterprise |
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 |
JP4622627B2 (ja) | 2005-03-30 | 2011-02-02 | ブラザー工業株式会社 | 通信装置、通信システム及びプログラム |
US8051487B2 (en) | 2005-05-09 | 2011-11-01 | Trend Micro Incorporated | Cascading security architecture |
US8312064B1 (en) | 2005-05-11 | 2012-11-13 | Symantec Corporation | Method and apparatus for securing documents using a position dependent file system |
JP2006319543A (ja) | 2005-05-11 | 2006-11-24 | Nec Corp | コンテンツ再生システム、携帯端末、コンテンツ再生方法、およびコンテンツ再生管理プログラム |
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 |
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 |
US8917159B2 (en) | 2005-08-19 | 2014-12-23 | CLARKE William McALLISTER | Fully secure item-level tagging |
US8566607B2 (en) | 2005-08-26 | 2013-10-22 | International Business Machines Corporation | Cryptography methods and apparatus used with a processor |
JP2007081482A (ja) | 2005-09-09 | 2007-03-29 | Canon Inc | 端末認証方法及びその装置、プログラム |
FI20051022A (fi) * | 2005-10-11 | 2007-04-12 | Meridea Financial Software Oy | Menetelmä, laite, palvelinjärjestely, järjestelmä ja tietokoneohjelmatuotteet datan tallentamiseksi turvallisesti kannettavassa laitteessa |
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 |
US7925023B2 (en) * | 2006-03-03 | 2011-04-12 | Oracle International Corporation | Method and apparatus for managing cryptographic keys |
US7751570B2 (en) | 2006-04-04 | 2010-07-06 | 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 |
JP2007293468A (ja) | 2006-04-24 | 2007-11-08 | Fujifilm Corp | プリントサービスシステムおよびプリント処理方法 |
US9002018B2 (en) | 2006-05-09 | 2015-04-07 | Sync Up Technologies Corporation | Encryption key exchange system and method |
US20080005024A1 (en) | 2006-05-17 | 2008-01-03 | Carter Kirkwood | Document authentication system |
US20070283446A1 (en) | 2006-06-05 | 2007-12-06 | Kabushiki Kaisha Toshiba | System and method for secure handling of scanned documents |
US20080019516A1 (en) | 2006-06-22 | 2008-01-24 | Entriq Inc. | Enforced delay of access to digital content |
JP4943751B2 (ja) | 2006-07-04 | 2012-05-30 | 株式会社内田洋行 | 電子データアクセス制御システム、プログラム及び情報記憶媒体 |
CN101102186B (zh) | 2006-07-04 | 2012-01-04 | 华为技术有限公司 | 通用鉴权框架推送业务实现方法 |
US8108670B2 (en) | 2006-07-13 | 2012-01-31 | Intel Corporation | Client apparatus and method with key manager |
US20080025514A1 (en) | 2006-07-25 | 2008-01-31 | Coombs Jason S | Systems And Methods For Root Certificate Update |
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 |
WO2008121157A2 (en) | 2006-10-12 | 2008-10-09 | Rsa Security Inc. | Cryptographic key management system facilitating secure access of data portions to corresponding groups of users |
JP4712017B2 (ja) | 2006-11-13 | 2011-06-29 | 韓國電子通信研究院 | ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法 |
US8213602B2 (en) * | 2006-11-27 | 2012-07-03 | Broadcom Corporation | Method and system for encrypting and decrypting a transport stream using multiple algorithms |
JP4847301B2 (ja) | 2006-11-28 | 2011-12-28 | 富士通株式会社 | コンテンツ保護システム,コンテンツ保護用デバイスおよびコンテンツ保護方法 |
WO2008127446A2 (en) | 2006-12-01 | 2008-10-23 | President And Fellows Of Harvard College | A method and apparatus for time-lapse cryptography |
CN101589623B (zh) | 2006-12-12 | 2013-03-13 | 弗劳恩霍夫应用研究促进协会 | 对表示时域数据流的数据段进行编码和解码的编码器、解码器以及方法 |
US20080172562A1 (en) | 2007-01-12 | 2008-07-17 | Christian Cachin | Encryption and authentication of data and for decryption and verification of authenticity of data |
US7870398B2 (en) | 2007-01-25 | 2011-01-11 | International Business Machines Corporation | Integrity assurance of query result from database service provider |
US8879727B2 (en) | 2007-08-31 | 2014-11-04 | Ip Reservoir, Llc | Method and apparatus for hardware-accelerated encryption/decryption |
KR101391152B1 (ko) | 2007-04-05 | 2014-05-02 | 삼성전자주식회사 | Ums 기기의 컨텐츠를 보호하기 위한 방법 및 장치 |
US8218761B2 (en) | 2007-04-06 | 2012-07-10 | Oracle International Corporation | Method and apparatus for generating random data-encryption keys |
CA2684229A1 (en) | 2007-04-12 | 2008-10-23 | Ncipher Corporation Ltd. | Method and system for identifying and managing keys |
US8429406B2 (en) | 2007-06-04 | 2013-04-23 | Qualcomm Atheros, Inc. | Authorizing customer premise equipment into a network |
JP2008306418A (ja) | 2007-06-07 | 2008-12-18 | Kddi Corp | ネットワーク負荷軽減システム、ネットワーク負荷軽減方法およびプログラム |
US20080319909A1 (en) | 2007-06-25 | 2008-12-25 | Perkins George S | System and method for managing the lifecycle of encryption keys |
CA2693743C (en) | 2007-07-17 | 2016-10-04 | Chris Alexander Peirson | Systems and processes for obtaining and managing electronic signatures for real estate transaction documents |
US8111828B2 (en) * | 2007-07-31 | 2012-02-07 | Hewlett-Packard Development Company, L.P. | Management of cryptographic keys for securing stored data |
US7894626B2 (en) | 2007-08-31 | 2011-02-22 | Xerox Corporation | System and method for the generation of multiple angle correlation-based digital watermarks |
US8140847B1 (en) | 2007-09-18 | 2012-03-20 | Jianqing Wu | Digital safe |
CN101399661A (zh) | 2007-09-27 | 2009-04-01 | 华为技术有限公司 | 一种组密钥管理中的合法邻居认证方法和装置 |
CN101400059B (zh) | 2007-09-28 | 2010-12-08 | 华为技术有限公司 | 一种active状态下的密钥更新方法和设备 |
US8549278B2 (en) | 2007-10-20 | 2013-10-01 | Blackout, Inc. | Rights management services-based file encryption system and method |
WO2009060283A1 (en) | 2007-11-05 | 2009-05-14 | Synaptic Laboratories Limited | Method and apparatus for secure communication |
KR100980831B1 (ko) | 2007-12-12 | 2010-09-10 | 한국전자통신연구원 | 일회용 패스워드를 이용한 신뢰성 있는 통신 시스템 및방법 |
US8495357B2 (en) | 2007-12-19 | 2013-07-23 | International Business Machines Corporation | Data security policy enforcement |
US8175276B2 (en) | 2008-02-04 | 2012-05-08 | Freescale Semiconductor, Inc. | Encryption apparatus with diverse key retention schemes |
JP4896054B2 (ja) | 2008-03-06 | 2012-03-14 | イートライアル株式会社 | 個人情報管理装置,個人情報管理プログラムおよび個人情報管理システム |
US8681990B2 (en) | 2008-03-28 | 2014-03-25 | International Business Machines Corporation | Renewal management for data items |
JP4526574B2 (ja) | 2008-03-31 | 2010-08-18 | 富士通株式会社 | 暗号データ管理システム、および暗号データ管理方法 |
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 |
US20110099362A1 (en) * | 2008-06-23 | 2011-04-28 | Tomoyuki Haga | Information processing device, encryption key management method, computer program and integrated circuit |
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 |
US8005859B2 (en) | 2008-07-09 | 2011-08-23 | The Go Daddy Group, Inc. | Maintaining contact with a document storage file owner |
JP4620146B2 (ja) | 2008-07-18 | 2011-01-26 | 株式会社東芝 | 情報処理装置及び認証方法 |
US8245039B2 (en) | 2008-07-18 | 2012-08-14 | Bridgewater Systems Corp. | Extensible authentication protocol authentication and key agreement (EAP-AKA) optimization |
US8302170B2 (en) | 2008-09-22 | 2012-10-30 | Bespoke Innovations S.A.R.L. | Method for enhancing network application security |
US9742555B2 (en) | 2008-09-25 | 2017-08-22 | Nokia Technologies Oy | Encryption/identification using array of resonators at transmitter and receiver |
US8804950B1 (en) | 2008-09-30 | 2014-08-12 | Juniper Networks, Inc. | Methods and apparatus for producing a hash value based on a hash function |
JP2010124071A (ja) | 2008-11-17 | 2010-06-03 | Toshiba Corp | 通信装置、通信方法及びプログラム |
US8392682B2 (en) | 2008-12-17 | 2013-03-05 | Unisys Corporation | Storage security using cryptographic splitting |
JP2010128824A (ja) | 2008-11-27 | 2010-06-10 | Hitachi Software Eng Co Ltd | ポリシーグループ識別子を利用したクライアント制御システム |
CN101753302B (zh) | 2008-12-09 | 2012-07-04 | 北大方正集团有限公司 | 一种保证sip通信安全的方法和*** |
US8555089B2 (en) | 2009-01-08 | 2013-10-08 | Panasonic Corporation | Program execution apparatus, control method, control program, and integrated circuit |
US8699704B2 (en) | 2010-01-13 | 2014-04-15 | Entropic Communications, Inc. | Secure node admission in a communication network |
US8738932B2 (en) | 2009-01-16 | 2014-05-27 | Teleputers, Llc | System and method for processor-based security |
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 |
CA2752752C (en) | 2009-02-27 | 2015-09-15 | Certicom Corp. | System and method for securely communicating with electronic meters |
US8654970B2 (en) | 2009-03-31 | 2014-02-18 | Oracle America, Inc. | Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm |
US20100250965A1 (en) | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm |
US20100266132A1 (en) | 2009-04-15 | 2010-10-21 | Microsoft Corporation | Service-based key escrow and security for device data |
US8286004B2 (en) | 2009-10-09 | 2012-10-09 | Lsi Corporation | Saving encryption keys in one-time programmable memory |
US8251283B1 (en) | 2009-05-08 | 2012-08-28 | Oberon Labs, LLC | Token authentication using spatial characteristics |
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 |
GB2471282B (en) | 2009-06-22 | 2015-02-18 | Barclays Bank Plc | Method and system for provision of cryptographic services |
JP2011019129A (ja) | 2009-07-09 | 2011-01-27 | Nec Corp | データ管理システム及びデータ管理方法 |
US8799322B2 (en) | 2009-07-24 | 2014-08-05 | Cisco Technology, Inc. | Policy driven cloud storage management and cloud storage policy router |
US8560848B2 (en) | 2009-09-02 | 2013-10-15 | Marvell World Trade Ltd. | Galois/counter mode encryption in a wireless network |
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 |
US9043877B2 (en) | 2009-10-06 | 2015-05-26 | International Business Machines Corporation | Temporarily providing higher privileges for computing system to user identifier |
US8572369B2 (en) | 2009-12-11 | 2013-10-29 | Sap Ag | Security for collaboration services |
JP2013514577A (ja) | 2009-12-18 | 2013-04-25 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 属性ベースの暗号化を用いるデジタル権利管理 |
CN101741547B (zh) | 2009-12-18 | 2012-05-23 | 西安西电捷通无线网络通信股份有限公司 | 节点间保密通信方法及*** |
US8478996B2 (en) | 2009-12-21 | 2013-07-02 | International Business Machines Corporation | Secure Kerberized access of encrypted file system |
GB201000288D0 (en) | 2010-01-11 | 2010-02-24 | Scentrics Information Security | System and method of enforcing a computer policy |
US8650129B2 (en) | 2010-01-20 | 2014-02-11 | American Express Travel Related Services Company, Inc. | Dynamically reacting policies and protections for securing mobile financial transaction data in transit |
JP5375976B2 (ja) | 2010-01-22 | 2013-12-25 | 富士通株式会社 | 認証方法、認証システムおよび認証プログラム |
JP5070305B2 (ja) | 2010-01-29 | 2012-11-14 | 株式会社日本総合研究所 | 取引中継方法および取引中継システム |
US20110213971A1 (en) | 2010-03-01 | 2011-09-01 | Nokia Corporation | Method and apparatus for providing rights management at file system level |
US8370648B1 (en) | 2010-03-15 | 2013-02-05 | Emc International Company | Writing and reading encrypted data using time-based encryption keys |
US8667269B2 (en) | 2010-04-02 | 2014-03-04 | Suridx, Inc. | Efficient, secure, cloud-based identity services |
US8555059B2 (en) | 2010-04-16 | 2013-10-08 | Microsoft Corporation | Secure local update of content management software |
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 |
US9160738B2 (en) | 2010-05-27 | 2015-10-13 | Microsoft Corporation | Delegation-based authorization |
US8462955B2 (en) * | 2010-06-03 | 2013-06-11 | Microsoft Corporation | Key protectors based on online keys |
US20120079289A1 (en) | 2010-09-27 | 2012-03-29 | Skymedi Corporation | Secure erase system for a solid state non-volatile memory device |
JP2012073374A (ja) | 2010-09-28 | 2012-04-12 | Fujikura Ltd | 光ファイバ切断装置 |
US8504837B2 (en) | 2010-10-15 | 2013-08-06 | Rockwell Automation Technologies, Inc. | Security model for industrial devices |
US9961550B2 (en) | 2010-11-04 | 2018-05-01 | Itron Networked Solutions, Inc. | Physically secured authorization for utility applications |
US20120114118A1 (en) | 2010-11-05 | 2012-05-10 | Samsung Electronics Co., Ltd. | Key rotation in live adaptive streaming |
US8832726B2 (en) | 2010-11-17 | 2014-09-09 | Verizon Patent And Licensing Inc. | Video streaming entitlement determined based on the location of the viewer |
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 | 고려대학교 산학협력단 | 보안 서비스 제공 시스템 및 방법 |
CN102130768B (zh) | 2010-12-20 | 2012-11-07 | 西安西电捷通无线网络通信股份有限公司 | 一种具有链路层加解密能力的终端设备及其数据处理方法 |
US9306741B1 (en) | 2010-12-22 | 2016-04-05 | Emc Corporation | Updating keys for use in authentication |
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 |
JP5564453B2 (ja) | 2011-02-25 | 2014-07-30 | 株式会社エヌ・ティ・ティ・データ | 情報処理システム、及び情報処理方法 |
CA2829197A1 (en) | 2011-03-07 | 2012-09-13 | Security First Corp. | Secure file sharing method and system |
JP5676331B2 (ja) | 2011-03-24 | 2015-02-25 | 株式会社東芝 | ルートノード及びプログラム |
US8379857B1 (en) | 2011-03-30 | 2013-02-19 | Google Inc. | Secure key distribution for private communication in an unsecured communication channel |
US8789210B2 (en) | 2011-05-04 | 2014-07-22 | International Business Machines Corporation | Key usage policies for cryptographic keys |
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 |
US9690941B2 (en) | 2011-05-17 | 2017-06-27 | Microsoft Technology Licensing, Llc | Policy bound key creation and re-wrap service |
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 |
US20120323717A1 (en) | 2011-06-16 | 2012-12-20 | OneID, Inc. | Method and system for determining authentication levels in transactions |
US8891772B2 (en) | 2011-06-17 | 2014-11-18 | Microsoft Corporation | Cloud key escrow system |
US20120321078A1 (en) | 2011-06-20 | 2012-12-20 | Jason Chambers | Key rotation and selective re-encryption for data security |
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 |
US8774403B2 (en) | 2011-12-08 | 2014-07-08 | 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 |
US8873754B2 (en) | 2011-12-20 | 2014-10-28 | Huawei Technologies Co., Ltd. | Proxy-based encryption method, proxy-based decryption method, network equipment, network device and system |
SG11201403482TA (en) | 2011-12-21 | 2014-07-30 | Ssh Comm Security Oyj | Automated access, key, certificate, and credential management |
US9449183B2 (en) | 2012-01-28 | 2016-09-20 | Jianqing Wu | Secure file drawer and safe |
CN104169935B (zh) | 2012-03-28 | 2017-10-31 | 索尼公司 | 信息处理装置、信息处理***、信息处理方法 |
US8964990B1 (en) * | 2012-05-17 | 2015-02-24 | Amazon Technologies, Inc. | Automating key rotation in a distributed system |
US9237446B2 (en) | 2012-05-24 | 2016-01-12 | Blackberry Limited | System and method for controlling access to media content |
CA2877451C (en) | 2012-06-22 | 2020-11-10 | Ologn Technologies Ag | Systems, methods and apparatuses for securing root certificates |
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 |
US9400890B2 (en) | 2012-08-10 | 2016-07-26 | Qualcomm Incorporated | Method and devices for selective RAM scrambling |
US20140115327A1 (en) * | 2012-10-22 | 2014-04-24 | Microsoft Corporation | Trust services data encryption for multiple parties |
US9143491B2 (en) | 2012-10-29 | 2015-09-22 | Empire Technology Development Llc | Quorum-based virtual machine security |
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 |
US9705674B2 (en) * | 2013-02-12 | 2017-07-11 | Amazon Technologies, Inc. | Federated key management |
US9367697B1 (en) | 2013-02-12 | 2016-06-14 | Amazon Technologies, Inc. | Data security with a security module |
-
2013
- 2013-02-12 US US13/765,209 patent/US9705674B2/en active Active
-
2014
- 2014-02-07 CN CN201480013039.5A patent/CN105191207B/zh active Active
- 2014-02-07 WO PCT/US2014/015408 patent/WO2014126814A1/en active Application Filing
- 2014-02-07 JP JP2015558043A patent/JP6514115B2/ja active Active
- 2014-02-07 CN CN202010838180.6A patent/CN111884801A/zh active Pending
- 2014-02-07 EP EP14751612.4A patent/EP2957065A4/en not_active Withdrawn
- 2014-02-07 CA CA2899008A patent/CA2899008C/en active Active
- 2014-02-07 EP EP19203674.7A patent/EP3661121A1/en active Pending
- 2014-02-07 CA CA3190899A patent/CA3190899A1/en active Pending
-
2016
- 2016-12-12 US US15/376,451 patent/US10666436B2/en active Active
-
2017
- 2017-12-01 JP JP2017232031A patent/JP7045837B2/ja active Active
-
2020
- 2020-05-07 US US16/869,423 patent/US11695555B2/en active Active
- 2020-07-01 JP JP2020114298A patent/JP7295068B2/ja active Active
-
2023
- 2023-05-12 US US18/196,750 patent/US20230291556A1/en active Pending
- 2023-06-08 JP JP2023094952A patent/JP2023113889A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030021417A1 (en) * | 2000-10-20 | 2003-01-30 | Ognjen Vasic | Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data |
CN101573910A (zh) * | 2006-10-31 | 2009-11-04 | 新加坡科技研究局 | 生成和分配对数字对象的访问许可的设备和方法 |
US20120297183A1 (en) * | 2011-05-16 | 2012-11-22 | Prakash Umasankar Mukkara | Techniques for non repudiation of storage in cloud or shared storage environments |
Also Published As
Publication number | Publication date |
---|---|
CA2899008C (en) | 2023-04-18 |
CA3190899A1 (en) | 2014-08-21 |
JP2020167744A (ja) | 2020-10-08 |
EP3661121A1 (en) | 2020-06-03 |
JP2018067941A (ja) | 2018-04-26 |
US20170093581A1 (en) | 2017-03-30 |
US20230291556A1 (en) | 2023-09-14 |
EP2957065A4 (en) | 2016-10-12 |
JP6514115B2 (ja) | 2019-05-15 |
EP2957065A1 (en) | 2015-12-23 |
US10666436B2 (en) | 2020-05-26 |
US20200266976A1 (en) | 2020-08-20 |
US11695555B2 (en) | 2023-07-04 |
JP7045837B2 (ja) | 2022-04-01 |
US9705674B2 (en) | 2017-07-11 |
CN105191207A (zh) | 2015-12-23 |
US20140229737A1 (en) | 2014-08-14 |
WO2014126814A1 (en) | 2014-08-21 |
CN111884801A (zh) | 2020-11-03 |
CA2899008A1 (en) | 2014-08-21 |
JP2023113889A (ja) | 2023-08-16 |
JP2016511994A (ja) | 2016-04-21 |
JP7295068B2 (ja) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11695555B2 (en) | Federated key management | |
JP6542962B2 (ja) | 遅延データアクセス | |
EP2957063B1 (en) | Policy enforcement with associated data | |
US10911457B2 (en) | Immediate policy effectiveness in eventually consistent systems | |
US11372993B2 (en) | Automatic key rotation |
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 |