IP Library › Granted Patent US 10,425,225
Granted Patent B1
US 10,425,225 · App. 15/379,396 · Granted Sep 24, 2019

Synchronizable hardware security module

Inventors: Benjamin Philip Grubin (Herndon, VA); Benjamin Samuel (Arlington, VA)
Assignee: Amazon Technologies, Inc.
H04L9/083H04L9/0643H04L9/0861H04L9/12H04L63/062
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,425,225
App. No.
15/379,396
Granted
Sep 24, 2019
Kind
B1
Abstract

An HSM cluster includes a set of hardware security modules that maintain a set of cryptographic keys that are synchronized across the HSM cluster. Individual applications running on client computer systems access the HSM cluster using HSM cluster clients running on the client computer systems. The HSMs are accessed via a set of HSM cluster servers that monitor the synchronization of the cryptographic keys. Synchronization of the HSMs is maintained by the HSM cluster clients. The HSM cluster clients replicate key-addition and key-deletion operations across the HSM cluster. When a new key is created by a particular HSM, a prefix associated with the particular HSM is added to the identifier associated with the new key to avoid key-namespace collisions. If the set of cryptographic keys becomes unsynchronized across the HSM cluster, applications may continue read-only cryptographic operations while the HSM cluster is resynchronized by the HSM cluster clients.

Claims (66)

1. A system, comprising a computing device that implements one or more services, wherein the one or more services:

obtains, via an application programming interface, a request to perform a cryptographic operation using a cryptographic key stored on a hardware security module (HSM) cluster;

selects, from a plurality of HSMs belonging to the HSM cluster, an HSM for fulfilling the request;

submits the request to the HSM via an HSM cluster server;

obtains, from the HSM cluster server, a result of the cryptographic operation;

provides the result of the cryptographic operation to an application;

determines that the cryptographic key is not present on the HSM; and

restores the cryptographic key on the HSM by resynchronizing the cryptographic keys stored on the HSM cluster by at least merging sets of cryptographic keys respectively obtained from the plurality of HSMs.

2. The system of claim 1 , wherein the one or more services further:

submits the request to an additional HSM via another HSM cluster server;

determines that the request submitted to the additional HSM was rejected; and

determines that the HSM cluster is not synchronized.

3. The system of claim 1 , wherein the one ore services further selects the HSM from a plurality of HSMs belonging to the HSM cluster based at least in part on a processing capacity of the HSM, a processing workload of the HSM, and a processing capability of the HSM.

4. The system of claim 1 , wherein the one or more services further:

obtains a creation request to create a new cryptographic key;

selects a particular HSM to create the new cryptographic key;

causes the particular HSM to create the new cryptographic key; and

provides an encrypted version of the new cryptographic key to individual HSMs in the plurality of HSMs.

5. The system of claim 4 , wherein the one or more services further:

obtains an identifier that is associated with the new cryptographic key, the identifier including a prefix associated with the particular HSM; and

provides the identifier to individual HSMs in the plurality of HSMs.

6. The system of claim 1 , wherein the one or more services further:

obtains a deletion request to delete a particular cryptographic key stored on the plurality of HSMs; and

attempts to apply a marker indicating deletion to the particular cryptographic key on individual HSMs in the plurality of HSMs, the marker indicating deletion preventing the individual HSMs from using the cryptographic key.

7. The system of claim 6 , wherein the one or more services further:

determines that the marker indicating deletion is replicated across the plurality of HSMs; and

deletes the marker indicating deletion from each HSM in the plurality of HSMs.

8. The system of claim 1 , wherein the one or more services determines that the cryptographic key is not replicated across the plurality of HSMs based at least in part on synchronization information provided by the HSM cluster server.

9. The system of claim 4 , wherein:

the encrypted version of the cryptographic key is encrypted with a cluster key stored on individual HSMs in the plurality of HSMs; and

the cluster key is a cryptographic key stored on the plurality of HSMs in non-exportable memory.

10. A computer-implemented method comprising:

obtaining, via an application programming interface, a request to perform a cryptographic operation using a cryptographic key stored on a hardware security module (HSM) cluster;

selecting, from a plurality of HSMs belonging to the HSM cluster, an HSM for fulfilling the request;

submitting the request to the HSM via an HSM cluster server;

obtaining, from the HSM cluster server, a result of the cryptographic operation;

providing the result of the cryptographic operation to an application;

determining that the cryptographic key is not present on the HSM; and

storing, on the HSM, the cryptographic key that is determined to be not present on the HSM by synchronizing the cryptographic keys stored on the HSM cluster by at least merging sets of cryptographic keys respectively obtained from the plurality of HSMs.

11. The method of claim 10 , further comprising:

determining that the HSM cluster is not synchronized based at least in part on a request to an additional HSM via another HSM cluster server being rejected.

12. The method of claim 10 , further comprising selecting the HSM from a plurality of HSMs belonging to the HSM cluster based at least in part on a processing capacity of the HSM, a processing workload of the HSM, or a processing capability of the HSM.

13. The method of claim 10 , further comprising:

selecting a particular HSM to create a new cryptographic key; and

providing an encrypted version of the new cryptographic key to individual HSMs in the plurality of HSMs.

14. The method of claim 13 , further comprising:

obtaining an identifier that is associated with the new cryptographic key, the identifier including a prefix associated with the particular HSM; and

providing the identifier to individual HSMs in the plurality of HSMs.

15. A non-transitory computer-readable storage medium comprising executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:

select, from a plurality of HSMs belonging to the HSM cluster, an HSM for fulfilling a request to perform a cryptographic operation using a cryptographic key stored on a hardware security module (HSM) cluster;

submit the request to the HSM via an HSM cluster server;

obtain, from the HSM cluster server, a result of the cryptographic operation;

provide the result of the cryptographic operation to an application;

determine that the cryptographic key is not present on the HSM; and

causing the cryptographic key to be stored on the HSM by synchronizing the cryptographic keys stored on the HSM cluster by at least merging sets of cryptographic keys obtained from the plurality of HSMs.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions further comprise instructions that, as a result of being executed by the one or more processors, cause the computer system to:

obtain a deletion request to delete a particular cryptographic key stored on the plurality of HSMs; and

cause application of a marker indicating deletion to the particular cryptographic key on individual HSMs in the plurality of HSMs, the marker indicating deletion preventing the individual HSMs from using the cryptographic key.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the instructions further comprise instructions that, as a result of being executed by the one or more processors, cause the computer system to:

determine that the marker indicating deletion is replicated across the plurality of HSMs; and

delete the marker indicating deletion from each HSM in the plurality of HSMs based at least in part on the determining that the marker indicating deletion is replicated across the plurality of HSMs.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the one or more services determines that the cryptographic key is not replicated across the plurality of HSMs based at least in part on synchronization information provided by the HSM cluster server.

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

the encrypted version of the cryptographic key is encrypted with a cluster key stored on individual HSMs in the plurality of HSMs; and

the cluster key is a cryptographic key stored on the plurality of HSMs in non-exportable memory.

20. The non-transitory computer-readable storage medium of claim 15 wherein the request is obtained via an application programming interface.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2016
From: GRUBIN, BENJAMIN PHILIP; SAMUEL, BENJAMIN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 040738/0761 →
Cited By (6)
US 12,225,128 US 12,267,425 US 12,362,947 US 12,388,637 US 12,519,836 US 12,634,126