IP Library Granted Patent US 10,686,769
Granted Patent B2
US 10,686,769 · App. 15/670,957 · Granted Jun 16, 2020

Secure key caching client

Inventors: Anand Kashyap (Los Altos, CA); Andrew Leiserson (San Francisco, CA); Jeffrey Seyfried (Cupertino, CA); Jethro Gideon Beekman (San Francisco, CA)
Assignee: FORTANIX, INC.
H04L63/062H04L9/088H04L9/0897H04L9/3231H04L9/3247H04L63/0823H04W12/04H04W12/06
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,686,769
App. No.
15/670,957
Granted
Jun 16, 2020
Kind
B2
Abstract

A first connection between a first network server and a second network server may be established where the first connection is based on a connection key stored at a secure location of the first network server. A request for one or more cryptographic keys may be transmitted from the first network server to the second network server. The first network server may receive the one or more cryptographic keys from the second network server over the first connection. The one or more cryptographic keys from the second server may be stored at the secure location of the first network server that is storing the connection key used to establish the first connection.

Claims (58)

1. A method comprising:

establishing, by a first network server, a first connection between the first network server and a second network server, the first connection being based on a connection cryptographic key stored at a secure location within the first network server, wherein the connection cryptographic key corresponds to a cryptographic key used to securely establish the first connection and wherein the second network server stores and manages application cryptographic keys for use by a plurality of applications;

transmitting, from the first network server to the second network server based on the first connection, a request for one or more application cryptographic keys for one or more applications of the plurality of applications;

receiving, at the first network server from the second network server based on the first connection, the one or more application cryptographic keys; and

storing, by a processing device, the one or more application cryptographic keys received from the second network server at the secure location within the first network server that is storing the connection cryptographic key, wherein access to the connection cryptographic key and the one or more cryptographic keys stored at the secure location within the first network server is based on an internal cryptographic key of the processing device, the internal cryptographic key being internal to the processing device.

2. The method of claim 1 , further comprising:

receiving a request from an application to perform a cryptographic operation with a particular key of the one or more application cryptographic keys;

performing the cryptographic operation with the particular application cryptographic key stored at the secure location, wherein the particular application cryptographic key is not transmitted from the secure location of the first network server; and

providing an output of the cryptographic operation from the secure location of the first network server to the application, the providing of the output being over a second connection between the secure location and the application.

3. The method of claim 1 , wherein the secure location corresponds to a secure enclave or a kernel cryptosystem of the first network server.

4. The method of claim 1 , further comprising:

receiving, from the application and over the second network connection, a request to generate a new cryptographic key;

generating the new cryptographic key at the secure location of first network server;

establishing a third connection based on another connection cryptographic key, the third connection being between the first network server and the second network server; and

transmitting the new cryptographic key over the third connection to the second network server.

5. The method of claim 1 , wherein the first connection is a Transport Layer Security (TLS) connection and the connection cryptographic key is a key used to facilitate the TLS connection between the first network server and the second network server.

6. The method of claim 1 , wherein the receiving of the one or more application cryptographic keys is based on a characteristic of the application.

7. The method of claim 6 , wherein the transmitting of the request for the one or more application cryptographic keys comprises:

determining whether to retrieve a single application cryptographic key or a plurality of application cryptographic keys based on the characteristic of the application, wherein the transmitting of the request is based on the determination.

8. A system comprising:

a memory; and

a processing device, operatively coupled with the memory, to:

establish, by a first network server, a first connection between the first network server and a second network server, the first connection being based on a connection cryptographic key stored at a secure location within the first network server, wherein the connection cryptographic key corresponds to a cryptographic key used to securely establish the first connection and wherein the second network server stores and manages application cryptographic keys for use by a plurality of applications;

transmit, from the first network server to the second network server based on the first connection, a request for one or more application cryptographic keys for one or more applications of the plurality of applications;

receive, at the first network server from the second network server based on the first connection, the one or more application cryptographic keys; and

store the application one or more cryptographic keys received from the second network server at the secure location within the first network server that is storing the connection cryptographic key, wherein access to the connection cryptographic key and the one or more cryptographic keys stored at the secure location within the first network server is based on an internal cryptographic key of the processing device, the internal cryptographic key being internal to the processing device.

