IP Library › Granted Patent US 10,250,382
Granted Patent B2
US 10,250,382 · App. 15/888,765 · Granted Apr 2, 2019

Unified management of cryptographic keys using virtual keys and referrals

Inventor: Gregory Branchek Roth (Seattle, WA)
Assignee: AMAZON TECHNOLOGIES, INC.
H04L9/0822H04L9/088H04L9/0861H04L9/0897H04L2209/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,250,382
App. No.
15/888,765
Granted
Apr 2, 2019
Kind
B2
Abstract

A cryptography service allows for management of cryptographic keys in multiple environments. The service allows for specification of policies applicable to cryptographic keys, such as what cryptographic algorithms should be used in which contexts. The cryptography service, upon receiving a request for a key, may provide a referral to another system to obtain the key.

Claims (58)

1. A system comprising memory to store executable instructions that, as a result of execution by one or more processors, cause the system to:

receive, from a client, a request to perform an operation using a cryptographic key, the request specifying a key identifier;

select, based at least in part on the key identifier, a key from a set of keys managed for an entity associated with the client, the set of keys including a subset of virtual keys, the subset of virtual keys being associated with a set of cryptographic keys that is stored in another computing device; and

provide, based at least in part on the key being a member of the subset of virtual keys, a cryptographic configuration and a reference to the computing device, the reference including information usable to cause the other computing device to perform the operation using the cryptographic key.

2. The system of claim 1 , wherein the executable instructions, as a result of execution by the one or more processors, further cause the system to:

receive an application programming interface request to add a second key to the subset of virtual keys; and

fulfill the application programming interface request by at least associating an identifier for the second key with a second reference to the computing device.

3. The system of claim 1 , wherein:

the request for the cryptographic key indicates one or more capabilities of the client; and

the executable instructions, as a result of execution by the one or more processors, further cause the system to select the cryptographic configuration to match the one or more capabilities of the client.

4. The system of claim 1 , wherein the reference comprises information usable by the client to determine credentials usable to cause the computing device to provide the cryptographic key.

5. The system of claim 1 , wherein the request is to obtain the cryptographic key and the operation using the cryptographic key is to obtain the cryptographic key.

6. A computer-implemented method, comprising:

receiving, at a computer system, a request to perform an operation, the request indicating a key identifier;

determining the key identifier is associated with a key of a set of cryptographic keys that is stored in another computer system; and

providing a response to the request that enables submission of a second request to perform the operation using the key.

7. The computer-implemented method of claim 6 , wherein the request comprises:

a network location of the other computing system; and

configuration information indicating a format for the submission of the second request.

8. The computer-implemented method of claim 6 , wherein a first subset of the set of cryptographic keys is accessible to the computing system and a second subset of the set of cryptographic keys is inaccessible to the computing system and managed by the other computing system, the second subset comprising the key.

9. The computer-implemented method of claim 6 , wherein:

the request for the key comprises an encryption context; and

the method further comprises:

determining, based at least in part on the encryption context, a plugin usable to submit the second request; and

providing the plugin as part of the response.

10. The computer-implemented method of claim 9 , wherein:

the encryption context indicates a set of supported encryption algorithms; and

determining the plugin comprises:

determining the set of supported encryption algorithms is inoperable to communicate with the other computing system; and

determining the plugin supports an encryption algorithm usable to submit the second request.

11. The computer-implemented method of claim 6 , wherein the other computing system is a security module.

12. The computer-implemented method of claim 6 , wherein:

the request is received from a requestor and indicates one or more capabilities of the requestor; and

the response comprises a cryptographic algorithm selected based at least in part on the one or more capabilities.

13. The computer-implemented method of claim 12 , wherein the cryptographic algorithm is selected based at least in part on a ranking of cryptographic algorithms that is associated with the key identifier.

14. A non-transitory computer-readable storage medium to store executable instructions that, if executed by one or more processors of a computer system, cause the computer system to at least:

receive, from a first computing device, a response to a first request, the first request indicating a key identifier;

determine that the response indicates a referral to a second computing device; and

transmit a second request to the second computing device to perform an operation using a cryptographic key associated with the key identifier.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the executable instructions further include instructions that, if executed, cause the computer system to:

receive, from the first computing device, another response to a third request specifying another key identifier;

determine that the other response includes another key; and

use the other key to encrypt data.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the executable instructions further include instructions that, if executed, cause the computer system to:

receive, from the first computing device, another response to a third request indicating another key identifier;

determine that the other response includes another key and an encrypted data key encrypted under a cryptographic key identified by the other key identifier;

encrypt data to produce encrypted data; and

associate the encrypted data with the encrypted data key.

17. The non-transitory computer-readable storage medium of claim 14 , wherein the second computing device is accessible over a private network that includes the computer system.

18. The non-transitory computer-readable storage medium of claim 14 , wherein the second computing device is a hardware security module.

19. The non-transitory computer-readable storage medium of claim 14 , wherein:

the response indicates a cryptographic algorithm; and

as a result of the response indicating the cryptographic algorithm, the executable instructions further include executable instructions that, if executed, cause the computer system to encrypt data using the key and the cryptographic algorithm.

20. The non-transitory computer-readable storage medium of claim 14 , wherein:

the response further includes information sufficient to determine credentials for obtaining the key from the second computing device; and

the executable instructions further include executable instructions that, if executed, cause the computer system to:

determine the credentials based at least in part on the information; and

obtain, based at least in part on the credentials, the key from the second computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2018
From: ROTH, GREGORY BRANCHEK
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 044834/0306 →
Continuity (2)
Continuation 14498732 · Sep 26, 2014
Related Publication 20180159684A1 · Jun 7, 2018