IP Library › Granted Patent US 10,664,591
Granted Patent B2
US 10,664,591 · App. 15/592,750 · Granted May 26, 2020

Enclave pools

Inventor: John Marley Gray (Snoqualmie, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F21/53G06F21/64H04L9/3236H04L9/3255H04L9/3297H04L2209/38H04L2209/56
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,664,591
App. No.
15/592,750
Filed
May 11, 2017
Granted
May 26, 2020
Kind
B2
Art Unit
2437
USPC
713/190
Abstract

The disclosed technology is generally directed to secure transactions. In one example of the technology, an enclave pool is formed. The enclave pool may include a plurality of enclaves that are secure execution environments. In some examples, forming the enclave pool includes registering the enclaves of the enclave pool. A request to allocate an enclave from the enclave pool may be received. An enclave may be fetched from the enclave pool responsive to the request to assign the enclave. Cryptlet code is executed in the fetched enclave such that a payload is generated in the enclave. The payload can be digitally signed and/or encrypted by the cryptlet, and can also be digitally signed by the enclave. The fetched enclave may be deallocated.

Claims (37)

1. An apparatus, comprising:

a device including at least one memory adapted to store run-time data for the device, and at least one processor that is adapted to execute processor-executable code that, in response to execution, enables the device to perform actions, including:

forming an enclave pool, wherein the enclave pool includes a plurality of enclaves, wherein the enclaves are secure execution environments, and wherein forming the enclave pool includes registering the enclaves of the enclave pool;

receiving a request to allocate an enclave from the enclave pool;

fetching an enclave from the enclave pool responsive to the request to allocate the enclave;

executing cryptlet code in the fetched enclave such that a payload is generated in the enclave;

at least one of digitally signing or encrypting the payload; and

deallocating the fetched enclave.

2. The apparatus of claim 1 , wherein the enclaves of the plurality of enclaves are private, tamper-resistant execution environments that are secure from external interference.

3. The apparatus of claim 1 , wherein each enclave of the plurality of enclaves is provided by at least one of a Virtual Secure Machine or a secure hardware enclave.

4. The apparatus of claim 1 , wherein if the enclave request indicates a particular type of enclave, then fetching the enclave from the enclave pool is accomplished such that the fetched enclave is an enclave of the particular type.

5. The apparatus of claim 1 , wherein the enclaves of the plurality of enclaves are secure execution environments in which code can be run in an isolated, private environment and for which results of the secure execution are capable of being attested to have run unaltered and in private.

6. The apparatus of claim 1 , wherein the enclaves of the plurality of enclaves have private keys, and wherein digitally signing the payload includes digitally signing the payload with the private key of the fetched enclave.

7. The apparatus of claim 6 , wherein the fetched enclave is a hardware enclave, and wherein the private key of the fetched enclave is etched in silicon.

8. A method, comprising:

generating an enclave pool, wherein the enclave pool includes a plurality of enclaves, wherein the enclaves are secure execution environments, and wherein generating the enclave pool includes registering the enclaves of the enclave pool;

assigning an enclave from the enclave pool;

executing cryptlet code in the assigned enclave such that an output is generated in the enclave;

at least one of signed or encrypting by the cryptlet of its output; and

deassigning the assigned enclave.

9. The method of claim 8 , wherein the enclaves of the plurality of enclaves are private, tamper-resistant execution environments that are secure from external interference.

10. The method of claim 8 , wherein each enclave of the plurality of enclaves is at least one of a Virtual Secure Machine or a secure hardware enclave.

11. The method of claim 8 , wherein if an enclave request indicates a particular type of enclave, then assigning the enclave from the enclave pool is accomplished such that the assigned enclave is an enclave of the particular type.

12. The method of claim 8 , wherein the enclaves of the plurality of enclaves are secure execution environments in which code can be run in an isolated, private environment and for which results of the secure execution are capable of being attested to have run unaltered and in private.

13. The method of claim 8 , wherein the enclaves of the plurality of enclaves have private keys, and wherein signing the output includes digitally signing the output with the private key of the assigned enclave.

14. The method of claim 13 , wherein the assigned enclave is a hardware enclave, and wherein the private key of the assigned enclave is etched in silicon.

15. A processor-readable storage medium, having stored thereon processor-executable code that, upon execution by at least one processor, enables actions, comprising:

forming an enclave pool responsive to the request to form the enclave pool, wherein the enclave pool includes a plurality of enclaves, wherein the enclaves are secure execution environments;

receiving a request to allocate an enclave from the enclave pool;

fetching an enclave from the enclave pool responsive to the request to allocate the enclave; and

deallocating the fetched enclave.

16. The processor-readable storage medium of claim 15 , wherein the enclaves of the plurality of enclaves are private, tamper-resistant execution environments that are secure from external interference.

17. The processor-readable storage medium of claim 15 , wherein each enclave of the plurality of enclaves is at least one of a Virtual Secure Machine or a secure hardware enclave.

18. The processor-readable storage medium of claim 15 , wherein if the enclave request indicates a particular type of enclave, then fetching the enclave from the enclave pool is accomplished such that the fetched enclave is an enclave of the particular type.

19. The processor-readable storage medium of claim 15 , further comprising executing cryptlet code in the fetched enclave such that a payload is generated in the enclave and

digitally signing the payload, wherein the enclaves of the plurality of enclaves have private keys, and wherein digitally signing the payload includes digitally signing the payload with the private key of the fetched enclave.

20. The processor-readable storage medium of claim 19 , wherein the fetched enclave is a hardware enclave, and wherein the private key of the fetched enclave is etched in silicon.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2017
From: GRAY, JOHN MARLEY
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 042341/0821 →
Continuity (1)
Related Publication 20180330077A1 · Nov 15, 2018
Cited By (1)
US 12,316,758