IP Library › Granted Patent US 11,153,085
Granted Patent B2
US 11,153,085 · App. 16/175,356 · Granted Oct 19, 2021

Secure distributed storage of encryption keys

Inventors: Sridhar Villapakkam (Grafton, MA); Ajit Bhagwat (Lexington, MA); Frank S. Caccavale (Hopedale, MA)
Assignee: EMC IP Holding Company LLC
H04L9/0894H04L9/0866H04L9/32
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,153,085
App. No.
16/175,356
Granted
Oct 19, 2021
Kind
B2
Abstract

Techniques are presented for (a) securely maintaining, by a computing device, a set of correspondences between encryption keys and key identifiers, (b) receiving, by the computing device, a cryptographic request from a remote device received across the network, the cryptographic request including credentials, data to be cryptographically processed, and a key identifier to be used for cryptographic processing, and (c) in response to successfully authenticating the cryptographic request: (1) obtaining, by the computing device with reference to the set of correspondences, an encryption key corresponding to the key identifier, (2) cryptographically processing, by the computing device, the received data using the obtained encryption key to generate cryptographically-processed data, and (3) sending the cryptographically-processed data from the computing device across the network to the remote device. Embodiments are directed to methods, apparatuses, systems, and computer program products for performing these techniques.

Claims (76)

1. A method of cryptographic processing across a network, the method comprising:

securely maintaining, by a computing device, a set of correspondences between encryption keys and key identifiers, wherein securely maintaining the set of correspondences between encryption keys and key identifiers includes:

receiving a key request from a remote device across the network, the key request including a key identifier from the remote device and credentials of the remote device, the key request not including any data to be cryptographically processed;

in response to receiving the key request, authenticating the credentials of the remote device;

in response to successfully authenticating the credentials of the remote device from the key request, generating an encryption key to be associated with the key identifier from the key request; and

in response to generating the encryption key, storing the encryption key in a secure vault, access to the encryption key within the secure vault requiring the associated key identifier and credentials of the remote device;

subsequent to storing the encryption key in the secure vault, receiving, by the computing device, a cryptographic request from the remote device across the network, the cryptographic request including the credentials, data to be cryptographically processed, and the key identifier to be used for cryptographic processing; and

in response to successfully authenticating the cryptographic request:

obtaining, by the computing device with reference to the set of correspondences, the encryption key corresponding to the key identifier and verifying that the remote device has permission to use the encryption key corresponding to the received key identifier, including accessing the secure vault using the key identifier and the credentials from the cryptographic request;

cryptographically processing, by the computing device, the received data using the obtained encryption key to generate cryptographically-processed data; and

sending the cryptographically-processed data from the computing device across the network to the remote device;

wherein the encryption key is maintained securely within the computing device without being transmitted over the network.

2. The method of claim 1 ,

wherein the data to be cryptographically processed is unencrypted;

wherein cryptographically processing includes encrypting the data using the obtained encryption key; and

wherein the cryptographically-processed data is encrypted.

3. The method of claim 2 wherein the data to be cryptographically processed is received by the computing device over a secured channel.

4. The method of claim 1 ,

wherein the data to be cryptographically processed is encrypted;

wherein cryptographically processing includes decrypting the data using the obtained encryption key; and

wherein the cryptographically-processed data is decrypted.

5. The method of claim 4 wherein sending the cryptographically-processed data from the computing device across the network to the remote device includes sending the decrypted cryptographically-processed data to the remote device over a secured channel.

6. The method of claim 1 wherein obtaining the encryption key corresponding to the key identifier and verifying that the remote device identified by the credentials has permission to use the encryption key includes:

sending the key identifier and the credentials of the remote device across a secure channel to a remote key storage server, the remote key storage server storing the encryption key protected by the key identifier and the credentials of the remote device; and

in response to sending the key identifier and the credentials to the remote key storage server, receiving the encryption key across the secure channel.

7. A system for cryptographic processing comprising:

a network;

a client computing device communicatively connected to the network; and

a server computing device communicatively connected to the network, the server computing device configured to:

securely maintain a set of correspondences between encryption keys and key identifiers, wherein securely maintaining the set of correspondences between encryption keys and key identifiers includes:

receiving a key request from the client computing device across the network, the key request including a key identifier from the client computing device and credentials of the client computing device, the key request not including any data to be cryptographically processed;

in response to receiving the key request, authenticating the credentials of the client computing device;

in response to successfully authenticating the credentials of the client computing device from the key request, generating an encryption key to be associated with the key identifier from the key request; and

