Secure public cloud with protected guest-verified host control
First Claim
1. An apparatus comprising:
- a processor; and
a memory coupled to the processor;
whereinthe processor is to execute an untrusted host virtual machine monitor (VMM) to manage execution by the processor of at least one guest virtual machine (VM);
the untrusted host VMM is to cause the processor to create a key domain, the first key domain comprising a region of the memory to be encrypted by a key domain key that is inaccessible to the untrusted host VMM;
the processor is to receive an encrypted key domain key and decrypt the encrypted key domain key to produce the key domain key;
the untrusted host VMM is to cause the processor to launch a first guest VM within the key domain, wherein to launch the first guest VM within the key domain comprises switching to the key domain, decrypting at least part of an encrypted domain image to produce a guest control structure containing guest processor state information and to produce a guest code image, and executing the guest code image within the key domain using the guest processor state information from the guest control structure; and
the untrusted host VMM is to cause the processor to launch a second guest VM within the key domain, the second guest VM to provide an agent to act on behalf of the untrusted host VMM within the key domain, wherein to launch the second guest VM within the key domain comprises switching to the key domain, decrypting at least part of the encrypted domain image to produce an agent code image and to produce an agent control structure containing agent processor state information, and executing the agent code image within the key domain using the agent processor state information.
0 Assignments
0 Petitions
Accused Products
Abstract
According to one embodiment, a method comprises executing an untrusted host virtual machine monitor (VMM) to manage execution of at least one guest virtual machine (VM). The VMM receives an encrypted key domain key, an encrypted guest code image, and an encrypted guest control structure. The VM also issues a create command. In response, a processor creates a first key domain comprising a region of memory to be encrypted by a key domain key. The encrypted key domain key is decrypted to produce the key domain key, which is inaccessible to the VMM. The VMM issues a launch command. In response, a first guest VM is launched within the first key domain. In response to a second launch command, a second guest VM is launched within the first key domain. The second guest VM provides an agent to act on behalf of the VMM. Other embodiments are described and claimed.
-
Citations
23 Claims
-
1. An apparatus comprising:
-
a processor; and a memory coupled to the processor;
whereinthe processor is to execute an untrusted host virtual machine monitor (VMM) to manage execution by the processor of at least one guest virtual machine (VM); the untrusted host VMM is to cause the processor to create a key domain, the first key domain comprising a region of the memory to be encrypted by a key domain key that is inaccessible to the untrusted host VMM; the processor is to receive an encrypted key domain key and decrypt the encrypted key domain key to produce the key domain key; the untrusted host VMM is to cause the processor to launch a first guest VM within the key domain, wherein to launch the first guest VM within the key domain comprises switching to the key domain, decrypting at least part of an encrypted domain image to produce a guest control structure containing guest processor state information and to produce a guest code image, and executing the guest code image within the key domain using the guest processor state information from the guest control structure; and the untrusted host VMM is to cause the processor to launch a second guest VM within the key domain, the second guest VM to provide an agent to act on behalf of the untrusted host VMM within the key domain, wherein to launch the second guest VM within the key domain comprises switching to the key domain, decrypting at least part of the encrypted domain image to produce an agent code image and to produce an agent control structure containing agent processor state information, and executing the agent code image within the key domain using the agent processor state information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A processor to:
-
execute an untrusted host virtual machine monitor (VMM) to manage execution by the processor of at least one guest virtual machine (VM); create a key domain in response to a first command issued by the untrusted host VMM, the key domain comprising a region of a memory to be encrypted by a key domain key that is inaccessible to the untrusted host VMM; decrypt an encrypted key domain key to produce the key domain key; launch a first guest VM within the key domain in response to a second command issued by the untrusted host VMM, wherein to launch the first guest VM within the key domain comprises to; switch to the key domain, decrypt at least part of an encrypted domain image to produce a guest control structure containing guest processor state information and to produce a guest code image, and execute the guest code image within the key domain using the guest processor state information from the guest control structure; and in response to a third command issued by the untrusted host VMM, to launch a second guest VM within the key domain, the second guest VM to provide an agent to act on behalf of the untrusted host VMM within the key domain, wherein to launch the second guest VM within the key domain comprises to; switch to the key domain, decrypt at least part of the encrypted domain image to produce an agent code image and to produce an agent control structure containing agent processor state information, and execute the agent code image within the key domain using the agent processor state information. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A method comprising:
-
executing an untrusted host virtual machine monitor (VMM) to manage execution of at least one guest virtual machine (VM); in response to a first command from the untrusted host VMM, creating, by the processor, a key domain, the key domain comprising a region of a memory to be encrypted by a key domain key that is inaccessible to the untrusted host VMM; decrypting an encrypted key domain key to produce the key domain key; in response to a second command from the untrusted host VMM, launching a first guest VM within the key domain, wherein launching the first guest VM comprises; switching to the key domain, decrypting at least part of an encrypted domain image to produce a guest control structure containing guest processor state information and to produce a guest code image, and executing the guest code image within the key domain using the guest processor state information from the guest control structure; and in response to a third command issued by the untrusted host VMM, launching a second guest VM within the key domain, the second guest VM to provide an agent to act on behalf of the untrusted host VMM within the key domain, wherein launching the second guest VM within the key domain comprises; switching to the key domain, decrypting at least part of the encrypted domain image to produce an agent code image and to produce an agent control structure containing agent processor state information, and executing the agent code image within the key domain using the agent processor state information. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
-
Specification