IP Library › Granted Patent US 12,130,953
Granted Patent B2
US 12,130,953 · App. 17/395,089 · Granted Oct 29, 2024

Secure guest image and metadata update

Inventors: Reinhard Theodor Buendgen (Baden-Wuerttemberg, DE); Jonathan D. Bradbury (Poughkeepsie, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F21/71G06F21/572G06F21/64H04L9/0819H04L9/3271G06F9/45558G06F2009/45575G06F2221/033
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 12,130,953
App. No.
17/395,089
Granted
Oct 29, 2024
Kind
B2
Abstract

A secure guest generates an updated image for the secure guest, and computes one or more measurements for the updated image. The secure guest provides the one or more measurements to a trusted execution environment and obtains from the trusted execution environment metadata for the updated image. The metadata is generated based on metadata of the secure guest and obtaining the one or more measurements.

Claims (83)

1. A computer program product for facilitating processing within a computing environment, the computer program product comprising:

one or more computer readable storage media and program instructions collectively stored on the one or more computer readable storage media to perform the following operations comprising:

generating, by a secure guest, an updated image for the secure guest;

computing, by the secure guest, one or more measurements for the updated image;

providing, by the secure guest, the one or more measurements to a trusted execution environment; and

obtaining from the trusted execution environment metadata for the updated image, the metadata generated based on metadata of the secure guest and obtaining the one or more measurements.

2. The computer program product of claim 1 , wherein the operations further comprise:

obtaining, by the secure guest, an image update request structure indicating the updated image is to be generated;

providing the image update request structure to the trusted execution environment; and

obtaining from the trusted execution environment, based on the image update request structure, a request handle, the request handle to be used in generating the updated image.

3. The computer product of claim 2 , wherein the generating the updated image comprises:

using the request handle to request an encryption key from the trusted execution environment;

constructing an updated plain text image of the secure guest;

encrypting the updated plain text image using the encryption key to obtain an encrypted image, the encrypted image being the updated image; and

wherein the computing the one or more measurements comprises updating, based on the encrypted image, one or more initial measurements of the updated plain text image to obtain the one or more measurements provided to the trusted execution environment, the one or more measurements provided with the request handle.

4. The computer program product of claim 3 , wherein the encryption key is a protected key obtained from the trusted execution environment, wherein the protected key is to be exclusively used by an instance of the secure guest calling the trusted execution environment and a plain text value of the encryption key is unknown to the secure guest.

5. The computer program product of claim 4 , wherein the updated plain text image includes a plurality of pages of memory, and wherein the encrypting the updated plain text image includes encrypting the plurality of pages of memory using the protected key.

6. The computer program product of claim 2 , wherein the obtaining the metadata for the updated image is based on calling a function at the trusted execution environment to create the metadata for the updated image, the calling providing as arguments the request handle and the one or more measurements.

7. The computer program product of claim 6 , wherein the arguments further include other metadata of the updated image.

8. The computer program product of claim 2 , wherein the image update request structure is integrity protected, includes an encrypted part, and is exclusively interpretable by the trusted execution environment.

9. The computer program product of claim 8 , wherein the encrypted part of the image update request structure includes data derived from confidential data in an encrypted part of the metadata of the secure guest issuing an image update request.

10. The computer program product of claim 2 , wherein the operations further comprise:

obtaining a challenge to the image update request structure from the trusted execution environment based on providing the image update request structure to the trusted execution environment, the challenge based on confidential data obtained from an encrypted part of the image update request structure;

obtaining, by the secure guest from a selected entity, a response to the challenge;

providing from the secure guest to the trusted execution environment the response to the challenge;

obtaining from the trusted execution environment, based on providing the response to the challenge, an indication of whether the challenge was successful; and

continuing with generating the updated image based on the challenge being successful.

11. The computer program product of claim 2 , wherein the image update request structure includes one or more indications and data that specify one or more changes to previous secure guest metadata to be used to compute the metadata for the updated image.

12. The computer program product of claim 1 , wherein the operations further comprise storing the updated image of the secure guest and the metadata for the updated image to a boot device.

13. A computer system for facilitating processing within a computing environment, the computer system comprising:

a memory; and

at least one processor in communication with the memory, wherein the computer system is configured to perform the following operations comprising:

generating, by a secure guest, an updated image for the secure guest;

computing, by the secure guest, one or more measurements for the updated image;

providing, by the secure guest, the one or more measurements to a trusted execution environment; and

obtaining from the trusted execution environment metadata for the updated image, the metadata generated based on metadata of the secure guest and obtaining the one or more measurements.

14. The computer system of claim 13 , wherein the operations further comprise:

obtaining, by the secure guest, an image update request structure indicating the updated image is to be generated;

providing the image update request structure to the trusted execution environment; and

obtaining from the trusted execution environment, based on the image update request structure, a request handle, the request handle to be used in generating the updated image.

15. The computer system of claim 14 , wherein the generating the updated image comprises:

using the request handle to request an encryption key from the trusted execution environment;

constructing an updated plain text image of the secure guest;

encrypting the updated plain text image using the encryption key to obtain an encrypted image, the encrypted image being the updated image; and

wherein the computing the one or more measurements comprises updating, based on the encrypted image, one or more initial measurements of the updated plain text image to obtain the one or more measurements provided to the trusted execution environment, the one or more measurements provided with the request handle.

16. The computer system of claim 14 , wherein the obtaining the metadata for the updated image is based on calling a function at the trusted execution environment to create the metadata for the updated image, the calling providing as arguments the request handle and the one or more measurements.

17. A computer-implemented method of facilitating processing within a computing environment, the computer-implemented method comprising:

generating, by a secure guest, an updated image for the secure guest;

computing, by the secure guest, one or more measurements for the updated image;

providing, by the secure guest, the one or more measurements to a trusted execution environment; and

obtaining from the trusted execution environment metadata for the updated image, the metadata generated based on metadata of the secure guest and obtaining the one or more measurements.

18. The computer-implemented method of claim 17 , further comprising:

obtaining, by the secure guest, an image update request structure indicating the updated image is to be generated;

providing the image update request structure to the trusted execution environment; and

obtaining from the trusted execution environment, based on the image update request structure, a request handle, the request handle to be used in generating the updated image.

19. The computer-implemented method of claim 18 , wherein the generating the updated image comprises:

using the request handle to request an encryption key from the trusted execution environment;

constructing an updated plain text image of the secure guest;

encrypting the updated plain text image using the encryption key to obtain an encrypted image, the encrypted image being the updated image; and

wherein the computing the one or more measurements comprises updating, based on the encrypted image, one or more initial measurements of the updated plain text image to obtain the one or more measurements provided to the trusted execution environment, the one or more measurements provided with the request handle.

20. The computer-implemented method of claim 18 , wherein the obtaining the metadata for the updated image is based on calling a function at the trusted execution environment to create the metadata for the updated image, the calling providing as arguments the request handle and the one or more measurements.

21. A computer program product for facilitating processing within a computing environment, the computer program product comprising:

one or more computer readable storage media and program instructions collectively stored on the one or more computer readable storage media to perform the following operations comprising:

obtaining, by a secure guest, an image update request structure indicating an updated image for the secure guest is to be generated;

providing the image update request structure to a trusted execution environment;

obtaining from the trusted execution environment, based on the image update request structure, a request handle, the request handle to be used in generating the updated image;

generating, by the secure guest, the updated image for the secure guest;

computing one or more measurements for the updated image;

providing, by the secure guest, the one or more measurements to the trusted execution environment; and

obtaining from the trusted execution environment metadata for the updated image, the metadata generated based on metadata of the secure guest and obtaining the one or more measurements.

22. The computer product of claim 21 , wherein the generating the updated image comprises:

using the request handle to request an encryption key from the trusted execution environment;

constructing an updated plain text image of the secure guest;

encrypting the updated plain text image using the encryption key to obtain an encrypted image, the encrypted image being the updated image; and

wherein the computing the one or more measurements comprises updating, based on the encrypted image, one or more initial measurements of the updated plain text image to obtain the one or more measurements provided to the trusted execution environment, the one or more measurements provided with the request handle.

23. The computer program product of claim 21 , wherein the image update request structure is integrity protected, includes an encrypted part, and is exclusively interpretable by the trusted execution environment.

24. A computer-implemented method of facilitating processing within a computing environment, the computer-implemented method comprising:

generating, by a secure guest, an updated image for the secure guest;

computing one or more measurements for the updated image;

providing, by the secure guest, the one or more measurements to a trusted execution environment;

obtaining from the trusted execution environment metadata for the updated image, the metadata generated based on metadata of the secure guest and obtaining the one or more measurements; and

storing the updated image of the secure guest and the metadata for the updated image to a boot device.

25. The computer-implemented method of claim 24 , wherein the obtaining the metadata for the updated image is based on calling a function at the trusted execution environment to create the metadata for the updated image, the calling providing as arguments a request handle and the one or more measurements, the request handle obtained from the trusted execution environment and to be used in generating the updated image.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2021
From: BUENDGEN, REINHARD THEODOR; BRADBURY, JONATHAN D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 057097/0115 →
Continuity (1)
Related Publication 20230040577A1 · Feb 9, 2023