in response to generating the encryption key, storing the encryption key in a secure vault, access to the encryption key within the secure vault requiring the associated key identifier and credentials of the client computing device;

receive, subsequent to storing the encryption key in the secure vault, a cryptographic request from the client computing device across the network, the cryptographic request including the credentials, data to be cryptographically processed, and the key identifier to be used for cryptographic processing; and

in response to successfully authenticating the cryptographic request:

obtain, with reference to the set of correspondences, the encryption key corresponding to the key identifier and verify that the client computing device has permission to use the encryption key corresponding to the received key identifier, including accessing the secure vault using the key identifier and the credentials from the cryptographic request;

cryptographically process the received data using the obtained encryption key to generate cryptographically-processed data; and

send the cryptographically-processed data across the network to the client computing device;

wherein the client computing device is configured to:

send the key request and the cryptographic request to the server computing device across the network;

receive the cryptographically-processed data from the server computing device across the network; and

make use of the received cryptographically-processed data; and

wherein the encryption key is maintained securely within the server computing device without being transmitted over the network.

8. The system of claim 7 ,

wherein the data to be cryptographically processed is unencrypted;

wherein cryptographically processing includes encrypting the data using the obtained encryption key;

wherein the cryptographically-processed data is encrypted; and

wherein making use of the received cryptographically-processed data includes causing the encrypted data to be stored in persistent storage in connection with the key identifier.

9. The system of claim 8 wherein causing the encrypted data to be stored in persistent storage in connection with the key identifier includes storing the encrypted data and the key identifier in persistent storage of the client computing device.

10. The system of claim 8 wherein causing the encrypted data to be stored in persistent storage in connection with the key identifier includes sending a storage request to a remote storage device directing the remote storage device to persistently store the encrypted data and the key identifier.

11. The system of claim 10 ,

wherein the encryption key is stored in a standard key format; and

the key identifier is stored in a format different from the standard key format.

12. The system of claim 8 wherein the client computing device is configured to send the data to be cryptographically processed to the server computing device over a secured channel.

13. The system of claim 7 ,

wherein the data to be cryptographically processed is encrypted;

wherein cryptographically processing includes decrypting the data using the obtained encryption key;

wherein the cryptographically-processed data is decrypted; and

wherein making use of the received cryptographically-processed data includes sending the decrypted data to an application that requested access to that data.

14. The system of claim 13 wherein sending the cryptographically-processed data across the network to the client computing device includes sending the decrypted data to the client computing device over a secured channel.

15. The system of claim 7 wherein obtaining the encryption key corresponding to the key identifier and verifying that the client computing device identified by the credentials has permission to use the encryption key includes:

sending the key identifier and the credentials of the client computing device across a secure channel to a remote key storage server, the remote key storage server storing the encryption key protected by the key identifier and the credentials of the client computing device; and

in response to sending the key identifier and the credentials to the remote key storage server, receiving the encryption key across the secure channel.

16. A computer program product comprising a non-transitory computer-readable storage medium storing a set of instructions, which, when executed by a computing device, cause the computing device to:

securely maintain a set of correspondences between encryption keys and key identifiers, wherein securely maintaining the set of correspondences between encryption keys and key identifiers includes:

receiving a key request from a remote device across a network, the key request including a key identifier from the remote device and credentials of the remote device, the key request not including any data to be cryptographically processed;

in response to receiving the key request, authenticating the credentials of the remote device;

in response to successfully authenticating the credentials of the remote device from the key request, generating an encryption key to be associated with the key identifier from the key request; and

in response to generating the encryption key, storing the encryption key in a secure vault, access to the encryption key within the secure vault requiring the associated key identifier and credentials of the remote device;

receive, subsequent to storing the encryption key in the secure vault, a cryptographic request from the remote device across the network, the cryptographic request including the credentials, data to be cryptographically processed, and the key identifier to be used for cryptographic processing; and

in response to successfully authenticating the cryptographic request:

obtain, with reference to the set of correspondences, the encryption key corresponding to the key identifier and verify that the remote device has permission to use the encryption key corresponding to the received key identifier, including accessing the secure vault using the key identifier and the credentials from the cryptographic request;

cryptographically process the received data using the obtained encryption key to generate cryptographically-processed data; and

send the cryptographically-processed data across the network to the remote device;

wherein the encryption key is maintained securely within the computing device without being transmitted over the network.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2018
From: VILLAPAKKAM, SRIDHAR; BHAGWAT, AJIT; CACCAVALE, FRANK S.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 047671/0816 →
Continuity (1)
Related Publication 20200136822A1 · Apr 30, 2020