Skip to main content

Standalone tool to verify AWS Nitro Enclave attestation documents from Epsilon

Project description

Epsilon Attestation Verifier

License Release Tests

Verify AWS Nitro Enclave attestation documents. No AWS account or Nitro hardware required.

Install

pip install epsilon-attestation-verifier

Usage

from epsilon_verifier import verify_attestation

result = verify_attestation(
    attestation_doc="<base64 attestation>",
    expected_pcr0="abc123...",    # Optional: verify enclave image
    expected_output="Hello",      # Optional: verify output hash
    allow_expired=True            # For historical attestations (~3hr cert lifetime)
)

if result.valid:
    print(f"Verified: PCR0={result.pcr0}, AWS signature={result.aws_signature_valid}")
else:
    print(f"Failed: {result.error}")

CLI

epsilon-verify verify attestation.json
epsilon-verify verify attestation.json --pcr0 abc123... --output output.txt --json
epsilon-verify extract attestation.json

What It Checks

  1. COSE signature — signed by genuine AWS Nitro hardware (ECDSA P-384)
  2. Certificate chain — valid chain to AWS Nitro root CA
  3. PCR values — enclave ran expected code (image hash match)
  4. Output hash — output integrity (SHA-256)

Attestation Structure

COSE_Sign1 (CBOR):
├── module_id      Enclave instance ID
├── pcrs           PCR0 (image), PCR1 (kernel), PCR2 (app)
├── certificate    Enclave certificate (DER)
├── cabundle       Chain to AWS root
├── user_data      Job ID, script hash, dataset hash, output hash
├── nonce          Replay protection
└── timestamp      Execution time (ms)

Trust Model

You trust: AWS Nitro Attestation PKI (hardware root of trust) You verify: COSE signature, certificate chain, PCR values, output hash

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

epsilon_attestation_verifier-1.1.0.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

epsilon_attestation_verifier-1.1.0-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file epsilon_attestation_verifier-1.1.0.tar.gz.

File metadata

File hashes

Hashes for epsilon_attestation_verifier-1.1.0.tar.gz
Algorithm Hash digest
SHA256 0c166727cc9c02e5412275b35987e27cfcaa03d8ccaa229b15ca691797042073
MD5 cbf477fc8449794b1839100eb0e39307
BLAKE2b-256 7203aaf5ee67ab07c1addeaf2bbb94e7e437b026857ffad043374a6c60d42986

See more details on using hashes here.

File details

Details for the file epsilon_attestation_verifier-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for epsilon_attestation_verifier-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 775423fd4c4a0df4d8019e21a6a3e04fa50f631e2b406e165e9dd2ea141bbad4
MD5 c036589b316f41263e4f64ef704ed02b
BLAKE2b-256 a1326859745a83ba74f0466445765a3180b78000c8f3cb275f876ddb21975b5f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page