IP Library Granted Patent US 9,521,140
Granted Patent B2
US 9,521,140 · App. 15/001,175 · Granted Dec 13, 2016

Secure execution environment services

Inventors: Gregory Branchek Roth (Seattle, WA); Aaron Douglas Dokey (Seattle, WA); Eric Jason Brandwine (Haymarket, VA); Nathan Bartholomew Thomas (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04L63/0823G06F21/53G06F21/56G06F21/575H04L9/3268H04L63/062H04L63/123
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,521,140
App. No.
15/001,175
Granted
Dec 13, 2016
Kind
B2
Abstract

Techniques for managing secure execution environments provided as a service to computing resource service provider customers are described herein. A request to launch a secure execution environment is received from a customer and fulfilled by launching a secure execution environment on a selected computer system. The secure execution environment is then validated and upon a successful validation, one or more applications are provided to the secure execution environment to be executed within the secure execution environment. As additional requests relating to managing the secure execution environment are received, operations are performed based on the requests.

Claims (49)

1. A computer-implemented method, comprising:

under the control of one or more computer systems configured with executable instructions,

receiving an application programming interface request for a secure execution environment; and

fulfilling the application programming interface request by at least:

selecting a target computer system from a plurality of target computer systems, the target computer system selected based at least in part on the target computer system being operable to instantiate the secure execution environment; and

sending a provisioning request to the target computer system to cause the secure execution environment to be instantiated on a processor of the target computer system;

validating the secure execution environment, with at least one application loaded in the secure execution environment, using one or more cryptographic measurements of the secure execution environment calculated by the processor;

validating the at least one application loaded in the secure execution environment using one or more cryptographic measurements of the at least one application made from within the secure execution environment; and

providing, to a device associated with the application programming interface request, a first validation result, the first validation result based at least in part on the one or more cryptographic measurements of the at least one application.

2. The computer-implemented method of claim 1 , wherein the target computer system is further selected based at least in part on the target computer system being operable to instantiate the secure execution environment corresponding to a level of security indicator specified within the application programming interface request.

3. The computer-implemented method of claim 1 , wherein the target computer system is further selected based at least in part on a proximity to one or more resources associated with a customer.

4. The computer-implemented method of claim 1 , further comprising fulfilling another application programming interface request to manage the secure execution environment, the other application programming interface request being a request to create, destroy, measure, populate, resize, add pages to, debug, start, stop, describe, generate keys for, or update the secure execution environment.

5. A system, comprising:

at least one computing device that:

receives an application programming interface request to instantiate a secure execution environment; and

fulfills the application programming interface request by sending, to a target computer system, a provisioning request, the provisioning request specifying a configuration for the secure execution environment, the target computer system selected based at least in part on the target computer system being operable to instantiate the secure execution environment;

provides, into the secure execution environment, one or more executable instructions to cause a cryptographic measurement of the secure execution environment to be provided;

receives, from the secure execution environment, the cryptographic measurement of the secure execution environment calculated by causing at least a portion of the one or more executable instructions to be executed within the secure execution environment while at least one application is loaded in the secure execution environment; and

validates the secure execution environment based at least in part on the cryptographic measurement of the secure execution environment;

validates the at least one application loaded in the secure execution environment using one or more cryptographic measurements of the at least one application made from within the secure execution environment; and

provides, to a device associated with the application programming interface request, a first validation result, the first validation result based at least in part on the one or more cryptographic measurements of the at least one application.

6. The system of claim 5 , further comprising a plurality of target computer systems that include the target computer system.

7. The system of claim 5 , wherein the system is operated by a service provider and the at least one computing device further launches one or more applications within the secure execution environment, one or more of the one or more applications specified by a customer of the service provider.

8. The system of claim 7 , wherein the at least one computing device is further:

validates the one or more applications using one or more cryptographic measurements of the one or more applications, the one or more cryptographic measurements of the one or more applications taken before launching the one or more applications within the secure execution environment; and

provides, to the customer of the service provider, a first validation certificate, the first validation certificate based at least in part on the one or more cryptographic measurements of the one or more applications, the first validation certificate specifying information usable to validate the secure execution environment.

9. The system of claim 5 , wherein the system is operated by a service provider and the at least one computing device further, in response to a failure to validate the secure execution environment, sends a message to the service provider, the message at least specifying the failure.

10. The system of claim 5 , wherein the at least one computing device further instantiates a virtual machine instance within the secure execution environment.

11. The system of claim 5 , wherein the at least one computing device further instantiates a controlling domain within the secure execution environment.

12. The system of claim 5 , wherein the measurement is a cryptographic measurement of the secure execution environment made within the secure execution environment, the cryptographic measurement based at least in part on performing one or more hardware instructions, the one or more hardware instructions based at least in part on one or more hardware capabilities associated with the target computer system.

13. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of execution by one or more processors of a computer system, cause the computer system to at least:

receive an application programming interface request for a secure execution environment; and

fulfill the application programming interface request by at least:

selecting a target computer system from a plurality of target computer systems, the target computer system selected based at least in part on the target computer system being operable to instantiate the secure execution environment; and

sending a provisioning request to the target computer system to cause the secure execution environment to be instantiated on a processor of the target computer system;

validate the secure execution environment, with at least one application loaded in the secure execution environment, using one or more cryptographic measurements of the secure execution environment calculated by the processor of the target computer system;

validate the at least one application loaded in the secure execution environment using one or more cryptographic measurements of the at least one application made from within the secure execution environment; and

provide, to a device associated with the application programming interface request, a first validation result, the first validation result based at least in part on the one or more cryptographic measurements of the at least one application.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further cause the computer system to provide a result of validation of the secure execution environment by a validation certificate.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the target computer system is further selected based at least in part on a level of security indicator associated with the target computer system, the level of security indicator associated with the target computer system based at least in part on one or more hardware capabilities of the processor of the target computer system.

16. The non-transitory computer-readable storage medium of claim 13 , wherein the processor of the target computer system is a trusted platform module.

17. The non-transitory computer-readable storage medium of claim 13 , wherein the at least one application comprises a bootloader that instantiates a key service within the secure execution environment so that the key service provides one or more cryptographic keys to one or more applications operating within an environment provided by a computing resource service provider, the one or more cryptographic keys based at least in part on performing one or more hardware instructions, the one or more hardware instructions based at least in part on one or more hardware capabilities of the processor of the target computer system.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the key service executes one or more key service operations associated with one or more secure execution environments, the one or more key service operations causing the computer system to at least:

produce one or more encrypted data items associated with one or more of the one or more secure execution environments, using one or more of the one or more cryptographic keys; and

store the one or more encrypted data items in one or more locations specified by the computing resource service provider.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the key service further, as a result of detecting a failure of a second secure execution environment, causes the computer system to at least:

retrieve, from the one or more locations specified by a computing resource service provider, one or more of the one or more encrypted data items, the one or more of the one or more encrypted data items associated with the second secure execution environment; and

instantiate a third secure execution environment based at least in part on the one or more of the one or more encrypted data items.

20. The non-transitory computer-readable storage medium of claim 13 , wherein the target computer system is selected based at least in part on a hardware description of the target computer system stored within a data storage location specified by a computing resource service provider, the hardware description of the target computer system including one or more hardware capabilities of the processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2016
From: ROTH, GREGORY BRANCHEK; DOKEY, AARON DOUGLAS; BRANDWINE, ERIC JASON; THOMAS, NATHAN BARTHOLOMEW
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 037527/0522 →
Continuity (2)
Continuation 14476569 · Sep 3, 2014
Related Publication 20160134623A1 · May 12, 2016