IP Library › Granted Patent US 11,256,785
Granted Patent B2
US 11,256,785 · App. 16/565,271 · Granted Feb 22, 2022

Using secure memory enclaves from the context of process containers

Inventors: Maxwell Christopher Renke (Sammamish, WA); Taylor James Stark (Redmond, WA); Benjamin M. Schultz (Bellevue, WA); Giridhar Viswanathan (Redmond, WA); Frederick Justus Smith (Redmond, WA); Deepu Chandy Thomas (Bellevue, WA); Hari R. Pulapaka (Redmond, WA); Amber Tianqi Guo (Seattle, WA)
Assignee: MICROSOFT TECHNOLOGLY LICENSING, LLC
G06F21/121G06F12/1433G06F21/552G06F21/79
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,256,785
App. No.
16/565,271
Granted
Feb 22, 2022
Kind
B2
Abstract

Memory is partitioned and isolated in container-based memory enclaves. The container-based memory enclaves have attestable security guarantees. During provisioning of the container-based memory enclaves from a container image, a purported link in the container to a memory address of the enclave is modified to verifiably link to an actual memory address of the host, such as partitioned memory enclave. In some instances, enclave attestation reports can be validated without transmitting corresponding attestation requests to remote attestation services, based on previous attestation of one or more previous container attestation reports from a similar container and without requiring end-to-end attestation between the container and remote attestation service for each new attestation request.

Claims (21)

1. A computing system comprising:

one or more processors; and

one or more computer-readable storage medium having stored computer executable instructions which are executable by the one or more processors for configuring the computing system to implement a method for creating a container-based memory enclave, and by at least configuring the computing system to perform the following:

identify a container image having a security component that is used for attesting to a particular security configuration that is used by a host system running on a first security domain;

use the container image to instantiate a new container, the new container being configured to utilize enclave memory in a second security domain of the host system based on a copy of the security component that is stored in the enclave memory at a particular memory address of the host system when the new container is instantiated, the container image providing a purported link of the new container to a purported memory address of the copy of the security component stored in the enclave memory of the host system; and

during or after instantiation of the new container, modify the purported link of the new container to the purported memory address of the copy of the security component stored in the enclave memory into a particular memory address of the copy of the security component stored at the particular memory address of the host system and so that the purported link of the new container to the purported memory address is modified to verifiably link the new container to the particular memory address of the security component stored in the enclave memory at the particular memory address of the host system.

2. The computing system of claim 1 , wherein the modifying the purported link comprises overwriting the purported memory address with the particular memory address of the security component stored in the enclave memory at the particular memory address of the host system.

3. The computing system of claim 1 , wherein the modifying the purported link comprises creating a link to the particular memory address of the security component stored in the enclave memory at the particular memory address of the host system.

4. The computing system of claim 1 , wherein the modifying the purported link comprises updating the purported memory address in a mapping table associated with the security component to include or reference the particular memory address of the security component stored in the enclave memory at the particular memory address of the host system.

5. The computing system of claim 4 , wherein the method further includes creating the mapping table and, during or after instantiating the new container, using metadata associated with the new container to add the referenced address to the mapping table.

6. The computing system of claim 1 , wherein the security component comprises a library file.

7. The computing system of claim 1 , wherein the security component includes data that is used to generate an attestation report regarding the security configuration for the new container.

8. The computing system of claim 7 , wherein the computer executable instructions are further executable by the one or more processors for configuring the computing system to perform attestation of security guarantees associated with the security configuration for the new container.

9. A method for creating a container-based memory enclave, the method comprising:

identifying a container image having a security component that is used for attesting to a particular security configuration that is used by a host system running on a first security domain;

using the container image to instantiate a new container, the new container being configured to utilize enclave memory in a second security domain of the host system based on a copy of the security component that is stored in the enclave memory at a particular memory address of the host system when the new container is instantiated, the container image providing a purported link of the new container to a purported memory address of the copy of the security component stored in the enclave memory of the host system; and

during or after instantiation of the new container, modifying the purported link of the new container to the purported memory address of the copy of the security component stored in the enclave memory into a particular memory address of the copy of the security component stored at the particular memory address of the host system and so that the purported link of the new container to the purported memory address is modified to verifiably link the new container to the particular memory address of the security component stored in the enclave memory at the particular memory address of the host system.

10. The method of claim 9 , wherein the modifying the purported link comprises overwriting the purported memory address with the particular memory address of the security component stored in the enclave memory at the particular memory address of the host system.

11. The method of claim 9 , wherein the modifying the purported link comprises creating a link to the particular memory address of the security component stored in the enclave memory at the particular memory address of the host system.

12. The method of claim 9 , wherein the modifying the purported link comprises updating a mapping table associated with the new container to include or reference the particular memory address of the security component stored in the enclave memory at the particular memory address of the host system.

13. The method of claim 9 , wherein the security component includes data that is used to generate an attestation report regarding the security configuration for the new container and wherein the method further includes performing attestation of security guarantees associated with the security configuration for the new container.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2019
From: RENKE, MAXWELL CHRISTOPHER; STARK, TAYLOR JAMES; SCHULTZ, BENJAMIN M.; VISWANATHAN, GIRIDHAR; SMITH, FREDERICK JUSTUS; THOMAS, DEEPU CHANDY; PULAPAKA, HARI R.; GUO, AMBER TIANQI
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 050319/0626 →
Continuity (2)
Provisional Application 62872233 · Jul 9, 2019
Related Publication 20210011984A1 · Jan 14, 2021