Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions docs/design/ignition-fetch-protection.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Ignition Configuration Fetch Protection with 2-phase Attestation

## Overview

This document describes the security mechanism for protecting the Ignition configuration fetch endpoint using attestation. By requiring attestation before serving the Ignition configuration containing the Clevis pin and UUID, the system prevents arbitrary requests from accessing node-specific configuration and registration endpoints.

## Security Challenge

Without protection, the registration service endpoint that serves Ignition configurations with Clevis pin settings and UUIDs is vulnerable to unauthorized accesses, any client can request and receive Ignition configurations and generates UUIDs and secrets, polluting and overloading the operator.

## Protected Fetch Flow

The solution introduces an attestation-protected fetch mechanism where nodes must prove their authenticity before receiving their Ignition configuration.

![](../pics/ignition-fetch-with-attestation.png)

### Process Flow

1. **Remote Attestation Request**: Ignition initiates a remote attestation with the Trustee Attester
- Uses generic reference values for the image (no UUID)
- Proves the platform is running in a confidential computing environment

2. **Attestation Token Received**: Trustee Attester validates the attestation and returns an attestation token
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Trustee validates ... (remove Attester)

- Token confirms the node meets basic confidential computing requirements

3. **Protected Ignition Fetch**: Ignition requests its configuration from the Registration Service
- Includes the attestation token in the request
- Registration Service validates the token before proceeding

4. From now on, the steps are the ones described in the [booting design document](./docs/design/boot-attestation.md).

Binary file added docs/pics/ignition-fetch-with-attestation.png
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Remote attestation is initiated by Ignition but performed by the attester, isn't it?
  • By "attestation token", you mean one à la https://github.com/confidential-containers/trustee/blob/main/attestation-service/docs/grpc-as.md#quick-start? Is it going to verify against Trustee (that should be in the diagram) or something else (what/how?)?
  • Interaction between Ignition and Trustee attester for the disk key phase maybe?
  • I know the diagram in the booting design document is mighty large as is, but I'm not sure I'd split it up this way where the reader must basically merge this diagram into a bigger slightly inaccurate diagram in their head to understand the flow. It would be easier if they could append two diagrams, e.g. if you split by phase? Then you could drop the registration service in the second phase.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading