Skip to content

Commit

Permalink
docs: update readme to describe Steward in details
Browse files Browse the repository at this point in the history
Signed-off-by: Dmitri Pal <[email protected]>
  • Loading branch information
Dmitri Pal committed Jan 12, 2023
1 parent 625e7db commit 1eede08
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 0 deletions.
48 changes: 48 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,51 @@
# steward


## Overview

Steward is a critical element of the Confidential Computing infrastructure.
The promise of Confidential Computing is fully utilized when the workload
runtime (Enarx WebAssembly) deployed into a Trusted Execution Environment
(TEE) is assessed and verified for correctness before an actual workload
is released into a TEE from the registry (Drawbridge). An external
**attestation service** must perform evidence verification and assessment
of the hardware's trustworthiness.

**Steward implements such attestation service in a modular, pluggable
and scalable way.**

**Modular:** The architecture of the Trusted Execution Environments
significantly differs between hardware vendors. As a result, the content
and structure of the evidence information are vendor-specific. The Steward
employs modular design to process specific types of evidence in different
backends.

**Pluggable:** Steward employs a pluggable and extensible architecture
to allow the addition of new evidence information to the evidence payload
as well as the support of new hardware architectures.

**Scalable:** Steward service is stateless. It receives a request with
all the information from the client and makes an assessment. As a result,
it is very lightweight and can be scaled up and down in response to
the request load.

Attesting the hardware and workload runtime is only one part of
the Steward's responsibility. The other is the translation of the vendor
and use-case-specific attestation evidence into a format that standard
services and interfaces on the Internet can trust. Such a standard is PKI,
so Steward acts as a Certificate Authority that assesses the attestation
evidence and issues a certificate based on this evidence. The certificate
is returned to the workload and used by it to participate in
the authenticated data exchanges with other services over the encrypted
connections.

## Design Materials

[Attestation Concept](https://hackmd.io/@enarx/r1Yg2kb_s)
[Attestation Flow](https://hackmd.io/@enarx/SySK2_tHo)
[Full Provisioning Flow with Attestation](https://hackmd.io/@enarx/rJ55urrvo)

## Licensing and Copyright

Contributions to this project require copyright assignment to Profian.
License: AGPL-3.0
49 changes: 49 additions & 0 deletions src/main.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,55 @@
// SPDX-FileCopyrightText: 2022 Profian Inc. <[email protected]>
// SPDX-License-Identifier: AGPL-3.0-only

//!
//! # Overview
//!
//! Steward is a critical element of the Confidential Computing infrastructure.
//! The promise of Confidential Computing is fully utilized when the workload
//! runtime (Enarx WebAssembly) deployed into a Trusted Execution Environment
//! (TEE) is assessed and verified for correctness before an actual workload
//! is released into a TEE from the registry (Drawbridge). An external
//! **attestation service** must perform evidence verification and assessment
//! of the hardware's trustworthiness.
//!
//! **Steward implements such attestation service in a modular, pluggable
//! and scalable way.**
//!
//! **Modular:** The architecture of the Trusted Execution Environments
//! significantly differs between hardware vendors. As a result, the content
//! and structure of the evidence information are vendor-specific. The Steward
//! employs modular design to process specific types of evidence in different
//! backends.
//!
//! **Pluggable:** Steward employs a pluggable and extensible architecture
//! to allow the addition of new evidence information to the evidence payload
//! as well as the support of new hardware architectures.
//!
//! **Scalable:** Steward service is stateless. It receives a request with
//! all the information from the client and makes an assessment. As a result,
//! it is very lightweight and can be scaled up and down in response to
//! the request load.
//!
//! Attesting the hardware and workload runtime is only one part of
//! the Steward's responsibility. The other is the translation of the vendor
//! and use-case-specific attestation evidence into a format that standard
//! services and interfaces on the Internet can trust. Such a standard is PKI,
//! so Steward acts as a Certificate Authority that assesses the attestation
//! evidence and issues a certificate based on this evidence. The certificate
//! is returned to the workload and used by it to participate in
//! the authenticated data exchanges with other services over the encrypted
//! connections.
//!
//! # Design Materials
//!
//! [Attestation Concept](https://hackmd.io/@enarx/r1Yg2kb_s)
//! [Attestation Flow](https://hackmd.io/@enarx/SySK2_tHo)
//! [Full Provisioning Flow with Attestation](https://hackmd.io/@enarx/rJ55urrvo)
//!
//! # Licensing and Copyright
//!
//! Contributions to this project require copyright assignment to Profian.
#![warn(rust_2018_idioms, unused_lifetimes, unused_qualifications, clippy::all)]

use steward_server::{app, init_tracing, State};
Expand Down

0 comments on commit 1eede08

Please sign in to comment.