Skip to content

TPM 2.0 and TCG hardware security

Guide, TPM 2.0 and TCG

The Trusted Platform Module (TPM) is the hardware security anchor standardised by the Trusted Computing Group (TCG), an industry consortium founded in 2003 that brings together Intel, AMD, Microsoft, IBM, HP and most semiconductor and platform manufacturers. The TPM 2.0 specification, published in 2014 and standardised as ISO/IEC 11889-1 to -4 in 2015, replaces TPM 1.2 (2005) which is now considered legacy. This page presents the TCG ecosystem and the standards, the TPM 2.0 architecture and its concrete functions (Endorsement Key, PCR, sealing, attestation), the form factors (discrete, firmware, virtual), the certifications (TCG Compliance, Common Criteria against BSI-CC-PP-0030, FIPS 140-3), operating system integration (BitLocker, LUKS, IMA), connected products and IoT use, the known compromises (ROCA, TPM-Fail, Sandman) and the pitfalls observed in integrating discrete TPM (Infineon SLB 9670, ST33, Nuvoton NPCT) or firmware TPM (AMD fTPM, Intel PTT) in PC, server, IoT and embedded products.

Trusted Computing Group, the institutional framework

Section titled “Trusted Computing Group, the institutional framework”

The Trusted Computing Group is the standardisation body that maintains the TPM specification and a wider family of trusted computing standards. Understanding its scope conditions the technical and contractual choices.

BodyScopeType of deliverable
TCG (Trusted Computing Group)TPM, attestation, measured boot, storage security, network securityLibrary Specifications, Platform TPM Profiles, certification programmes
ISO/IEC JTC 1/SC 27Adoption of TPM 2.0 as ISO/IEC 11889International standard, freely cited
BSI (Germany)Common Criteria Protection Profile for TPM 2.0BSI-CC-PP-0030 reference Protection Profile
NIST (USA)FIPS 140-3 module validation, cryptographic guidanceCryptographic Module Validation Program (CMVP) certificates
TPM manufacturersSilicon and firmware (Infineon, ST, Nuvoton, AMD, Intel, Microsoft)TPM 2.0 conform products, EK certificates, security bulletins

The TCG operates through working groups: TPM Work Group for the core library, PC Client for personal computer and server profiles, Mobile for the mobile world, Embedded Systems for industrial IoT, Storage for self-encrypting drives, Network Equipment Building System (NEBS) and DICE (Device Identifier Composition Engine) for ultra-constrained devices. The deliverables are public, downloadable from the TCG website. Compliance certification (TCG Compliance Programme) is a paid service, with publication on a public list.

TPM 1.2 to TPM 2.0, the algorithm-agile shift

Section titled “TPM 1.2 to TPM 2.0, the algorithm-agile shift”

TPM 1.2 (2005) was tied to a fixed algorithmic profile: RSA-2048 for asymmetric, SHA-1 for hashing, no native ECC support, command set anchored on the structure of these algorithms. SHA-1 collisions (Stevens et al., 2017, then SHAttered) and the gradual deprecation of RSA-2048 below the 2030 horizon made the architecture untenable.

TPM 2.0, drafted from 2011 and published as Library Specification 1.07 in 2014, then standardised as ISO/IEC 11889 in 2015, reaching version 1.62 in 2020 with subsequent errata, becomes algorithm-agile. The specification separates the algorithmic profile from the architecture: a TPM 2.0 supports a manufacturer-chosen subset (SHA-256 mandatory, SHA-384 optional, RSA-2048 baseline, ECC NIST P-256 widespread, ECC BN-256 for Direct Anonymous Attestation). Hierarchies are reorganised (platform, storage, endorsement, null) and authorisation is generalised through policies (TPM2_PolicyOR, TPM2_PolicyPCR, TPM2_PolicySigned and so on).

The hardware is not compatible across the two: a TPM 1.2 motherboard cannot be flashed to TPM 2.0. New designs target TPM 2.0; TPM 1.2 is end-of-life and rejected by Windows 11, recent BitLocker baselines and most current attestation services.

