IP Library Granted Patent US 11,847,253
Granted Patent B2
US 11,847,253 · App. 17/107,416 · Granted Dec 19, 2023

Efficient launching of trusted execution environments

Inventors: Michael Hingston McLaughlin Bursell (Farnborough, GB); Michael Tsirkin (Yokneam Illit, IL); Nathaniel McCallum (Raleigh, NC)
Assignee: Red Hat, Inc.
G06F21/71G06F21/606H04L9/0819G06F2221/2149
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,847,253
App. No.
17/107,416
Granted
Dec 19, 2023
Kind
B2
Abstract

The technology disclosed herein enables efficient launching of trusted execution environments. An example method can include: receiving, by a first computing device, a request from a second computing device to establish a set of trusted execution environments (TEEs) in the first computing device; establishing a first TEE of the set of TEEs in the first computing device, wherein the trusted execution environment comprises an encrypted memory area and executable code; receiving, by the first TEE, cryptographic key data from the first computing device; establishing, by the first TEE, a second TEE of the set of TEEs in the first computing device, wherein the second TEE comprises a copy of the executable code; providing, by the first TEE, the cryptographic key data to the second TEE; and causing the executable code of the second TEE to communicate with the first computing device using the cryptographic key data.

Claims (70)

1. A method comprising:

receiving, by a processing device of a first computing device, a request from a second computing device to establish a set of trusted execution environments (TEEs) in the first computing device;

establishing, by the processing device, a first TEE of the set of TEEs in the first computing device, wherein the trusted execution environment comprises an encrypted memory area and executable code;

receiving, by the first TEE, cryptographic key data from the first computing device;

establishing, by the first TEE, a plurality of additional TEEs of the set of TEEs in the first computing device, wherein each of the plurality of additional TEEs comprises a respective copy of the executable code;

providing, by the first TEE, the cryptographic key data to each of the plurality of additional TEEs; and

causing, by the processing device, the executable code of each of the plurality of additional TEEs to communicate with the first computing device using the cryptographic key data.

2. The method of claim 1 , further comprising:

establishing, by the first TEE, one or more additional TEEs of the set of TEEs in the first computing device, wherein each of the one or more additional TEEs comprise an additional copy of the executable code;

providing, by the first TEE, the cryptographic key data to each of the one or more additional TEEs; and

causing, by the processing device, the executable code of each of the one or more additional TEEs to communicate with the first computing device using the cryptographic key data.

3. The method of claim 1 , further comprising:

establishing, by the first TEE, one or more additional TEEs of the set of TEEs in a third computing device, wherein each of the one or more additional TEEs comprise an additional copy of the executable code;

providing, by the first TEE, the cryptographic key data to each of the one or more additional TEEs; and

causing, by the processing device, the executable code of each of the one or more additional TEEs to communicate with the first computing device using the cryptographic key data.

4. The method of claim 1 , wherein each of the plurality of additional TEEs comprises at least one of an encrypted virtual machine, an encrypted container, or a secure enclave component.

5. The method of claim 1 , further comprising:

determining whether the set of TEEs requested by the second computing device have been established; and

responsive to determining that the set of TEEs have been established, terminating the first TEE.

6. The method of claim 1 , further comprising:

determining whether the set of TEEs requested by the second computing device have terminated by the second computing device; and

responsive to determining that the set of TEEs have been terminated, terminating the first TEE.

7. The method of claim 1 , wherein the cryptographic key data provided by the first TEE is used by a second TEE to decrypt an encrypted data from the first computing device.

8. A system comprising:

a memory; and

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

receive a request from a first computing device to establish a set of trusted execution environments (TEEs);

establish a first TEE of the set of TEEs, wherein the first TEE comprises an encrypted memory area and executable code;

receive, by the first TEE, cryptographic key data from the first computing device;

establish, by the first TEE, a plurality of additional TEEs of the set of TEEs, wherein each of the plurality of additional TEEs comprises a respective copy of the executable code;

provide, by the first TEE, the cryptographic key data to each of the plurality of additional TEEs; and

