IP Library Granted Patent US 10,896,257
Granted Patent B2
US 10,896,257 · App. 15/934,621 · Granted Jan 19, 2021

Secure boot of virtualized computing instances

Inventors: Jason A. Lango (Mountain View, CA); Adam Cain (Eugene, OR); Nitin Bahadur (Santa Clara, CA); John K. Edwards (Sunnyvale, CA); Kevin George (San Jose, CA); William McGovern (San Jose, CA); Andrew G. Tucker (Portola Valley, CA)
Assignee: VMware, Inc.
G06F21/575G06F9/4401G06F9/45545G06F9/45558G06F21/53H04L9/0631H04L9/0822H04L9/3213H04L9/3234H04L9/3268H04L63/0428H04L63/166G06F2009/45562G06F2009/45587
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 10,896,257
App. No.
15/934,621
Granted
Jan 19, 2021
Kind
B2
Abstract

In an embodiment, a secure boot method comprises writing a wrapped data encryption key (DEK) and a wrapped key encryption key (KEK) onto a label of a wrapped operating system image prior to uploading the wrapped operating system image to a virtual data center using one or more computing devices.

Claims (92)

1. A method for a client device, comprising:

encrypting, at the client device, an operating system image under a data encryption key (DEK) to generate a wrapped operating system image;

encrypting the DEK under a key encryption key (KEK) to generate a wrapped DEK;

transmitting the KEK to a key management server to encrypt the KEK under an account root key of the key management server to generate a wrapped KEK; and

after receiving the wrapped KEK from the key management service, transmitting the wrapped DEK, the wrapped KEK, and the wrapped operating system image from the client device to a virtual data center, wherein the virtual data center subsequently:

sends a decryption request to the key management server, the decryption request including the wrapped KEK;

receives a response from the key management server that includes the KEK;

unwraps the wrapped DEK using the KEK to obtain the DEK; and

boots up a guest operating system using the DEK.

2. The method of claim 1 , wherein

the virtual data center further generates an encrypted machine image by merging the wrapped operating system image with an intermediary guest manager machine image to boot up the guest operating system.

3. The method of claim 2 , wherein the virtual data center generates the encrypted machine image based on:

booting up a temporary instance from the intermediary guest manager machine image;

mounting the wrapped operating system image as a guest drive of an intermediary guest manager; and

storing a snapshot of the temporary instance as the encrypted machine image.

4. The method of claim 1 , wherein

an intermediary guest manager running in the virtual data center performs steps of sending the decryption request, receiving the response, unwrapping the wrapped DEK and booting up the guest operating system.

5. The method of claim 4 , wherein the intermediary guest manager does not store the KEK or the DEK in persistent storage of the virtual data center.

6. The method of claim 4 , further comprising:

generating, by the intermediary guest manager, a different DEK for new root volume data produced during execution of the instance;

generating, by the intermediary guest manager, a different KEK; and

wrapping, by the intermediary guest manager, the DEK and the different DEK using the different KEK.

7. The method of claim 1 , wherein the virtual data center further:

launches an instance with one or more data volumes;

generates a data volume DEK and a data volume KEK;

wraps the data volume DEK with the data volume KEK to produce a wrapped data volume DEK;

sends an encryption request to the key management server to wrap the data volume KEK with an account root key;

receives a wrapped data volume KEK that has been wrapped with the account root key from key management server; and

writes the wrapped data volume DEK and the wrapped data volume KEK to the data volume.

8. A non-transitory computer-readable storage medium storing instructions which, when executed by one or more processors of a client device, cause:

encrypting, at the client device, an operating system image under a data encryption key (DEK) to generate a wrapped operating system image;

encrypting the DEK under a key encryption key (KEK) to generate a wrapped DEK;

transmitting the KEK to a key management service to encrypt the KEK under an account root key of the key management server to generate a wrapped KEK; and

after receiving the wrapped KEK from the key management service, transmitting the wrapped DEK, the wrapped KEK, and the wrapped operating system image from the client device to a virtual data center, wherein the virtual data center subsequently:

sends a decryption request to the key management server, the decryption request including the wrapped KEK;

receives a response from the key management server that includes the KEK;

unwraps the wrapped DEK using the KEK to obtain the DEK; and

boots up a guest operating system using the DEK.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the virtual data center further

generates an encrypted machine image by merging the wrapped operating system image with an intermediary guest manager machine image to boot up the guest operating system.

10. The non-transitory computer-readable storage medium of claim 9 , wherein transmitting the KEK is based on:

establishing a secure connection to the key management service.

11. The non-transitory computer-readable storage medium of claim 9 , wherein

