IP Library › Granted Patent US 11,722,303
Granted Patent B2
US 11,722,303 · App. 17/532,883 · Granted Aug 8, 2023

Secure enclave implementation of proxied cryptographic keys

Inventor: Kieran Miller (San Diego, CA)
Assignee: Garantir LLC
H04L9/3226G06F21/602H04L9/0819H04L9/0897H04L9/14H04L9/321H04L2209/76
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,722,303
App. No.
17/532,883
Granted
Aug 8, 2023
Kind
B2
Abstract

Techniques for employing a secure enclave to enhance the security of a system that makes use of a remote server that proxies cryptographic keys. In one technique, a proxy server receives a request for a cryptographic operation that is initiated by a client device. The request includes a key name of a cryptographic key and a (e.g., authentication) code. In response, the proxy server sends the code and the request to a secure enclave that is associated with a cryptographic device that stores the cryptographic key. The secure enclave validates the code based on a local key and sends, to the cryptographic device, (1) data associated with the secure enclave and (2) the cryptographic request. The proxy server receives result data that was generated by the cryptographic device that performs the cryptographic operation. The proxy server sends the result data to the client device.

Claims (63)

1. A computer-implemented method for enforcing authentication/authorization checking in a secure enclave, the method comprising:

receiving, by a proxy server, a request for a cryptographic operation that is initiated by a client device, wherein the request includes a key name of a cryptographic key and a code;

in response to receiving the request, sending, by the proxy server, the code and the request to the secure enclave that is associated with a cryptographic device that stores a plurality of cryptographic keys that includes the cryptographic key;

wherein the secure enclave validates the code based on a local key that is stored in the secure enclave;

wherein the secure enclave sends, to the cryptographic device that performs the cryptographic operation, (1) data associated with the secure enclave and (2) the request;

receiving, by the proxy server, from the cryptographic device, result data that was generated by the cryptographic device as a result of performing the cryptographic operation;

sending, by the proxy server, to the client device, the result data;

wherein the method is performed by one or more computing devices.

2. The method of claim 1 , wherein the secure enclave is on a computing device that hosts the proxy server or on a first computing device that is in the same computer network as a second computing device that hosts the proxy server.

3. The method of claim 2 , further comprising:

after the secure enclave validates the code, receiving, by the cryptographic device, from the secure enclave, the request and the data associated with the secure enclave;

wherein receiving the request and the data associated with the secure enclave is through an end-to-end secure connection that is established between the secure enclave and the cryptographic device.

4. The method of claim 1 , wherein the secure enclave and the cryptographic device reside in the same computer network that is separate from a computer network in which the proxy server resides.

5. The method of claim 1 , wherein the client device generated the code and the request is from the client device.

6. The method of claim 1 , wherein the code is generated by a computing device that is operated by a third-party and that is separate from the client device and the proxy server.

7. The method of claim 1 , wherein:

the code is a first code;

sending the code to the secure enclave comprises sending, to the secure enclave, a plurality of codes that includes the first code and a second code;

the secure enclave validates the code based on a second local key that is stored in the secure enclave;

the secure enclave sends the request to the cryptographic device if the secure enclave validates each code in the plurality of codes.

8. The method of claim 7 , wherein:

one of the client device, the proxy server, or a third-party entity generated the first code; and

another one of the client device, the proxy server, or the third-party entity generated the second code.

9. The method of claim 1 , wherein:

the request also includes secret key information;

sending the code and the request to the secure enclave also includes sending the secret key information to the secure enclave;

the secure enclave also sends the secret key information to the cryptographic device.

10. One or more storage media storing instructions for enforcing authentication/authorization checking in a secure enclave, wherein the instructions, when executed by one or more processors, cause:

receiving, by a proxy server, a request for a cryptographic operation that is initiated by a client device, wherein the request includes a key name of a cryptographic key and a code;

in response to receiving the request, sending, by the proxy server, the code and the request to the secure enclave that is associated with a cryptographic device that stores a plurality of cryptographic keys that includes the cryptographic key;

wherein the secure enclave validates the code based on a local key that is stored in the secure enclave;

wherein the secure enclave sends, to the cryptographic device that performs the cryptographic operation, (1) data associated with the secure enclave and (2) the request;

receiving, by the proxy server, from the cryptographic device, result data that was generated by the cryptographic device as a result of performing the cryptographic operation;

sending, by the proxy server, to the client device, the result data.

11. The one or more storage media of claim 10 , wherein the secure enclave is on a computing device that hosts the proxy server or on a first computing device that is in the same computer network as a second computing device that hosts the proxy server.

12. The one or more storage media of claim 11 , wherein the instructions, when executed by the one or more processors, further cause:

after the secure enclave validates the code, receiving, by the cryptographic device, from the secure enclave, the request and the data associated with the secure enclave;

wherein receiving the request and the data associated with the secure enclave is through an end-to-end secure connection that is established between the secure enclave and the cryptographic device.

13. The one or more storage media of claim 10 , wherein the secure enclave and the cryptographic device reside in the same computer network that is separate from a computer network in which the proxy server resides.

14. The one or more storage media of claim 10 , wherein the client device generated the code and the request is from the client device.

15. The one or more storage media of claim 10 , wherein the code is generated by a computing device that is operated by a third-party and that is separate from the client device and the proxy server.

16. The one or more storage media of claim 10 , wherein:

the code is a first code;

sending the code to the secure enclave comprises sending, to the secure enclave, a plurality of codes that includes the first code and a second code;

the secure enclave validates the code based on a second local key that is stored in the secure enclave;

the secure enclave sends the request to the cryptographic device if the secure enclave validates each code in the plurality of codes.

17. The one or more storage media of claim 16 , wherein:

one of the client device, the proxy server, or a third-party entity generated the first code; and

another one of the client device, the proxy server, or the third-party entity generated the second code.

18. The one or more storage media of claim 10 , wherein:

the request also includes secret key information;

sending the code and the request to the secure enclave also includes sending the secret key information to the secure enclave;

the secure enclave also sends the secret key information to the cryptographic device.

19. A system for enforcing authentication/authorization checking in a secure enclave, the system comprising:

one or more processors;

one or more storage media storing instructions which, when executed by the one or more processors, cause:

receiving, by a proxy server, a request for a cryptographic operation that is initiated by a client device, wherein the request includes a key name of a cryptographic key and a code;

in response to receiving the request, sending, by the proxy server, the code and the request to the secure enclave that is associated with a cryptographic device that stores a plurality of cryptographic keys that includes the cryptographic key;

wherein the secure enclave validates the code based on a local key that is stored in the secure enclave;

wherein the secure enclave sends, to the cryptographic device that performs the cryptographic operation, (1) data associated with the secure enclave and (2) the request;

receiving, by the proxy server, from the cryptographic device, result data that was generated by the cryptographic device as a result of performing the cryptographic operation;

sending, by the proxy server, to the client device, the result data.

20. The system of claim 19 , wherein the secure enclave is on a computing device that hosts the proxy server or on a first computing device that is in the same computer network as a second computing device that hosts the proxy server.

Continuity (2)
Continuation 17334511 · May 28, 2021
Related Publication 20220385470A1 · Dec 1, 2022