cause the executable code of each of the plurality of additional TEEs to establish an encrypted communication channel with the first computing device in view of the cryptographic key data.

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

establish, by the first TEE, one or more additional TEEs of the set of TEEs in the first computing device, wherein each of the one or more additional TEEs comprise an additional copy of the executable code;

provide, by the first TEE, the cryptographic key data to each of the one or more additional TEEs; and

cause the executable code of each of the one or more additional TEEs to establish encrypted communication channels with the computing device in view of the cryptographic key data.

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

establish, by the first TEE, one or more additional TEEs of the set of TEEs in a second computing device, wherein each of the one or more additional TEEs comprise an additional copy of the executable code;

provide, by the first TEE, the cryptographic key data to each of the one or more additional TEEs; and

cause the executable code of each of the one or more additional TEEs to establish encrypted communication channels with the computing device in view of the cryptographic key data.

11. The system of claim 8 , wherein each of the plurality of additional TEEs comprises at least one of an encrypted virtual machine, an encrypted container, or a secure enclave component.

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

determine whether the set of TEEs requested by a second computing device have been established; and

responsive to determining that the set of TEEs have been established, terminate the first TEE.

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

determine whether the set of TEEs requested by a second computing device have terminated by the second computing device; and

responsive to determining that the set of TEEs have been terminated, terminate the first TEE.

14. The system of claim 8 , wherein the cryptographic key data provided by the first TEE is used by a TEE of the plurality of additional TEEs to decrypt an encrypted data from the first computing device.

15. A non-transitory computer readable medium storing instructions which, when executed by a processing device, cause the processing device to:

receive a request from a computing device to establish a set of trusted execution environments (TEEs);

establish a first TEE of the set of TEEs, wherein the first TEE comprises an encrypted memory area and executable code;

receive, by the first TEE, cryptographic key data from the computing device;

establish, by the first TEE, a plurality of additional TEEs of the set of TEEs, wherein each of the plurality of additional TEEs comprises a respective copy of the executable code;

provide, by the first TEE, the cryptographic key data to each of the plurality of additional TEEs; and

cause the executable code of each of the plurality of additional TEEs to establish an encrypted communication channel with the computing device in view of the cryptographic key data.

16. The non-transitory computer readable medium of claim 15 , wherein the processing device is further to:

establish, by the first TEE, one or more additional TEEs of the set of TEEs in the first computing device, wherein each of the one or more additional TEEs comprise an additional copy of the executable code;

provide, by the first TEE, the cryptographic key data to each of the one or more additional TEEs; and

cause the executable code of each of the one or more additional TEEs to establish encrypted communication channels with the computing device in view of the cryptographic key data.

17. The non-transitory computer readable medium of claim 15 , wherein the processing device is further to:

establish, by the first TEE, one or more additional TEEs of the set of TEEs in a second computing device, wherein each of the one or more additional TEEs comprise an additional copy of the executable code;

provide, by the first TEE, the cryptographic key data to each of the one or more additional TEEs; and

cause the executable code of each of the one or more additional TEEs to establish encrypted communication channels with the computing device in view of the cryptographic key data.

18. The non-transitory computer readable medium of claim 15 , wherein the processing device is further to:

determine whether the set of TEEs requested by a second computing device have been established; and

responsive to determining that the set of TEEs have been established, terminate the first TEE.

19. The non-transitory computer readable medium of claim 15 , wherein the processing device is further to:

determine whether the set of TEEs requested by a second computing device have terminated by the second computing device; and

responsive to determining that the set of TEEs have been terminated, terminate the first TEE.

20. The non-transitory computer readable medium of claim 15 , wherein the cryptographic key data provided by the first TEE is used by a TEE of the plurality of additional TEEs to decrypt an encrypted data from the first computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2021
From: BURSELL, MICHAEL HINGSTON MCLAUGHLIN; TSIRKIN, MICHAEL; MCCALLUM, NATHANIEL
To: RED HAT, INC.
Reel/Frame 055017/0635 →
Continuity (1)
Related Publication 20220171883A1 · Jun 2, 2022
Cited By (1)
US 12,598,184