A TPM 2.0 exposes a small set of structuring objects.

The EK is an asymmetric key pair (RSA-2048 or ECC NIST P-256) injected at the silicon factory by the manufacturer, private part non-extractable. The associated EK certificate is signed by a manufacturer intermediate certification authority (Infineon, ST, Nuvoton, AMD, Intel), itself rooted on a public certification authority listed by the TCG. The EK proves that the TPM is a genuine certified TPM from a known manufacturer, without revealing the platform identity. It is the trust anchor for downstream attestation.

The SRK is created when the platform owner takes control of the TPM (TPM2_CreatePrimary in the storage hierarchy). It is the root of the application key hierarchy: keys generated and sealed by the platform descend from it. The SRK never leaves the TPM and disappears when ownership is reset.

The AIK, sometimes called Attestation Key (AK), is a signing key generated by the TPM, derived from the EK but pseudonymous: it does not directly reveal the EK identity. It is certified either by a Privacy CA (external service that validates the EK chain and issues an AIK certificate), or by Direct Anonymous Attestation (DAA), a zero-knowledge protocol that proves the AIK comes from a genuine TPM without identifying the TPM. The AIK signs PCR quotes during remote attestation.

PCRs are extend-only registers, 24 of them in the PC Client standard profile (PCR 0 to 23). Each measurement obeys the rule PCR[n] = SHA-256(PCR[n] concatenated with measurement). The architecture forbids overwriting a PCR: only an extension is allowed. Boot firmware extends PCR 0 to 7 with its measurements (UEFI, option ROMs, boot loader, secure boot state, boot policy); the operating system extends PCR 8 onwards.

PCRTypical content (TCG PC Client profile)
PCR 0UEFI firmware (BIOS) measurement, S-CRTM
PCR 1Platform configuration (BIOS options, oprom config)
PCR 2, 3Option ROMs, drivers
PCR 4Boot loader (MBR or UEFI loader)
PCR 5GPT partition table
PCR 7Secure Boot state and signing keys
PCR 8 to 15Operating system, application measurements
PCR 17 to 22Dynamic Root of Trust (DRTM, Intel TXT, AMD SKINIT)
PCR 23Application use, regularly reset by the OS

The PCR layout differs between Windows and Linux: data sealed on one OS rarely unseals on the other.

Sealing binds data to a chosen PCR state. The TPM will only unseal if PCRs match the expected value. Quoting produces a signed report of PCR values under an attestation key, used in remote attestation. Together they form the core of measured boot and trusted boot.

Form factorExamplesAdvantagesLimitations
Discrete TPM (dTPM)Infineon SLB 9670, ST33TPHF20, Nuvoton NPCT75xPhysical isolation, strong Common Criteria evaluation (EAL 4+), independent attack surfaceBill of materials, PCB area, SPI/I2C/LPC interfacing
Firmware TPM (fTPM)Intel PTT in the Management Engine, AMD fTPM in the Platform Security ProcessorNo additional chip, no bill of materials costShares attack surface with platform firmware, Common Criteria evaluation more limited
Virtual TPM (vTPM)QEMU/KVM with swtpm, VMware vTPM, Hyper-V vTPMSuitable for virtual machines, software-isolated per VMTrust anchor moves up to the hypervisor
Software TPM (swtpm)swtpm, IBM TPM 2.0 reference simulatorDevelopment, CI pipelines, integration testingNo real security, dev-only use

Typical choice: dTPM for PC, server, defence, payment, industrial and automotive; fTPM for consumer laptops; vTPM for cloud workloads; swtpm for CI pipelines.

A discrete TPM exposes one of several physical interfaces.

InterfaceTypical speedUse
LPC (Low Pin Count)33 MHz, legacyOlder PC, increasingly avoided due to bus latency
SPIup to 33 MHz typicallyReference modern interface, PC, server, embedded
I2C400 kHz to 1 MHzEmbedded systems, IoT, slower interactions
FIFO (memory-mapped)platform-dependentVariant on certain platforms

