Keys and certificates generated and used by EVE

Introduction

In order to satisfy all of the security requirements discussed in SECURITY, and work with the constraints of trusted platform modules (TPMs) when it comes to different key usage, EVE requires several different keys and associated certificates.

In addition, to handle the multi-level security for communication with the controller (TLS as a base, then object signing to prevent content-inspecting enterprise proxies from modifying configuration etc, then object encryption to prevent such proxies from seeing confidential configuration information) there are several certificates needed from the controller.

Keys and certificates generated on edge node

If EVE is running on hardware with a trusted platform module (TPM), then these key pairs are generated by the TPM, and the certificates are stored both in the filesystem and in the case of the key device certificate, also stored in the TPM's NVRAM. If there is no TPM then the private keys are also stored in the file system.

Key/cert Purpose Type Location Reference
Device key Prove the identity of the device ECC (P-256) TPM or /config/device.key.pem Identity of EVE
Device cert Secure identity of the device ECC (P-256) /config/device.cert.pem Identity of EVE
ECDH key For API object encryption ECC (P-256) TPM or /persist/certs/ecdh.key.pem Config object encryption
ECDH cert For API object encryption ECC (P-256) /persist/certs/ecdh.cert.pem Config object encryption
Attestation key Sign the attestation ECC (P-256) TPM or /persist/certs/attest.cert.pem Measured Boot and Remote Attestation
Attestation cert Sign the attestation ECC (P-256) /persist/certs/attest.cert.pem Measured Boot and Remote Attestation
Onboarding key Used initially for onboarding ECC (P-256) /config/onboard.key.pem Registration
Onboarding cert Used initially for onboarding ECC (P-256) /config/onboard.cert.pem Registration
Endorsement cert Needed for some use of vTPM Depends on TPM Generated by TPM Identity of EVE
Vault Encryption Lock/unlock vault Sealed to TPM PCRs Encrypted Data Store
Vault Encryption Backup for upgrades Encrypted and sent to controller Encrypted Data Store

Controller certificates used by EVE

Certificate Purpose Type Location Reference
Root of trust Validate legitimate controller Any /config/root-certificate.pem Trusting controller
Signing cert Signing of API messages Any /persist/certs/server-signing-cert.pem Populated using the EVE API. See SIGNING
ECDH cert Api object encryption ECC (P-256) Only in memory Config object encryption

Other certificates

Certificate Purpose Type Location
TLS root of trust Standard TLS Any /config/v2tlsbaseroot-certificates.pem