Type: tpm¶
Note
The tpm device type is supported for both containers and VMs.
It supports hotplugging only for containers, not for VMs.
TPM devices enable access to a TPM emulator.
TPM devices can be used to validate the boot process and ensure that no steps in the boot chain have been tampered with, and they can securely generate and store encryption keys.
Incus uses a software TPM that supports TPM 2.0. For containers, the main use case is sealing certificates, which means that the keys are stored outside of the container, making it virtually impossible for attackers to retrieve them. For virtual machines, TPM can be used both for sealing certificates and for validating the boot process, which allows using full disk encryption compatible with, for example, Windows BitLocker.
Endorsement keys¶
When instances.tpm.platform_cert is set, Incus provisions new TPM devices with endorsement keys and certificates signed by the platform CA.
The public part of those endorsement keys is then exposed through the instance state, both as a SHA-256 fingerprint and as a PEM encoded public key:
incus query /1.0/instances/<instance_name>/state | jq .tpm
This allows an external attestation service to bind an endorsement key to a specific instance without accessing the guest. Note that copies and snapshots carry the TPM state along, so instances created from one another share endorsement keys.
Device options¶
tpm devices have the following device options:
| Key: | path |
| Type: | string |
| Default: | |
| Required: | for containers |