On Linux, the kernel exposes two character devices: /dev/tpm0 for raw access (used by the integrity subsystem) and /dev/tpmrm0 with the kernel-side resource manager (used by user-space applications). The reference stack is tpm2-tss (Trusted Software Stack, ESAPI, SAPI, TCTI layers) plus tpm2-tools (command line). The tpm2-pkcs11 library exposes the TPM as a PKCS#11 token for OpenSSL or browser integration.

On Windows, access goes through the TPM Base Services (TBS) API, encapsulated by the Windows Cryptography API: Next Generation (CNG) and exposed to applications through specific providers. BitLocker, Windows Hello and Credential Guard use the TPM directly through these APIs.

Certifications, TCG Compliance, Common Criteria, FIPS 140-3

Section titled “Certifications, TCG Compliance, Common Criteria, FIPS 140-3”

A TPM 2.0 product is subject to several certifications.

The TCG runs a compliance programme based on the TPM 2.0 Test Suite. The manufacturer submits its product, runs the test suite (functional coverage of the TPM library), and receives a TCG Certified TPM declaration listed on the TCG public list. This certification is conformity (the TPM does what the specification says), not security as such.

The security reference is the Common Criteria evaluation against the protection profile BSI-CC-PP-0030 Trusted Platform Module Library Family 2.0, published by the German BSI. This protection profile defines the security functional requirements (SFR) expected of a TPM 2.0 and the assurance requirements. Typical assurance level: EAL 4 augmented with AVA_VAN.4 or AVA_VAN.5 (Moderate or High vulnerability analysis), ALC_DVS.2 and ALC_FLR.1.

Infineon (SLB 9670, SLB 9672), ST (ST33TPHF20, ST33KTPM2X) and Nuvoton (NPCT75x) all hold current Common Criteria certificates against this profile, listed on the BSI and the international Common Criteria portal. Firmware TPM evaluations exist but are rarer: AMD fTPM and Intel PTT historically have not pursued a Common Criteria certificate equivalent to a discrete chip. For the wider framework, see Common Criteria, ISO/IEC 15408.

For the United States federal market, the cryptographic module embedded in the TPM is often validated under FIPS 140-3 (or its predecessor FIPS 140-2, in sunset since September 2026). The validation is run under the NIST Cryptographic Module Validation Program (CMVP), at level 1 or 2 typically for a TPM. The result is a published validation certificate on the CMVP list. For the full framework, see FIPS 140-3.

BitLocker uses the TPM to seal the Volume Master Key (VMK) on PCR 0, 2, 4, 7 and 11 (default profile), which couples disk decryption to the secure boot state. A change of BIOS, of secure boot keys, of boot loader breaks the seal and triggers BitLocker recovery (recovery key prompt). On Windows 11, TPM 2.0 is mandatory, which made fTPM activation a critical point on motherboards delivered with fTPM disabled by default.

The reference stack uses dm-crypt for full disk encryption, LUKS2 for the key envelope, and the unlock mechanism couples to the TPM through one of two paths: clevis (a pluggable framework that supports TPM 2.0, Tang and Shamir secret sharing) or systemd-cryptenroll (native, since systemd 248). In both cases, the LUKS passphrase is sealed against a PCR profile chosen at enrolment (commonly PCR 7 for secure boot state, PCR 0 for UEFI firmware, PCR 1 for platform config). Unsealing at boot is silent if PCRs match, falls back on passphrase entry otherwise.

The Linux kernel implements IMA (Integrity Measurement Architecture) to measure executables, configuration files and chosen objects at runtime. IMA extends a dedicated PCR (PCR 10 by convention) and produces a measurement log readable in /sys/kernel/security/ima/ascii_runtime_measurements. Pairing IMA with the TPM allows remote attestation of the runtime state, beyond the initial boot.

The library tpm2-pkcs11 exposes the TPM as a PKCS#11 token to OpenSSL or any PKCS#11-aware application. This permits HSM-like signing and decrypting operations with the TPM acting as a low-cost cryptographic store, suitable for X.509 client certificate authentication, code signing on embedded build environments or sealing of CA private keys.

