# US 2022/0035904 A1 · Using a trusted execution environment to enable network booting

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2022/0035904 A1
- Document ID: US20220035904A1
- Status: Published application
- Kind: A1
- Application number: 16/942,471
- Filed: 2020-07-29
- Published: 2022-02-03
- Earliest claimed: 2020-07-29
- Assignees: Red Hat, Inc.
- Applicants: Red Hat, Inc.
- Inventors: Michael Hingston McLaughlin Bursell; Dmitri Pal
- Web page: https://patentgrep.com/patent/US20220035904A1

## CPC

- G06F 21/53: by executing in a restricted environment, e.g. sandbox or secure virtual machine
- G06F 8/63: {Image based installation; Cloning; Build to order}
- G06F 9/4416: {Network booting; Remote initial program loading [RIPL]}
- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/62: Protecting access to data via a platform, e.g. using keys or access control rules
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/10: {for controlling access to devices or network resources}
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/45587: {Isolation or security of virtual machine instances}
- G06F 2221/2149: Restricted operating environment
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The technology disclosed herein enables a computing device to use a trusted execution environment in an untrusted device to distribute executable image data (e.g., network bootable image) to a set of one or more computing devices. An example method may include: establishing, by a processor, the trusted execution environment in a first computing device, wherein the trusted execution environment comprises an encrypted memory area; loading executable code into the trusted execution environment, wherein the executable code controls access to protected content and wherein the protected content comprises executable image data; and causing the executable code to execute in the trusted execution environment to analyze data of a second computing device and to provide the second computing device access to the protected content.

## Claims

### Claim 1

A method comprising:
establishing, by a processor, a trusted execution environment in a first computing device, wherein the trusted execution environment comprises an encrypted memory area;
loading executable code into the trusted execution environment, wherein the executable code controls access to protected content and wherein the protected content comprises executable image data; and
causing the executable code to execute in the trusted execution environment to analyze data of a second computing device and to provide the second computing device access to the protected content.

### Claim 2 (depends on 1)

The method of claim 1, wherein the executable image data comprises a network bootable image of an operating system and wherein the executable code executed in the trusted execution environment controls access to the network bootable image.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first computing device comprises a server portion of a Preboot Execution Environment (PXE) and the second computing device comprises a client portion of the Preboot Execution Environment (PXE).

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
receiving, by the processor of the first computing device, a request from a third computing device to establish the trusted execution environment in the first computing device;
performing, by the processor, a remote attestation of hardware and code of the first computing device to the third computing device; and
configuring, by the processor, the encrypted memory area and an area of the processor for the trusted execution environment.

### Claim 5 (depends on 1)

The method of claim 1, wherein the executable code executed in the trusted execution environment of the first computing device uses a Trivial File Transfer Protocol (TFTP) to retrieve the protected content from a third computing device and to transfer the protected content to the second computing device.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
retrieving, by the first computing device, the protected content from a third computing device, wherein the protected content comprises the executable image data and comprises configuration data to enable the second computing device to execute the executable image data;
storing the executable image data in a persistent data storage device;
receiving, by the first computing device, a request from the second computing device for the executable image data; and
providing the second computing device with access to the executable image data in the persistent data storage device.

### Claim 7 (depends on 1)

The method of claim 1, wherein the data of the second computing devices comprises identification data of the protected content, wherein the identification data comprises an identifier of a Virtual Machine (VM) image.

### Claim 8 (depends on 1)

The method of claim 1, wherein the trusted execution environment uses memory encryption to isolate the executable code in the trusted execution environment from being accessed by processes executing external to the trusted execution environment.

### Claim 9 (depends on 1)

The method of claim 1, wherein the trusted execution environment comprises the processor using hardware level encryption to store data in the encrypted memory area, wherein the hardware level encryption uses cryptographic keys that are accessible to the processor and are inaccessible to all computing processes executed by the processor.

### Claim 10 (depends on 1)

The method of claim 1, wherein the first computing device executes the executable code in the trusted execution environment as one or more use space processes, and wherein the executable code in the trusted execution environment is accessible to the one or more user space processes and is inaccessible to a kernel managing the one or more use space processes.

### Claim 11 (depends on 1)

The method of claim 1, wherein providing the second computing device with access to the protected content comprises the trusted execution environment executing the executable code to transmit the executable image data to the second computing device.

### Claim 12

A system comprising:
a memory; and
a processing device communicably coupled to the memory, the processing device to:
establish a trusted execution environment in a first computing device, wherein the trusted execution environment comprises an encrypted memory area;
load executable code into the trusted execution environment, wherein the executable code controls access to protected content and wherein the protected content comprises executable image data; and
cause the executable code to execute in the trusted execution environment to analyze data of a second computing device and to provide the second computing device access to the protected content.

### Claim 13 (depends on 12)

The system of claim 12, wherein the executable image data comprises a network bootable image of an operating system and wherein the executable code executed in the trusted execution environment controls access to the network bootable image.

### Claim 14 (depends on 12)

The system of claim 12, wherein the first computing device comprises a server portion of a Preboot Execution Environment (PXE) and the second computing device comprises a client portion of the Preboot Execution Environment (PXE).

### Claim 15 (depends on 12)

The system of claim 12, wherein the executable code executed in the trusted execution environment of the first computing device uses a Trivial File Transfer Protocol (TFTP) to transfer the protected content to the second computing device.

### Claim 16 (depends on 12)

The system of claim 12, wherein the trusted execution environment uses memory encryption to isolate the executable code in the trusted execution environment from being accessed by processes executing external to the trusted execution environment.

### Claim 17

A non-transitory machine-readable storage medium storing instructions which, when executed, cause a processing device of a data exchange device to perform operations comprising:
receiving a request to initiate a trusted execution environment from a management device;
establishing a trusted execution environment in the data exchange device, wherein the trusted execution environment comprises an encrypted memory area;
loading data into the trusted execution environment, the data comprising executable code that controls access to protected content;
receiving a request to access the protected content from a computing device; and
causing the executable code to execute in the trusted execution environment to analyze data of the computing device and to provide the computing device access to the protected content.

### Claim 18 (depends on 17)

The non-transitory machine-readable storage medium of claim 17, wherein the executable image data comprises a network bootable image of an operating system and wherein the executable code executed in the trusted execution environment controls access to the network bootable image.

### Claim 19 (depends on 17)

The non-transitory machine-readable storage medium of claim 17, wherein the data exchange device comprises a server portion of a Preboot Execution Environment (PXE) and the computing device comprises a client portion of the Preboot Execution Environment (PXE).

### Claim 20 (depends on 17)

The non-transitory machine-readable storage medium of claim 17, wherein the executable code executed in the trusted execution environment of the data exchange device uses a Trivial File Transfer Protocol (TFTP) to transfer the protected content to the computing device.
