Intel® Trust Authority Client Tutorial — vTPM with Intel® TDX Attestation on Microsoft Azure
· 7/14/2025 ·
This tutorial provides steps to use the Intel Trust Authority Attestation Client CLI to attest evidence from a virtual Trusted Platform Module (vTPM) on Microsoft Azure. vTPM evidence can be remotely attested by Intel Trust Authority to verify boot time measurements (ex. the kernel image that was loaded) and runtime file measurements (using Integrity Measurement Architecture (IMA)).
Prerequisites
- An Azure account with permissions to create a confidential TDX VM. Note: this tutorial assumes that Azure CVM is created with "vTPM enabled".
- Access to Intel Trust Authority portal and an api key (referred to as
ITA-API-KEY
below).
Deploy and configure the Intel Trust Authority CLI
Follow the instructions to install the latest Attestation Client CLI and create the following config.json
containing Azure specific vTPM configuration...
{
"cloud_provider": "azure",
"trustauthority_url": "https://portal.trustauthority.intel.com",
"trustauthority_api_url": "https://api.trustauthority.intel.com",
"trustauthority_api_key": "{{ATTESTATION-API-KEY}}",
"tpm": {
"ak_handle": "81000003"
}
}
Note
If you are in the European Union (EU) region, use the following Intel Trust Authority URLs: Base URL — https://portal.eu.trustauthority.intel.com, API URL — https://api.eu.trustauthority.intel.com. All other regions use the URLs shown in the example.
Key-Points:
cloud_provider
must beazure
.- The
tpm
section must be provided and contain the Microsoft Paravisor definedak_handle
value of81000003
.
Verifying vTPM quotes and viewing PCR claims
When Intel Trust Authority verifies vTPM evidence, it compares the vTPM quote signature using the public portion of an Attestation Key (AK) created by Microsoft Paravisor. This AK public key is embedded in the Intel TDX quote's runtime data
and for this reason, verifying Azure vTPM evidence also requires the collection of TDX evidence (i.e., the verification of Azure vTPM evidence will fail if TDX evidence is not included). Use the following command to collect an Intel Trust Authority attestation token containing vTPM PCR values from the Azure guest.
trustauthority-cli token --tdx --tpm -c config.json
Note
The user executing the Intel Trust Authority Attestation Client must have Read/Write permissions to /dev/tpmrm0
(i.e., the vTPM device). By default, these permissions are granted to the Azure TD users via the tss
group.
When remote attestation is successful the attestation token (JWT) returned by Intel Trust Authority will contain a tpm
section containing PCR digest values. Attestation claims can be viewed using online JWT tools. For example:
{
"tdx": { ...TDX claims... },
"tpm": {
"pcrs": [
{
"alg": "SHA-256",
"digest": "2ade7023eeec...296337abced",
"index": 0
},
...other PCR digests
]
}
}
UEFI event logs claims
While PCR measurements are used to establish a cryptographic "chain of trust", they are not entirely useful in isolation. The following command uses the --evl
option to verify and include UEFI event-log claims that can be used to appraise boot time information such as the state of secure boot or the loaded kernel image digest.
trustauthority-cli token --tdx --tpm --evl -c config.json
{
"tdx": { ...tdx claims... },
"tpm": {
"pcrs": [ see pcrs above ],
"uefi_event_logs": [
{
"details": null,
"digest_matches_event": true,
"digests": [
{
"alg": "SHA-256",
"digest": "16a296d224f2...8630a09cfc7"
}
],
"event": "AAA=",
"index": 0,
"type": 8,
"type_name": "EV_S_CRTM_VERSION"
},
...other UEFI event log entries
]
}
}
Note
The user executing the Intel Trust Authority Attestation Client must have Read permissions to /sys/kernel/security/tpm0/binary_bios_measurements
when collecting UEFI event-log evidence using the --evl
option.
IMA logs
By default, Azure TDX CVMs are configured with IMA enabled. The following command uses the --ima
option to collect IMA logs.
trustauthority-cli token --tdx --tpm --ima -c config.json
{
"tdx": {tdx claims},
"tpm": {
"pcrs": [see pcrs above],
"runtime_measurements": [
{
"alg": "SHA-256",
"cumulative_digest": "532ffcf4b8b...fdbcab2dc24",
"index": 10,
"measurements": [
{
"digest": "3d4b43b7b0...d5ebbe98",
"file_path": "boot_aggregate"
},
{
"digest": "dccd535...33f8265eab",
"file_path": "/usr/lib/modules/6.8.0-1030-azure/kernel/fs/autofs/autofs4.ko"
},
other IMA log entries...
]
}
]
}
}
Note
The user executing the Intel Trust Authority Attestation Client must have Read permissions to /sys/kernel/security/ima/ascii_runtime_measurements
when collecting IMA evidence using the --ima
option.
Conclusion
This tutorial demonstrated how to deploy, configure and run the Intel Trust Authority Client CLI to verify TDX and vTPM evidence from Azure. It also summarized how to collect auxiliary vTPM evidence (UEFI/IMA logs) and view their token claims which can be compared during appraisal (see Attestation Policies). Please see client libraries for more information on integrating Intel Trust Authority directly into your workloads and applications.