Microsoft Azure Device Provisioning Service (DPS)

Section titled “Microsoft Azure Device Provisioning Service (DPS)”

Azure DPS supports TPM-based attestation. The device declares its endorsement key public (EKpub) to DPS; DPS validates that the EKpub is signed by a known TPM manufacturer intermediate certification authority, then issues an attestation challenge that the TPM signs under a derived attestation key. On success, DPS provisions the device to its IoT Hub. The provisioning chain falls apart if the manufacturer intermediate certificate is missing from the device-side dossier: a frequent error in first deployments.

AWS IoT does not natively support TPM EK attestation; the integration goes through a long-term X.509 client certificate, whose private key is generated and stored in the TPM. Mutual TLS authentication to the AWS broker then uses the TPM as a private-key store, with no extraction of the private key.

Matter (CSA) and the Device Attestation Certificate

Section titled “Matter (CSA) and the Device Attestation Certificate”

The Matter standard from the Connectivity Standards Alliance requires a Device Attestation Certificate (DAC) anchored in a hardware secure storage element, often a secure element rather than a discrete TPM (TPM is rare in consumer Matter devices because of bill of materials). The trust chain logic, however, is the same: vendor intermediate certificate, manufacturer root certificate, attestation in fabric commissioning. For details, see Matter certification.

AspectTPM 2.0Secure Element (SE)HSM
Form factorDiscrete chip or firmware, integrated to a platformDiscrete chip, smaller, generic crypto offloadNetwork appliance or PCI card, datacenter
Typical useBoot trust, sealing, attestation, key sealed to platform stateGeneric crypto offload, IoT identity, payment, transport ticketsHigh-throughput crypto operations (TLS, code signing, PKI)
StandardisationTCG, ISO/IEC 11889GlobalPlatform, JavaCard, EMVCo for paymentFIPS 140-3, Common Criteria for the bigger ones
Typical examplesInfineon SLB 9670, ST33, Nuvoton NPCT, fTPMNXP A71CH, SE050, Microchip ATECC608B, Infineon OPTIGA TrustThales Luna, Utimaco, AWS CloudHSM
Bill of materials orderLow for fTPM, moderate for dTPMLowHigh

Embedded products often choose an SE rather than a TPM (lower bill of materials, simpler interface), but the rise of Matter, of regulated industrial IoT and of the Cyber Resilience Act pushes attestation onto TPM-like devices, with chip evaluated under Common Criteria.

YearCompromiseAffected scopeMitigation
2017ROCA (CVE-2017-15361)Infineon RSALib library, RSA key generation in TPM 1.2 and 2.0Firmware update, regeneration of affected RSA keys
2019TPM-Fail (CVE-2019-11090, CVE-2019-16863)Timing side channel on ECDSA in Intel fTPM and ST33TPHF20Firmware update, mitigations in the cryptographic stack
2024SandmanCold boot variant on dTPM exposed on SPI busBus encryption (TPM 2.0 supports session encryption since spec 1.38), physical access control

The general operational lesson is the same: any TPM in service must be inventoried with its firmware version, and the firmware version checked against published security bulletins. PCR-based measured boot remains the user-visible mitigation: a compromised TPM that produced a maliciously sealed value betrays itself by an attestation that no longer matches the expected reference state.

The Cyber Resilience Act, published in November 2024 (Regulation (EU) 2024/2847) and becoming applicable December 2027, sets essential cybersecurity requirements for products with digital elements. The TPM is not named explicitly but several CRA requirements have a TPM-natural reading: secure boot, data integrity and confidentiality, attack surface limitation, vulnerability handling process, security update path.

For products classed important (Annex III) or critical (Annex IV), where conformity assessment is reinforced (third-party where applicable), designing without a secure hardware anchor becomes hard to justify. TPM 2.0, or a secure element with equivalent properties, is one of the practical paths to meet these requirements. For the wider framework, see Cyber Resilience Act.