9. The system of claim 8 , wherein the processing device is further to:

receive a request from an application to perform a cryptographic operation with a particular key of the one or more application cryptographic keys;

perform the cryptographic operation with the particular key stored at the secure location, wherein the particular key is not transmitted from the secure location of the first network server; and

provide an output of the cryptographic operation from the secure location of the first network server to the application, the providing of the output being over a second connection between the secure location and the application.

10. The system of claim 8 , wherein the secure location corresponds to a secure enclave or a kernel cryptosystem of the first network server.

11. The system of claim 8 , wherein the processing device is further to:

receive, from the application and over the second network connection, a request to generate a new cryptographic key;

generate the new cryptographic key at the secure location of first network server;

establish a third connection based on another connection cryptographic key, the third connection being between the first network server and the second network server; and

transmit the new cryptographic key over the third connection to the second network server.

12. The system of claim 8 , wherein the first connection is a Transport Layer Security (TLS) connection and the connection cryptographic key is a key used to facilitate the TLS connection between the first network server and the second network server.

13. The system of claim 8 , wherein the receiving of the one or more application cryptographic keys is based on a characteristic of the application.

14. The system of claim 13 , wherein to transmit the request for the one or more application cryptographic keys, the processing device is further to:

determine whether to retrieve a single cryptographic key or a plurality of cryptographic keys based on the characteristic of the application, wherein the transmitting of the request is based on the determination.

15. A non-transitory computer readable medium comprising data that, when accessed by a processing device, cause the processing device to perform operations comprising:

establishing, by a first network server, a first connection between the first network server and a second network server, the first connection being based on a connection cryptographic key stored at a secure location within the first network server, wherein the connection cryptographic key corresponds to a cryptographic key used to securely establish the first connection and wherein the second network server stores and manages application cryptographic keys for use by a plurality of applications;

transmitting, from the first network server to the second network server based on the first connection, a request for one or more application cryptographic keys for one or more applications of the plurality of applications;

receiving, at the first network server from the second network server based on the first connection, the one or more application cryptographic keys; and

storing the one or more application cryptographic keys received from the second network server at the secure location within the first network server that is storing the connection cryptographic key, wherein access to the connection cryptographic key and the one or more cryptographic keys stored at the secure location within the first network server is based on an internal cryptographic key of the processing device, the internal cryptographic key being internal to the processing device.

16. The non-transitory computer readable medium of claim 15 , wherein the operations further comprise:

receiving a request from an application to perform a cryptographic operation with a particular key of the one or more application cryptographic keys;

performing the cryptographic operation with the particular key stored at the secure location, wherein the particular key is not transmitted from the secure location of the first network server; and

providing an output of the cryptographic operation from the secure location of the first network server to the application, the providing of the output being over a second connection between the secure location and the application.

17. The non-transitory computer readable medium of claim 15 , wherein the secure location corresponds to a secure enclave or a kernel cryptosystem of the first network server.

18. The non-transitory computer readable medium of claim 15 , the operations further comprising:

receiving, from the application and over the second network connection, a request to generate a new cryptographic key;

generating the new cryptographic key at the secure location of first network server;

establishing a third connection based on another connection cryptographic key, the third connection being between the first network server and the second network server; and

transmitting the new cryptographic key over the third connection to the second network server.

19. The non-transitory computer readable medium of claim 15 , wherein the first connection is a Transport Layer Security (TLS) connection and the connection cryptographic key is a key used to facilitate the TLS connection between the first network server and the second network server.

20. The non-transitory computer readable medium of claim 15 , wherein the receiving of the one or more application cryptographic keys is based on a characteristic of the application, the operations further comprising:

determining whether to retrieve a single application cryptographic key or a plurality of application cryptographic keys based on the characteristic of the application, wherein the transmitting of the request is based on the determination.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2017
From: KASHYAP, ANAND; LEISERSON, ANDREW; SEYFRIED, JEFFREY; BEEKMAN, JETHRO GIDEON
To: FORTANIX, INC.
Reel/Frame 043223/0875 →
Continuity (1)
Related Publication 20190044929A1 · Feb 7, 2019