an intermediary guest manager running in the virtual data center performs steps of sending the decryption request, receiving the response, unwrapping the wrapped DEK and booting up the guest operating system.

12. The non-transitory computer-readable storage medium of claim 11 , storing instructions which, when executed by one or more processors, cause:

generating, by the intermediary guest manager, a different DEK for new root volume data produced during execution of the instance;

generating, by the intermediary guest manager, a different KEK; and

wrapping, by the intermediary guest manager, the DEK and the different DEK using the different KEK.

13. The non-transitory computer-readable storage medium of claim 9 , wherein the virtual data center generates the encrypted machine image based on:

booting up a temporary instance from the intermediary guest manager machine image;

mounting the wrapped system image as a guest drive of an intermediary guest manager; and

storing a snapshot of the temporary instance as the encrypted machine image.

14. The non-transitory computer-readable storage medium of claim 8 , wherein the virtual data center further:

launches an instance with one or more data volumes;

generates a data volume DEK and a data volume KEK;

wraps the data volume DEK with the data volume KEK to produce a wrapped data volume DEK;

sends an encryption request to the key management service to wrap the data volume KEK with the account root key;

receives a wrapped data volume KEK that has been wrapped with the account root key from key management service; and

writes the wrapped data volume DEK and the wrapped data volume KEK to the data volume.

15. A computer system, comprising:

an on-premises device having one or more processors and storage media storing first instructions for execution by the one or more processors of the on-premises device;

a virtual data center having one or more processors and storage media storing second instructions for execution by the virtual data center;

wherein the on-premises device is communicatively coupled to the virtual data center by a data network;

wherein the first instructions are configured for:

encrypting an operating system image under a data encryption key (DEK) to generate a wrapped operating system image;

encrypting the DEK under a key encryption key (KEK) to generate a wrapped DEK;

transmitting the KEK to a key management service to encrypt the KEK under an account root key of the key management server to generate a wrapped KEK;

receiving the wrapped KEK from the key management service; and

transmitting, through the data network, the wrapped DEK, the wrapped KEK, and the wrapped operating system to the virtual data center, wherein the virtual data center subsequently uses the wrapped DEK and the wrapped KEK to decrypt the wrapped operating system image;

wherein the second instructions are configured for:

sending a decryption request to the key management server, the decryption request including the wrapped KEK;

receiving a response from the key management server that includes the KEK;

unwrapping the wrapped DEK using the KEK to obtain the DEK;

generating an encrypted machine image by merging the wrapped system image with an intermediary guest manager machine image; and

booting up a guest operating system using the DEK and the encrypted machine image.

16. The computer system of claim 15 , wherein

an intermediary guest manager running in the virtual data center performs steps of sending the decryption request, receiving the response, unwrapping the wrapped DEK, generating the encrypted machine image, and booting up the guest operating system.

17. The computer system of claim 16 , wherein the second instructions are further configured for:

generating, by the intermediary guest manager, a different DEK for new root volume data produced during execution of the instance;

generating, by the intermediary guest manager, a different KEK; and

wrapping, by the intermediary guest manager, the DEK and the different DEK using the different KEK.

18. The computer system of claim 15 , wherein the second instructions are further configured for:

launching an instance with one or more data volumes;

generating a data volume DEK and a data volume KEK;

wrapping the data volume DEK with the data volume KEK to produce a wrapped data volume DEK;

sending an encryption request to the key management service to wrap the data volume KEK with an account root key;

receiving a wrapped data volume KEK that has been wrapped with the account root key from the key management service; and

writing the wrapped data volume DEK and the wrapped data volume KEK to the data volume.

19. The computer system of claim 15 , wherein the second instructions are further configured for:

booting up a temporary instance from the intermediary guest manager machine image;

mounting the wrapped system image as a guest drive of an intermediary guest manager; and

storing a snapshot of the temporary instance as the encrypted machine image.

Assignments (4)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2018
From: IMMUTABLE SYSTEMS, INC.
To: VMWARE, INC.
Reel/Frame 045775/0119 →
CHANGE OF NAME Recorded May 10, 2018
From: BRACKET COMPUTING, INC.
To: IMMUTABLE SYSTEMS, INC.
Reel/Frame 046129/0102 →
CHANGE OF NAME Recorded Apr 26, 2018
From: BRACKET COMPUTING, INC.
To: IMMUTABLE SYSTEMS, INC.
Reel/Frame 046026/0563 →
Continuity (2)
Continuation 15633685 · Jun 26, 2017
Related Publication 20180373879A1 · Dec 27, 2018
Cited By (1)
US 12,309,258