Step-by-step procedure for an embedded product

Section titled “Step-by-step procedure for an embedded product”

The typical sequence for an engineering team integrating a TPM 2.0 in a new electronic product.

  1. Choose the form factor (dTPM, fTPM, none plus SE) by mapping the bill of materials constraints, the certification requirement (Common Criteria for regulated sectors), the attack model and the target operating systems.
  2. Select the chip (Infineon SLB 9672, ST33KTPM2X, Nuvoton NPCT75x for dTPM; AMD or Intel platform support for fTPM), check the current Common Criteria certificate, the FIPS 140-3 validation if relevant, and the active security bulletins.
  3. Define the bus (SPI 25 to 33 MHz recommended for modern dTPM, I2C for ultra-constrained embedded, LPC only on legacy compatibility).
  4. Lay out the PCB with appropriate ESD protection, supply decoupling, BGA placement with respect of the dry pack, and dedicated ground for the chip.
  5. Integrate the software stack (tpm2-tss and tpm2-tools on Linux, TBS API on Windows, vendor SDK for RTOS).
  6. Provision the EK certificate chain, load the manufacturer intermediate certificate on the device, validate the chain on first boot.
  7. Define the PCR profile for sealing (commonly PCR 0, 2, 4, 7 on Windows; PCR 7 plus optional on Linux), test the unsealing behaviour across firmware update scenarios.
  8. Implement attestation to the back end (Azure DPS, AWS IoT through X.509, internal IoT platform), validating the EK chain on the server side.
  9. Plan firmware updates to the TPM (vendor supplies firmware bundles), with version inventory and security bulletin tracking.
  10. Document the trust chain in the security dossier (root CA, intermediate, EK, AIK, sealed data) for the CRA, Common Criteria or sector evaluation.
PitfallConsequence
Discrete TPM in BGA poorly soldered or under-ESD-protectedUnstable TPM in the field, sporadic field returns hard to diagnose
LPC bus used for SRTM on a modern platformBoot extended by hundreds of milliseconds, perceptible user impact
fTPM disabled by default in BIOSBitLocker or LUKS sealing silently broken on first deployment
EK certificate chain not loaded on the deviceAzure DPS provisioning fails, message Unauthorized EK
Re-use of Windows-sealed data on a Linux systemUnsealing systematically fails, PCR layout differs
TPM with ROCA-vulnerable firmware version still in serviceRSA keys factorisable, security audit non-compliant
FIPS 140-2 declared instead of FIPS 140-3 after September 2026Validation expired, federal procurement blocked
Confusion between TCG Compliance and Common CriteriaBelief that conformity covers security, gap in the security dossier
Sealing on PCR 0 with frequent BIOS updatesRoutine recovery key prompts, support burden
No firmware version inventory across the fleetImpossible to react to a new security bulletin in a deadline compatible with the CRA

Sources & references

  1. TPM 2.0 Library Specification, version 1.62 (2020) , Trusted Computing Group trustedcomputinggroup.org/resource/tpm-library-specification/
  2. ISO/IEC 11889-1 to -4:2015, Information technology, Trusted Platform Module Library , ISO/IEC www.iso.org/standard/66510.html
  3. BSI-CC-PP-0030, Trusted Platform Module Library Family 2.0, Protection Profile , Bundesamt fuer Sicherheit in der Informationstechnik (BSI) www.bsi.bund.de/EN/Themen/Unternehmen-und-Organisationen/Standards-und-Zertifizierung/Zertifizierung-und-Anerkennung/Zertifizierung-von-Produkten/Zertifizierung-nach-CC/Schutzprofile-Protection-Profiles/schutzprofile-protection-profiles_node.html
  4. FIPS 140-3, Security Requirements for Cryptographic Modules (2019) , NIST csrc.nist.gov/publications/detail/fips/140/3/final
  5. TCG PC Client Platform TPM Profile Specification , Trusted Computing Group trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/
  6. Linux TPM 2.0 software stack (tpm2-tss, tpm2-tools) , tpm2-software community github.com/tpm2-software