Introduction
The Flexible PCR Policy lets operators control which Platform Configuration Registers (PCRs) EVE-OS (Edge Virtualization Engine) uses when sealing the vault encryption key into the Trusted Platform Module (TPM). Before this feature, the PCR index list was hardcoded in EVE-OS at compile time. Now Edge Infrastructure Services manages the list per node and distributes it as part of the node configuration. For background on PCRs and how EVE-OS uses them, see TPM PCR Index Security Implications and Factors Affecting PCR[1]. For how the sealing policy relates to the separate attestation PCR template, see Excluded PCRs: Disk-Key Sealing vs. Attestation Template.How It Works
EVE-OS seals the vault encryption key against a set of PCR values. Sealing means the TPM will only release the key if the node boots into a state that produces the same PCR values recorded at sealing time. The default sealing policy covers PCRs 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, and 14. PCR 5 is excluded because it measures the GPT partition table, which EVE-OS itself rewrites on every A/B base image update. PCR 15 is excluded because it is reserved for OS or user-defined measurements. With Flexible PCR Policy, Edge Infrastructure Services sends a PCR index list and a policy ID to the node. When the node receives a new policy, EVE-OS validates it, unseals the vault key under the current policy, and re-seals it under the new one. This happens locally, without a reboot and without a remote attestation round-trip. Remote attestation is needed only if the local unseal fails, for example because the PCR values have already changed since the key was last sealed. The node validates every policy it receives and rejects any policy that:- Omits PCR 0 (the Static Root of Trust for Measurement, which anchors the measured boot chain).
- Includes PCR 5 (volatile by design, as described in the preceding paragraph).
- Contains duplicate indexes.
- Includes indexes outside the range 0–15.
- Contains more than 15 indexes.
Key Benefits
- Per-node control. Tailor the PCR sealing policy to the specific hardware, firmware, and boot configuration of individual nodes without modifying or redeploying EVE-OS.
- Reduced false lockouts. Exclude PCRs that change frequently due to legitimate hardware or firmware variation (for example, PCR 1 on nodes where host platform configuration changes are expected), reducing unnecessary vault lockouts.
- Policy versioning. Each policy carries a unique policy ID that increments with every change, giving operators a traceable record of which PCR configuration was active when a vault key was sealed.
- Backward compatibility. Nodes that do not receive a custom policy continue to use the EVE-OS default PCR indexes. No migration steps are required for existing deployments.
- ZCLI safety guardrails. ZCLI enforces a multi-stage review workflow when modifying a policy, including a security impact warning when PCRs are removed from the default set.
In This Series
- Remote Attestation Overview.
- Trusted Platform Module (TPM) Overview.
- Factors Affecting PCR[1].
- Host Platform Configuration (PCR 1) Interpretation Guide.
- TPM PCR Index Security Implications.
- Excluded PCRs: Disk-Key Sealing vs. Attestation Template.
- Flexible PCR Policy (this article).
- Manage a PCR Policy With ZCLI.