Introduction
Platform Configuration Registers (PCRs) are tamper-evident registers inside a device’s Trusted Platform Module (TPM) that record measurements of firmware, bootloader, and OS components as they load during startup. Each register holds a hash value representing the state of a specific layer of the boot chain. If any component is modified, the corresponding PCR value changes.
A PCR template is a named set of expected PCR values that you associate with a hardware model. During remote attestation (the process by which Edge Infrastructure Services verifies a device’s boot integrity before trusting it), EVE-OS (Edge Virtualization Engine) reports cryptographic proof of the freshness and authenticity of the PCR values to Edge Infrastructure Services, and then Edge Infrastructure Services compares them against the template. If the values match, attestation succeeds and the edge node is trusted. If they do not match, Edge Infrastructure Services does not release the key that unlocks the vault, and the device is flagged as untrusted.
PCR templates are attached to hardware models in your enterprise library.
Prerequisites
- You have the SysManager or SysAdmin role in your enterprise. Users without this role can view templates but cannot make changes.
-
To update EVE-OS on edge nodes that use PCR templates, first obtain expected PCR values, boot a known-good reference device and retrieve the values from the TPM using your standard tooling. Update your PCR templates before upgrading to ensure seamless vault unlocking after the upgrade and maintain your security posture. To obtain the values after decie is onboarded, using the following command :
eve enter vtpm
tpm2 pcrread sha256
A Hardware Model Can Have Multiple PCR Templates
A single hardware model can have more than one PCR template for the same EVE-OS image version. This is expected and often necessary.
PCR values do not depend on the EVE-OS version alone. They also reflect the device firmware (BIOS) version and its boot configuration. Two devices of the same hardware model running the same EVE-OS version can still report different PCR values if they use different BIOS versions or BIOS settings (for example, boot order, USB boot, or Fast Boot). See Factors Affecting PCR[1] for the settings that change these values.
To cover every legitimate variant in your fleet, you attach one template per known-good combination of EVE-OS image version and firmware version. This is why the Add PCR Template dialog asks you to select both an EVE-OS image version and a firmware version.
Is there a hierarchy?
No. PCR templates are not ranked and are not applied in a priority order. Edge Infrastructure Services treats the templates configured for a hardware model and EVE-OS image version as a set of allowed known-good states. During attestation, it compares the device’s reported PCR values against that set, and the device passes if the values match any one template. Attestation fails only when the reported values match none of the configured templates. When a match succeeds, Edge Infrastructure Services releases the key that unlocks the device vault.
Attestation Operations using UI
- Edge Nodes > YOUR_EDGE_NODE > Status tab > Attestation section
- Marketplace > Model > YOUR_MODEL > Attestation tab
Create PCR Template
These steps show how to create a template from the Marketplace.
- Navigate to Marketplace > Model > YOUR_MODEL > Attestation tab.
- Click Add PCR Template.
-
Click the Click here link to pre-fill the template using the values from the edge node.
- The link is active only during the first-time configuration of a PCR template for onboarded devices.
- After you have filled the PCR values, keep only the PCRs you need and delete the remaining.
- Select a Name, EVE-OS image version, and Firmware version accordingly.
- Click Add.
View PCR Template
Edge Nodes Details View
These steps show how to view PCR values from the edge node.
- Navigate to Edge Nodes > YOUR_EDGE_NODE > Status tab.
- Scroll to the Attestation section.
-
Click the Show Reported PCR Values link to see the reported values.
Note: Starting with the ZEDEDA platform Release 7.3.0, a new attestation state 'Passed – No Attestation Enforced' is added. This state is appropriately seen under the Edge Node details page's attestation section. -
(Optional) Copy the values if you need them, for example if you want to use them for an update.
Note: Copy the relevant PCR values common for all model devices into the template.
Warning: Copying all the PCR values is not advised. - A toast message is displayed.
Enforce PCR Template
- Navigate to Administration > Projects > YOUR_PROJECT.
- Click the edit (pencil) icon.
- Click the checkbox to select the Edge Node Policy to enforce edge node attestation & propagation of configuration changes to the edge node.
- Click Save.
Update PCR Template
Step 1 > Click on the expand (⌄) icon to display the particular EVE-OS image PCR template.
Step 2 > Click on the edit (pencil) icon to edit or update the PCR template.
Step 3 > Pre-fill the template values with the copied values.
Step 4 > Click on the 'Save' button.
The selected PCR template is updated.
Delete PCR Template
- Navigate to Edge Nodes > YOUR_EDGE_NODE > Status tab.
- Scroll to the Attestation section.
- Click the link to Configure a PCR Template.
- Select the EVE-OS image version that needs to be deleted.
- Click the ellipsis (...) icon.
- From the dropdown, select Delete.
- Click Delete to confirm.
Next Steps
This is a series of articles, you will likely follow them in this order:
- Overview of the Trusted Platform Module in EVE-OS
- Factors Affecting PCR TPM Register
- Remote Attestation Overview
- Manage PCR Templates - You are here!
- Configure an attestation policy in your project.
- Use EVE-OS Local UI to analyze attestation issues.