Summary

In cloud computing environment, there can be thousands of compute nodes located in different geographical, or remote locations. Cloud subscribers may require their applications or virtual machines to only run on compute nodes which are verified in running known and good hypervisors to ensure the trustworthiness of the running environment . The feature enables cloud hosting providers to build trusted computing pools based on H/W-based security features, such as Intel Trusted Execution Technology (TXT). Combined with external standalone web-based remote attestation server done by a separate open source project (i.e. "remote attestation"), the providers can ensure that the compute node is running software with verified measurements, thus they can establish the foundation for the secure cloud stack. Through the Trusted Computing Pools, cloud subscribers can request services to be run on verified compute nodes.

Remote Attestation server performs nodes verification through following steps -

1. Compute nodes boot with Intel TXT technology enabled

2. The compute node's BIOS, hypervisor and OS are measured

3. These measured data is sent to Attestation server when challenged by attestation server

4. Attestation server verifies those measurements against good/known database to determine nodes' trustworthiness

300px

Release Note

The cloud providers who deploy Trusted Computing Pools can provide premiere services to users who require services to be only run on compute nodes which are verified in running known and good hypervisors for ensured trustworthy environment. Users will have the option to specify services to be run on compute nodes with verified environment. This set of enhancement will not impact users consuming the HTTP OSAPI.

Rationale

Cloud computing pool can involve thousands of compute nodes located at different geographical locations which are not easy for cloud providers to identify a node's trustworthiness. With enhancement to verify remote attestation service combined with Intel TXT, Openstack scheduler can provide VMs to run on compute nodes with verified software

User Stories

Users can have options to specify their services to be run on compute nodes within the trusted computing pools

height=100 width=200

Assumptions

Trusted Computing Pools take advantage of flavor based filter mechanism and its corresponding APIs to support compute nodes' trustworthiness filtering, such as BaseScheduler() that invokes JsonFiler() in selecting compute nodes as scheduling candidate

Design

Design adds new flavor based filter to support users specified Trusted_lvl=trusted or Trust_lvl=untrusted as filter option to select compute nodes for service. New components are

Implementation

Three key components are built:

height=100 width=200

1. Manager_integrity:

IntegrityService() hooks into manager.SchedulerManager.periodic_tasks() and runs every FLAGS.periodic_interval seconds to build nodes' trust_lvl information into zone_manager.service_states{}. Key logic is as follows:

After Scheduler restarted, it takes (2 * FLAGS.periodic_interval) for IntegrityService() to populate trust states into service_states{} before scheduler can find nodes to dispatch tasks

2. Json_filter_integrity

3. Attestation.service:

Provides Restful API connection to https attestation server with server identification through certification. Access to attestation APIs requires user authentication

4. Configuration Flags

The following nova.conf enables trusted computing pools

Where

UI Changes

There should be no visible changes to the end users, the work is behind the API servers

Code Changes

Code changes should be isolated from the existing API, compute and scheduler modules. Rather, new code modules get added and take effect only when Trusted Computing Pools feature is configured

Migration

Coming soon once implementation nears beta

Test/Demo Plan

Unit tests will be provided as part of enhancements. Integration and large scale testing can be added once there is infrastructure exist

Unresolved Issues

None

BoF agenda and Discussion

The following relevant sessions were discussed at the Diablo design summit


CategorySpec

Wiki: TrustedComputingPools (last edited 2011-10-26 14:33:39 by SuhaibLogde)