Virtual machine assurances
AssigneeMicrosoft Corporartion
InventorsMagnus Nystrom, Stefan Thom
Life of this patent
Estimating the term…
Abstract
Briefly, aspects of the subject matter described herein relate to virtual machines. In aspects, when a host is reset or powered on, a measured boot is performed. If the measured boot indicates that the host is in a state that satisfies a policy for gaining access to a cryptographic key, the cryptographic key may be obtained. The cryptographic key may be used, directly or indirectly, to decrypt data of a virtual storage device. This decrypted data may then be used to instantiate a virtual machine.
Claims20
A method implemented at least in part by a computer, the method comprising:
- powering on or resetting a host that has components for creating a virtual environment, the virtual environment suitable for hosting a virtual machine, the virtual environment including a virtual security component;
- performing a boot process that uses the components to instantiate the virtual environment;
- at pre-defined states during the boot process, providing measurements of the host to a host security component;
- using the measurements as measured into the host security component to obtain a cryptographic key, the measurements indicative that the host is in a state that satisfies a policy for hosting the virtual machine;
- via the cryptographic key, decrypting the virtual security component;
- from the decrypted virtual security component, obtaining a storage key of a virtual storage device associated with the virtual machine;
- and
- instantiating the virtual machine via the decrypted virtual security component and the storage key.
In a computing environment, a system, comprising:
- a memory for storing data of a host;
- a host security device structured to receive measurements indicative of code for executing on the host;
- and
- one or more processors coupled to the memory and the host security device, the one or more processors structured to perform actions, the actions comprising:
- after the host is powered on or reset, performing a boot process to instantiate a hypervisor, the hypervisor structured for establishing a virtual environment on the host and executing a virtual machine therein,
- at pre-defined states during the boot process, providing measurements of the host to the host security component,
- using the measurements as measured into the host security component to obtain a cryptographic key, the measurements indicative that the host is in a state that satisfies a policy for hosting the virtual machine,
- via the cryptographic key, decrypting a virtual storage device directly or indirectly, the decrypting the virtual storage device directly comprising decrypting the virtual storage device using the cryptographic key, the decrypting the virtual storage device indirectly comprising decrypting a virtual security device associated with the virtual machine, obtaining a storage key therefrom, and using the storage key to decrypt the virtual storage device.
A computer storage medium having computer-executable instructions, which when executed perform actions, comprising:
- from a component of a host, receiving a request for a cryptographic key in conjunction with evidence that measurements satisfy a policy for obtaining the cryptographic key, the cryptographic key for a virtual security device associated with a virtual machine, the cryptographic key providing decryption data for decrypting, directly or indirectly, the virtual storage device, the measurements previously performed on the host and measured into a host security component, the evidence produced by the host security component, the host security component having a memory that is protected for at least write use by the host security component only;
- in response to the request, with the evidence, verifying whether the evidence does in fact satisfy the policy;
- and
- if the evidence does in fact satisfy the policy, providing the cryptographic key to the component of the host.
Dependencies are inferred from the claim text.