IP Library Granted Patent US 9,367,339
Granted Patent B2
US 9,367,339 · App. 13/932,828 · Granted Jun 14, 2016

Cryptographically attested resources for hosting virtual machines

Inventors: Nachiketh Rao Potlapally (Arlington, VA); Eric Jason Brandwine (Haymarket, VA); Matthew Shawn Wilson (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F9/455G06F9/45558G06F9/5077G06F12/14G06F12/145G06F21/57G06F2009/45562G06F2009/45587H04L9/08H04L9/32H04L63/04
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 9,367,339
App. No.
13/932,828
Granted
Jun 14, 2016
Kind
B2
Abstract

Approaches to enable the configuration of computing resources for executing virtual machines on behalf of users to be cryptographically attested to or verified. When a user requests a virtual machine to be provisioned, an operator of the virtualized computing environment can initiate a two phase launch of the virtual machine. In the first phase, the operator provisions the virtual machine on a host computing device and obtains cryptographic measurements of the software and/or hardware resources on the host computing device. The operator may then provide those cryptographic measurements to the user that requested the virtual machine. If the user approves the cryptographic measurements, the operator may proceed with the second phase and actually launch the virtual machine on the host. In some cases, operator may compare the cryptographic measurements to a list of approved measurements to determine whether the host computing device is acceptable for hosting the virtual machine.

Claims (73)

1. A non-transitory computer readable storage medium storing one or more sequences of instructions, which when executed by one or more processors to cause a computing system to:

receive a request to provision a virtual machine for a customer, the request received from a customer of a service provider hosting a multitenant computing environment;

select a host computing device from a plurality of host computing devices to host the virtual machine, the selected host computing device including one or more resources for executing the virtual machine;

provision the virtual machine on the selected host computing device;

generate a hash measurement of a configuration of the one or more resources on the selected host computing device;

obtain, from the customer, an indication of whether the configuration of the one or more resources is acceptable for hosting the virtual machine, the indication being based at least in part on a comparison between the hash measurement and a list of approved hash measurements; and

launch the virtual machine on the selected host computing device in response to the indication that the configuration of the one or more resources is acceptable.

2. The non-transitory computer readable storage medium of claim 1 , wherein the list of approved hash measurements is a trusted list attested to by a trusted third party.

3. The non-transitory computer readable storage medium of claim 1 , wherein the hash measurement is based at least in part on one or more of:

values associated with a basic input/output system (BIOS) of the host computing device;

configuration of a hypervisor of the host computing device;

configuration of a boot operating system of the virtual machine;

values in one or more hardware configuration registers; or

firmware in a peripheral component interconnect (PCI) card.

4. The non-transitory computer readable storage medium of claim 1 , further comprising instructions executed by one or more processors to cause a computing system to:

provide the hash measurement to the customer in response to the request to provision the virtual machine.

5. A computer implemented method, comprising:

receiving a request to provision a virtual machine for a user;

selecting a host computing device for hosting the virtual machine, the host computing device including one or more resources for executing the virtual machine;

obtaining a cryptographic measurement of the one or more resources on the selected host computing device;

receiving a selection of a configuration of the host computing device from the user;

determining an approved cryptographic measurement associated with the selected configuration of the host computing device;

verifying that the cryptographic measurement matches the approved cryptographic measurement associated with the selected configuration of the host computing device; and

providing the user with access to the virtual machine on the host computing device.

6. The computer implemented method of claim 5 , wherein providing the user with access to the virtual machine further comprises:

providing the cryptographic measurements to the user in response to the request to provision the virtual machine;

receiving an indication from the user, indicating whether the cryptographic measurement is approved by the user; and

launching the virtual machine on the host computing device in response to receiving an indication that the cryptographic measurement is approved.

7. The computer implemented method of claim 5 , wherein providing the user with access to the virtual machine further comprises:

retrieving a list of approved cryptographic measurements;

comparing the cryptographic measurement to the list of approved cryptographic measurements to determine whether the one or more resources on the selected host computing device are acceptable for hosting the virtual machine; and

launching the virtual machine on the selected host computing device in response to determining that the one or more resources are acceptable.

8. The computer implemented method of claim 7 , wherein the list of approved cryptographic measurements is provided by the user along with the request to provision the virtual machine.

9. The computer implemented method of claim 5 , wherein the approved cryptographic measurement is generated by a trusted third party and attested to by the trusted third party.

10. The computer implemented method of claim 5 , further comprising:

compiling a list of approved cryptographic measurements for a plurality of configurations for host computing devices; and

providing the list of approved cryptographic measurements to a trusted third party to be attested to by the trusted third party.

11. The computer implemented method of claim 10 , further comprising:

determining that at least one of a plurality of host computing devices has been patched or updated; and

updating the list of approved cryptographic measurements with a new cryptographic measurement to account for the patch or update to the host computing devices.

12. The computer implemented method of claim 10 , wherein the list of approved cryptographic measurements is published by the trusted third party to be accessible over a network by a plurality of users.

13. The computer implemented method of claim 5 , wherein the cryptographic measurement is based at least in part on one or more of:

values associated with a basic input/output system (BIOS) of the host computing device;

configuration of a hypervisor of the host computing device;

configuration of a boot operating system of the virtual machine;

values in one or more hardware configuration registers; or

firmware in a peripheral component interconnect (PCI) card.

14. A computing system, comprising:

at least one processor; and

memory including instructions that, when executed by the processor, cause the computing system to:

receive a request to provision a virtual machine for a user;

select a host computing device for hosting the virtual machine, the host computing device including one or more resources for executing the virtual machine;

obtain a cryptographic measurement of the one or more resources on the selected host computing device;

receive a selection of a configuration of the host computing device from the user;

determine an approved cryptographic measurement associated with the selected configuration of the host computing device;

verify that the cryptographic measurement matches the approved cryptographic measurement associated with the selected configuration of the host computing device; and

provide the user with access to the virtual machine on the host computing device.

15. The computing system of claim 14 , wherein providing the user with access to the virtual machine further comprises:

providing the cryptographic measurements to the user in response to the request to provision the virtual machine;

receiving an indication from the user, indicating whether the cryptographic measurement is approved by the user; and

launching the virtual machine on the host computing device in response to receiving an indication that the cryptographic measurement is approved.

16. The computing system of claim 14 , wherein providing the user with access to the virtual machine further comprises:

retrieving a list of approved cryptographic measurements;

comparing the cryptographic measurement to the list of approved cryptographic measurements to determine whether the one or more resources on the selected host computing device are acceptable for hosting the virtual machine; and

launching the virtual machine on the selected host computing device in response to determining that the one or more resources are acceptable.

17. The computing system of claim 16 , wherein the list of approved cryptographic measurements is provided by the user along with the request to provision the virtual machine.

18. The computing system of claim 14 , wherein the memory further comprises instructions executed by the at least one processor to cause the computing system to:

compile a list of approved cryptographic measurements for a plurality of configurations for host computing devices; and

provide the list of approved cryptographic measurements to a trusted third party to be attested to by the trusted third party.

19. The computing system of claim 18 , wherein the memory further comprises instructions executed by the at least one processor to cause the computing system to:

determine that at least one of a plurality of host computing devices has been patched or updated; and

update the list of approved cryptographic measurements with a new cryptographic measurement to account for the patch or update to the host computing devices.

20. The computing system of claim 18 , wherein the list of approved cryptographic measurements is published by the trusted third party to be accessible over a network by a plurality of users.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2013
From: POTLAPALLY, NACHIKETH; BRANDWINE, ERIC JASON; WILSON, MATTHEW SHAWN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 031684/0333 →
Continuity (1)
Related Publication 20150007175A1 · Jan 1, 2015