IP Library Granted Patent US 11,057,359
Granted Patent B2
US 11,057,359 · App. 16/102,191 · Granted Jul 6, 2021

Key encryption key rotation

Inventors: Scott Wisniewski (Issaquah, WA); David Murray (Seattle, WA); Xiongjian Fu (Sammamish, WA); Harish Krishnamurthy (Bellevue, WA)
Assignee: salesforce.com, inc.
H04L63/06H04L9/0822H04L9/0877H04L9/0894H04L2463/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 11,057,359
App. No.
16/102,191
Granted
Jul 6, 2021
Kind
B2
Abstract

A set of hardware security modules (HSMs) in a database system may implement a key management system with a database storing encryption keys or other secrets. The set of HSMs may identify a first key encryption key (KEK) and a second KEK stored in the set of HSMs. The set of HSMs may retrieve, from the database, a set of encryption keys encrypted by the first KEK and decrypt each encryption key of the set of encryption keys using the first KEK. The set of HSMs may re-encrypt each encryption key of the set of encryption keys with the second KEK and transmit, to the database, the set of encrypted encryption keys encrypted by the second KEK for storage. Then, the set of HSMs may delete the first KEK from the set of HSMs.

Claims (49)

1. A method of encryption key handling at a set of hardware security modules (HSMs), comprising:

generating, at a first HSM of the set of HSMs, a second key encryption key (KEK) based at least in part on an initiation of a key rotation process;

propagating the second KEK to a different second HSM of the set of HSMs and to the other HSMs of the set of HSMs;

identifying, at the second HSM, a first KEK and the second KEK stored in the set of HSMs;

retrieving, from a database and at the second HSM, a set of encryption keys encrypted by the first KEK;

decrypting, at the second HSM, each encryption key of the set of encryption keys using the first KEK;

re-encrypting, at the second HSM, each encryption key of the set of encryption keys with the second KEK;

determining, at the second HSM, each encryption key of the set of encryption keys is encrypted by the second KEK;

transmitting, from the second HSM to the database, the set of encrypted encryption keys encrypted by the second KEK for storage, and an identifier associated with the second KEK; and

deleting the first KEK from the set of HSMs, wherein deleting the first KEK is based at least in part on determining each encryption key of the set of encryption keys is encrypted by the second KEK.

2. The method of claim 1 , further comprising:

receiving an encryption key encrypted by the first KEK after deleting the first KEK from the set of HSMs; and

determining the encryption key encrypted by the first KEK cannot be decrypted by the second KEK.

3. The method of claim 1 , wherein each encryption key of the set of encryption keys is re-encrypted based at least in part on a key rotation process, the key rotation process triggered based at least in part on receiving a request from a tenant of the database to terminate services, receiving a request from the tenant of the database to delete a key of the set of encryption keys, determining a timer for periodically re-encrypting the set of encryption keys has expired, or a combination thereof.

4. The method of claim 1 , further comprising:

storing a replay attack counter in the HSMs.

5. The method of claim 1 , wherein the set of encryption keys are provided by one or more tenants of the database based at least in part on a bring your own key (BYOK) scheme.

6. The method of claim 5 , wherein the set of encryption keys are marked to prevent the set of encryption keys from being re-exported from the set of HSMs.

7. The method of claim 5 , wherein the first KEK and the second KEK are stored exclusively in the set of HSMs.

8. The method of claim 5 , wherein the database is a single server or a horizontally-scalable key/value store.

9. An apparatus for encryption key handling at a set of hardware security modules (HSMs), comprising:

a processor;

memory in electronic communication with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

generate, at a first HSM of the set of HSMs, a second key encryption key (KEK) based at least in part on an initiation of a key rotation process;

propagate the second KEK to a different second HSM of the set of HSMs and to the other HSMs of the set of HSMs;

identify, at the second HSM, a first KEK and the second KEK stored in the set of HSMs;

retrieve, from a database and at the second HSM, a set of encryption keys encrypted by the first KEK;

decrypt, at the second HSM, each encryption key of the set of encryption keys using the first KEK;

re-encrypt, at the second HSM, each encryption key of the set of encryption keys with the second KEK;

determine, at the second HSM, each encryption key of the set of encryption keys is encrypted by the second KEK;

transmit, from the second HSM to the database, the set of encrypted encryption keys encrypted by the second KEK for storage, and an identifier associated with the second KEK; and

delete the first KEK from the set of HSMs, wherein deleting the first KEK is based at least in part on determining each encryption key of the set of encryption keys is encrypted by the second KEK.

10. The apparatus of claim 9 , wherein the instructions are further executable by the processor to cause the apparatus to:

receive an encryption key encrypted by the first KEK after deleting the first KEK from the set of HSMs; and

determine the encryption key encrypted by the first KEK cannot be decrypted by the second KEK.

11. The apparatus of claim 9 , wherein each encryption key of the set of encryption keys is re-encrypted based at least in part on a key rotation process, the key rotation process triggered based at least in part on receiving a request from a tenant of the database to terminate services, receiving a request from the tenant of the database to delete a key of the set of encryption keys, determining a timer for periodically re-encrypting the set of encryption keys has expired, or a combination thereof.

12. The apparatus of claim 9 , wherein the set of encryption keys are provided by one or more tenants of the database based at least in part on a bring your own key (BYOK) scheme.

13. The apparatus of claim 9 , wherein the first KEK and the second KEK are stored exclusively in the set of HSMs.

14. A non-transitory computer-readable medium storing code for encryption key handling at a set of hardware security modules (HSMs), the code comprising instructions executable by a processor to:

generate, at a first HSM of the set of HSMs, a second key encryption key (KEK) based at least in part on an initiation of a key rotation process;

propagate the second KEK to a different second HSM of the set of HSMs and to the other HSMs of the set of HSMs;

identify, at the second HSM, a first KEK and the second KEK stored in the set of HSMs;

retrieve, from a database and at the second HSM, a set of encryption keys encrypted by the first KEK;

decrypt, at the second HSM, each encryption key of the set of encryption keys using the first KEK;

re-encrypt, at the second HSM, each encryption key of the set of encryption keys with the second KEK;

determine, at the second HSM, each encryption key of the set of encryption keys is encrypted by the second KEK;

transmit, from the second HSM to the database, the set of encrypted encryption keys encrypted by the second KEK for storage, and an identifier associated with the second KEK; and

delete the first KEK from the set of HSMs, wherein deleting the first KEK is based at least in part on determining each encryption key of the set of encryption keys is encrypted by the second KEK.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2018
From: WISNIEWSKI, SCOTT; MURRAY, DAVID; FU, XIONGJIAN; KRISHNAMURTHY, HARISH
To: SALESFORCE.COM, INC.
Reel/Frame 046629/0862 →
Continuity (1)
Related Publication 20200053065A1 · Feb 13, 2020
Cited By (3)
US 12,200,124 US 12,309,258 US 12,706,735