IP Library › Granted Patent US 10,003,584
Granted Patent B1
US 10,003,584 · App. 14/475,457 · Granted Jun 19, 2018

Durable key management

Inventors: Gregory Branchek Roth (Seattle, WA); Gregory Alan Rubin (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04L63/06H04L9/08H04L9/0822
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,003,584
App. No.
14/475,457
Filed
Sep 2, 2014
Granted
Jun 19, 2018
Kind
B1
Art Unit
2494
USPC
713/164
Abstract

Data is durably backed up for a limited amount of time. The data may be encrypted under a key and the key may be encrypted under a backup key. The backup key has a limited lifetime at the end of which the backup key is destroyed. After the backup key is destroyed, recoverability of the data depends on whether the key was deleted. In some examples, the data is a set of cryptographic keys.

Claims (60)

1. A computer-implemented method, comprising:

receiving, by one or more computer systems, an application programming interface request whose fulfillment includes backing up a first cryptographic key, wherein the application programming interface request is a call to an application programming interface; and

fulfilling, by the one or more computer systems, the application programming interface request by at least:

obtaining the first cryptographic key;

determining a backup duration;

selecting, based at least in part on the backup duration, a public cryptographic key, the public cryptographic key selected from a plurality of public cryptographic keys, the plurality of public cryptographic keys having a corresponding set of private cryptographic keys stored in an offline repository;

encrypting the first cryptographic key such that the first cryptographic key is decryptable with a second cryptographic key;

encrypting the second cryptographic key using the selected public cryptographic key, the selected public cryptographic key having a corresponding private cryptographic key that is stored in the offline repository and scheduled to be destroyed at a future time; and

providing the encrypted first cryptographic key in response to the application programming interface request.

2. The computer-implemented method of claim 1 , wherein:

providing the encrypted first cryptographic key in response to the application programming interface request includes providing a backup object that encodes the encrypted first cryptographic key and an expiration for restoration of the first cryptographic key; and

the method further comprises receiving a request to restore the first cryptographic key after the expiration has passed and, as a result of the expiration having passed, denying the request.

3. The computer-implemented method of claim 2 , wherein the backup object further comprises the encrypted second cryptographic key.

4. The computer-implemented method of claim 1 , further comprising:

destroying the private cryptographic key as scheduled; and

after the private cryptographic key is destroyed,

fulfilling a request to restore the first cryptographic key by using the second cryptographic key to obtain the first cryptographic key.

5. The computer-implemented method of claim 4 , wherein:

encrypting the first cryptographic key includes encrypting the first cryptographic key with one or more restrictions on the first cryptographic key; and

the method further comprises:

receiving a request to extend a durability duration of the first cryptographic key;

decrypting the encrypted first cryptographic key to obtain the one or more restrictions;

determining that extension of the durability duration complies with the one or more restrictions;

encrypting the first cryptographic key together with the one or more restrictions using a third cryptographic key; and

encrypting the third cryptographic key with another public cryptographic key from the plurality of public cryptographic keys, the public cryptographic key scheduled to be destroyed at a second future time later than the future time.

6. The computer-implemented method of claim 1 , further comprising:

selecting, from the set of private cryptographic keys, a subset of expired private cryptographic keys;

causing the selected subset to become inaccessible; and

adding, to the set of private cryptographic keys, one or more additional private cryptographic keys each with a corresponding expiration in the future.

7. A system, comprising at least one computing device that implements one or more services that:

obtain, as a result of a call to an application programming interface, data for backup;

determine a backup duration;

select, based at least in part on the backup duration, a backup key from a set of keys each having a corresponding expiration, the backup key stored to be programmatically inaccessible over a network; and

use a first cryptographic key to generate an encrypted backup of the data such that:

for a first amount of time corresponding to the backup duration, the data is recoverable, using the selected backup key, from the encrypted backup after fulfillment of a request to delete the first cryptographic key; and

after the first amount of time has passed, the data is irrecoverable from the encrypted backup after fulfillment of the request to delete the first cryptographic key, wherein:

the system generates the backup for fulfillment of the call to the application programming interface by at least encrypting the data to be decryptable using the first cryptographic key and encrypting the first cryptographic key to be decryptable using a second cryptographic key scheduled to be destroyed at a future time, the second cryptographic key being a private cryptographic key that corresponds to a public cryptographic key; and

destruction of the second cryptographic key causes the data to become programmatically irrecoverable from the encrypted backup after fulfillment of the request to delete the first cryptographic key.

8. The system of claim 7 , wherein the data for backup comprises a second cryptographic key.

9. The system of claim 7 , wherein the generated encrypted backup is contained in a backup object that encodes an expiration for restorability of the data such that, after the expiration, the system will deny a request to restore the data.

10. The system of claim 7 , wherein the backup key is stored in an offline repository.

11. The system of claim 7 , wherein the encrypted backup is in a backup object that specifies a policy defining a set of conditions for restoration of the data that the system is configured to enforce.

12. The system of claim 7 , wherein:

the first cryptographic key is backed up for a limited time enforced by the system; and

the data is restorable using the first cryptographic key after the limited time if the request to delete the first cryptographic key has not been received.

13. The system of claim 7 , wherein the data is backed up by encoding the encrypted data in a backup object that includes the first cryptographic key in encrypted form, the first cryptographic key being decryptable using a second cryptographic key that is scheduled to be destroyed at a future time.

14. One or more non-transitory computer-readable storage media having stored thereon executable instructions that, when executed by one or more processors of a system, cause the system to at least:

obtain, as a result of a call to an application programming interface, data for backup;

encrypt the data such that the data is decryptable using a first cryptographic key;

determine a backup duration;

encrypt the first cryptographic key such that the first cryptographic key is decryptable using a second cryptographic key, the second cryptographic key managed so as to ensure a limited lifetime for the second cryptographic key corresponding to the backup duration after which the first cryptographic key is unrecoverable using the second cryptographic key, the limited lifetime being a result of the second cryptographic key being associated with a destruction time on a schedule of cryptographic key destruction, the second cryptographic key being a private cryptographic key corresponding to a public cryptographic key used to encrypt the first cryptographic key and being programmatically inaccessible over a network; and

perform, an operation to fulfill the call to the application programming interface, cause the encrypted data to be persistently stored.

15. The one or more non-transitory computer-readable storage media of claim 14 , wherein the data is a cryptographic key stored by the system for use in performing cryptographic operations.

16. The one or more non-transitory computer-readable storage media of claim 14 , wherein:

the system is operated by a service provider; and

the instructions that cause the system to cause the data to be persistently stored, when executed by the one or more processors, cause the system to provide the encrypted data to a customer of the service provider to which the data corresponds.

17. The one or more non-transitory computer-readable storage media of claim 14 , wherein the second cryptographic key is stored in an offline repository.

18. The one or more non-transitory computer-readable storage media of claim 14 , wherein the instructions further include instructions that, when executed by the one or more processors, cause the system to provide the application programming interface through which the call is submitted to cause the system to delete the first cryptographic key.

19. The one or more non-transitory computer-readable storage media of claim 14 , wherein obtaining the data for backup, encrypting the data, encrypting the first cryptographic key, and causing the encrypted data to be persistently stored are performed as a result of the call made to the application programming interface.

20. The one or more non-transitory computer-readable storage media of claim 14 , wherein the data comprises multiple cryptographic keys.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2014
From: ROTH, GREGORY BRANCHEK; RUBIN, GREGORY ALAN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 034081/0604 →
Cited By (14)
US 12,189,787 US 12,206,688 US 12,231,460 US 12,236,491 US 12,244,703 US 12,333,612 US 12,335,282 US 12,363,156 US 12,395,505 US 12,513,167 US 12,626,249 US 12,694,104 US 12,695,601 US 12,739,107