Bug Reference

Branch

master, 4.2.0

Introduction

Trusted compute pools with Intel Trusted Execution Technology enable isolation and tamper detection in boot process and complement run time protections. Meanwhile, hardware-based trust provides verification useful in compliance and trust status, which security and policy applications use to control workload.

Using Intel's TXT technology, a number of painpoints of a secure computing environments can be addressed. For example, Isolation is a key concern in a shared infrastructure where a lack of traditional guarantees of physical separation are lacking and multiple workloads may interfere with each other. Enforcement i.e. controls needed to enforce protection of Infrastructure can prevent pre-runtime environments are target of new attacks and low-level attacks are hard to detect and can be difficult to recover from. Encryption is another problem that can get worse in a cloud where data protection can be harder due to lack of boundaries and multi-tenancy.

Source: Intel TXT Overview

Purpose

This document describes the specifications and design of the feature.

References

http://www.intel.com/content/www/us/en/architecture-and-technology/trusted-execution-technology/malware-reduction-general-technology.html
https://cwiki.apache.org/confluence/display/CLOUDSTACK/FS+-+Affinity-Anti-affinity+groups

Document History

Author

Description

Date

Hari Kannan

Inital Requirement

01/10/2013

Devdeep Singh

Initial Draft

03/7/2013

Devdeep Singh

Added details on the trusted host processor and how deployment of an instance will work

04/24/2013

Requirement:

Non requirements

Glossary

Feature Specification

Uses Cases

Architecture and Design description

Dependency on the attestation server client library
A java client library is available for easy integration with the attestation server. Cloudstack will be using it to register with the attestation server and to check for the trust relationship of a host. The library and this feature will be made available under non-oss.

Feature will be contained in a plugin

Registering an attestation server with cloudstack

Registering a host for attestation

Checking the trust relationship of an host

Deploying an instance on a trusted host

Database modifications

A new table will be created in the db to hold the attestation server details. Open Issue 4.

Field name

Type

Allow nulls

Key

Default value

id

bigint(20) unsigned

No

Primary

Null

uuid

varchar(40)

Yes

None

Null

name

varchar(255)

Yes

None

Null

url

varchar(255)

No

None

Null

username

varchar(255)

No

None

Null

password

varchar(255)

No

None

Null

data_center_id

bigint(20)

No

None

Null

removed

datatime

Yes

None

Null

Web Services APIs

  1. registerAttestationServer : A new api to register an attestation server with cloudstack. It will take the details of the attestation server as a parameter and check if a connection can be established to it.

    Parameters

    Type

    Required/Optional

    Comments

    url

    String

    Required

    Url of the attestation server

    username

    String

    Required

    Username with which cloudstack should register and connect with the attestation server

    password

    String

    Required

    Password with which cloudstack should register and connect with the attestation server

    zoneid

    UUID

    Required

    Zone to which the attestation server will be registered with

    name

    String

    Optional

    Friendly name the identify the attestation server


    Response Object

    Comment

    AttestationServerResponse

    The parameters contained in the response object are uuid, url and username

  2. listAttestationServer : A new api to list the attestation server registered with cloudstack. It will return AttestationServerResponse in response.

    Parameters

    Type

    Required/Optional

    Comments

    id

    UUID

    Optional

    Attestaion server id

  3. unregisterAttestationServer : A new api to unregister an attestation server. It will return SuccessResponse.

    Parameters

    Type

    Required/Optional

    Comments

    id

    Uuid

    Required

    Id of the attestation server

  4. registerHostWithAttestaionServer : A new api to register a host with the attestation server. It will whitelist and register the host with the attestation server. It will return RegisterHostWithAttestaionServerResponse object.

    Parameters

    Type

    Required/Optional

    Comments

    id

    Uuid

    Required

    Id of the host. This host gets whitelisted and registered with the attestation server registered for the zone to which the host belongs


    Response Object

    Comment

    RegisterHostWithAttestaionServerResponse

    The parameters contained in the response object are id of the host, attestation server id and flags detailing whether whitelisting, registeration and trust assertion of the host were successful.

Test Guidelines

<TBD>

Hypervisor support

The functionality will be made available for VmWare, KVM and XenServer.

Supportability characteristics

Logging

All successful operations are logged to INFO, all exceptions/failures to ERROR, and all synchronization checks to DEBUG.

UI Flow

The feature will be accessible only through apis. Whether a host is trusted or not can be established by looking at its tags.