Encave pool management

US10740455B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10740455-B2
Application numberUS-201715592867-A
CountryUS
Kind codeB2
Filing dateMay 11, 2017
Priority dateMay 11, 2017
Publication dateAug 11, 2020
Grant dateAug 11, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The public enclave key of each enclave in an enclave pool may be registered in an enclave pool registry, and the registry updated each time there is an enclave pool membership change. A shared enclave pool key may be derived from the public enclave key of each enclave of the enclave pool. The shared enclave pool key may be stored, in a shared key ledger, as a first version of the shared enclave key, and an updated version of the shared key may be generated and stored as another version each time there is an enclave pool membership change. The output of a cryptlet that executed in multiple enclaves may be signed with the enclave private key of each enclave in which the cryptlet executed. Each enclave signature may be compared against each version of the of the shared enclave pool key in the shared key ledger.

First claim

Opening claim text (preview).

I claim: 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 each enclave of the enclave pool has an enclave key pair including a private enclave key and a public enclave key; registering the public enclave key of each enclave in the enclave pool in an enclave pool registry; generating a shared enclave pool key that is derived from the public enclave key of each enclave of the enclave pool; storing, in a shared key ledger, the shared enclave pool key as a first version of the shared enclave pool key; each time a change in membership occurs to the enclave pool: updating the enclave pool registry based on the change in membership to the enclave pool, such that the updated enclave pool registry includes a registration of the public enclave key of each enclave in the changed enclave pool; replacing the shared enclave pool key with an updated shared enclave pool key that is derived from the public enclave key of each enclave in the changed enclave pool; and storing, in the shared key ledger, the updated shared enclave pool key as another version of the shared enclave pool key; allocating a first enclave of the enclave pool to a first cryptlet; receiving a payload of the first enclave such that the payload of the first enclave has a first digital signature by the private enclave key of the first enclave; allocating a second enclave of the enclave pool to the first cryptlet; receiving a payload of the second enclave such that the payload of the second enclave has a second digital signature by the private enclave key of the second enclave; validating the first digital signature against each version of the shared enclave pool key in the shared key ledger; and validating the second digital signature against each version of the shared enclave pool key in the shared key ledger. 2. The apparatus of claim 1 , the actions further comprising: allocating a third enclave of the enclave pool to the first cryptlet; receiving a payload of the third enclave such that the payload of the third enclave has a third digital signature by the private enclave key of the third enclave; and further validating, via the shared enclave pool key, the third digital signature. 3. 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. 4. The apparatus of claim 1 , wherein each enclave of the plurality of enclaves is at least one of a Virtual Secure Machine or a secure hardware enclave. 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 first enclave is a hardware enclave, and wherein the private key of the first enclave is etched in silicon. 7. The apparatus of claim 1 , wherein updating the enclave pool registry based on the change in membership to the enclave pool includes updating the enclave pool registry so that the enclave pool registry indicates, for each enclave in the updated enclave pool, an enclave type of the enclave. 8. The apparatus of claim 7 , wherein the enclave type includes an indication as to whether the enclave is a software enclave or a hardware enclave. 9. The apparatus of claim 7 , wherein allocating the first enclave of the enclave pool to the first cryptlet is accomplished that the first enclave of the enclave pool is selected based on an enclave type requirement of the first cryptlet such that the first cryptlet is a cryptlet having a cryptlet type corresponding to the enclave type requirement of the first cryptlet. 10. A method, comprising: each time a change in membership occurs to an enclave pool, wherein the enclave pool includes a plurality of enclaves, wherein the enclaves are secure execution environments, and wherein each enclave of the enclave pool has an enclave key pair including a private enclave key and a public enclave key: updating an enclave pool registry that is associated with the enclave pool based on the change in membership to the enclave pool, such that the updated enclave pool registry includes a registration of the public enclave key of each enclave in the changed enclave pool; replacing a shared enclave pool key that is associated with the enclave pool with an updated shared enclave pool key that is derived from the public enclave key of each enclave in the changed enclave pool; and storing, in a shared key ledger, a version of the shared enclave pool key; and validating at least one payload of at least one enclave of the changed enclave pool based on the shared enclave pool key. 11. The method of claim 10 , wherein each enclave of the plurality of enclaves is at least one of a Virtual Secure Machine or a secure hardware enclave. 12. The method of claim 10 , wherein updating the enclave pool registry based on the change in membership to the enclave pool includes updating the enclave pool registry so that the enclave pool registry indicates, for each enclave in the updated enclave pool, an enclave type of the enclave. 13. The method of claim 12 , wherein the enclave type includes an indication as to whether the enclave is a software enclave or a hardware enclave. 14. The method of claim 12 , further comprising allocating a first enclave of the enclave pool to a first cryptlet, wherein allocating the first enclave of the enclave pool to the first cryptlet is accomplished that the first enclave of the enclave pool is selected based on an enclave type requirement of the first cryptlet such that the first cryptlet is a cryptlet having a cryptlet type corresponding to the enclave type requirement of the first cryptlet. 15. The method of claim 10 , further comprising: allocating a first enclave of the enclave pool to a first cryptlet; receiving a payload of the first enclave such that the payload of the first enclave has a first digital signature by the private enclave key of the first enclave; allocating a second enclave of the enclave pool to the first cryptlet; receiving a payload of the second enclave such that the payload of the second enclave has a second digital signature by the private enclave key of the second enclave; validating the first digital signature against each version of the shared enclave pool key in the shared key ledger; and validating the second digital signature against each version of the shared enclave pool key in the shared key ledger. 16. The method of claim 15 , further comprising: allocating a third enclave of the enclave pool to the first cryptlet; receiving a payload of the third enclave such that the payload of the third enclave has a third digital signature by the private enclave key of the third enclave; and validating the third digital signature against each version of the of the shared enclave pool key in the shared key ledger. 17. A processor-readable storage medium, having stored thereon processor-executable code that, upon execution by at least one processor, enables actions, comprising: upon a membership change occurring with an

Assignees

Inventors

Classifications

  • H04L9/3247Primary

    involving digital signatures · CPC title

  • for group communications (cryptographic mechanisms or cryptographic arrangements for key management involving conference or group key H04L9/0833) · CPC title

  • received data contents, e.g. message integrity · CPC title

  • Providing cryptographic facilities or services · CPC title

  • Revocation or update of secret information, e.g. encryption key update or rekeying · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10740455B2 cover?
The public enclave key of each enclave in an enclave pool may be registered in an enclave pool registry, and the registry updated each time there is an enclave pool membership change. A shared enclave pool key may be derived from the public enclave key of each enclave of the enclave pool. The shared enclave pool key may be stored, in a shared key ledger, as a first version of the shared enclave…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification H04L9/3247. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 11 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).