Recent from talks
Contribute something
Nothing was collected or created yet.
Trusted Platform Module
View on Wikipedia| Trusted Platform Module | |
|---|---|
An example Trusted Platform Module, the Infineon SLB9655TT12 | |
| Abbreviation | TPM |
| Status | Published |
| Year started | 2009 |
| Latest version | ISO/IEC 11889:2015 2015 |
| Organization | Trusted Computing Group, ISO/IEC JTC 1 |
| Domain | Secure cryptoprocessor |
| Website | |
A Trusted Platform Module (TPM) is a secure cryptoprocessor that implements the ISO/IEC 11889 standard. Common uses are verifying that the boot process starts from a trusted combination of hardware and software and storing disk encryption keys.
A TPM 2.0 implementation is part of the Windows 11 system requirements.[1]
History
[edit]The first TPM version that was deployed was 1.1b in 2003.[2]
Trusted Platform Module (TPM) was conceived by a computer industry consortium called Trusted Computing Group (TCG). It evolved into TPM Main Specification Version 1.2 which was standardized by International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC) in 2009 as ISO/IEC 11889:2009.[3] TPM Main Specification Version 1.2 was finalized on 3 March 2011 completing its revision.[4][5]
On April 9, 2014, the Trusted Computing Group announced a major upgrade to their specification entitled TPM Library Specification 2.0.[6] The group continues work on the standard incorporating errata, algorithmic additions and new commands, with its most recent edition published as 2.0 in November 2019.[7] This version became ISO/IEC 11889:2015.
When a new revision is released it is divided into multiple parts by the Trusted Computing Group. Each part consists of a document that makes up the whole of the new TPM specification.
- Part 1 Architecture (renamed from Design Principles)
- Part 2 Structures of the TPM
- Part 3 Commands
- Part 4 Supporting Routines (added in TPM 2.0)
Version differences
[edit]While TPM 2.0 addresses many of the same use cases and has similar features, the details are different. TPM 2.0 is not backward compatible with TPM 1.2.[8][9][10]
| Specification | TPM 1.2 | TPM 2.0 |
|---|---|---|
| Architecture | A complete specification is intended to consist of a platform-specific protection profile which references a common three part TPM 1.2 library.[5] In practice, only a PC Client protection profile was created for TPM 1.2. Protection profiles for PDA and cellular were intended to be defined,[5] but were never published. | A complete specification consists of a platform-specific specification which references a common four-part TPM 2.0 library.[11][7] Platform-specific specifications define what parts of the library are mandatory, optional, or banned for that platform; and detail other requirements for that platform.[11] Platform-specific specifications include PC Client,[12] mobile,[13] and Automotive-Thin.[14] |
| Algorithms | SHA-1 and RSA are required.[15] AES is optional.[15] Triple DES was once an optional algorithm in earlier versions of TPM 1.2,[16] but has been removed from TPM 1.2 version 103.[17] The MGF1 hash-based mask generation function that is defined in PKCS#1 is required.[15] | The PC Client Platform TPM Profile (PTP) Specification requires SHA-1 and SHA-256 for hashes; RSA, ECC using the NIST P-256 curve for public-key cryptography and asymmetric digital signature generation and verification; HMAC for symmetric digital signature generation and verification; 128-bit AES for symmetric-key algorithm; and the MGF1 hash-based mask generation function that is defined in PKCS#1.[18] Many other algorithms are also defined but are optional.[19] Note that Triple DES was added into the TPM 2.0 library, but with restrictions to reject weak keys.[20] Also, elliptic cryptography Direct Anonymous Attestation (ECDAA) using Barreto-Naehrig ECC curves which was mandatory in earlier versions has been made optional in the PC Client profile version 1.59.[18] |
| Crypto Primitives | A random number generator, a public-key cryptographic algorithm, a cryptographic hash function, a mask generation function, digital signature generation and verification, and Direct Anonymous Attestation are required.[15] Symmetric-key algorithms and exclusive or are optional.[15] Key generation is also required.[21] | A random number generator, public-key cryptographic algorithms, cryptographic hash functions, symmetric-key algorithms, digital signature generation and verification, mask generation functions, and exclusive or are required by the TCG PC Client Platform TPM Profile (PTP) Specification.[18] ECC-based Direct Anonymous Attestation using the Barreto–Naehrig 256-bit curve is optional for the TCG PC Client Platform TPM Profile (PTP) Specification.[18] The TPM 2.0 common library specification also requires key generation and key derivation functions.[22] |
| Hierarchy | One (storage) | Three (platform, storage and endorsement) |
| Root keys | One (SRK RSA-2048) | Multiple keys and algorithms per hierarchy |
| Authorization | HMAC, PCR, locality, physical presence | Password, HMAC, and policy (which covers HMAC, PCR, locality, and physical presence). |
| NVRAM | Unstructured data | Unstructured data, counter, bitmap, extend, PIN pass and fail |
The TPM 2.0 policy authorization includes the 1.2 HMAC, locality, physical presence, and PCR. It adds authorization based on an asymmetric digital signature, indirection to another authorization secret, counters and time limits, NVRAM values, a particular command or command parameters, and physical presence. It permits the ANDing and ORing of these authorization primitives to construct complex authorization policies.[23]
Overview
[edit]
The Trusted Platform Module (TPM) provides:
- A hardware random number generator[24][25]
- Facilities for the secure generation of cryptographic keys for limited uses.
- Remote attestation: Creates a nearly unforgeable hash key summary of the hardware and software configuration. One could use the hash to verify that the hardware and software have not been changed. The software in charge of hashing the setup determines the extent of the summary.
- Binding: Data is encrypted using the TPM bind key, a unique RSA key descended from a storage key. Computers that incorporate a TPM can create cryptographic keys and encrypt them so that they can only be decrypted by the TPM. This process, often called wrapping or binding a key, can help protect the key from disclosure. Each TPM has a master wrapping key, called the storage root key, which is stored within the TPM itself. User-level RSA key containers are stored with the Windows user profile for a particular user and can be used to encrypt and decrypt information for applications that run under that specific user identity.[26][27]
- Sealed storage: Specifies the TPM state[28] for the data to be decrypted (unsealed).[29]
- Other Trusted Computing functions for the data to be decrypted (unsealed).[30]
Computer programs can use a TPM for the authentication of hardware devices, since each TPM chip has a unique and secret Endorsement Key (EK) burned in as it is produced. Security embedded in hardware provides more protection than a software-only solution.[31] Its use is restricted in some countries.[32]
Uses
[edit]Platform integrity
[edit]
tpm2-software showing the reading of Platform Configuration Registers (PCRs), the getrandom result taken from TPM device, and TPM version (2.0)The primary scope of TPM is to ensure the integrity of a platform during boot time. In this context, "integrity" means "behaves as intended", and a "platform" is any computer device regardless of its operating system. This is to ensure that the boot process starts from a trusted combination of hardware and software, and continues until the operating system has fully booted and applications are running.
When TPM is used, the firmware and the operating system are responsible for ensuring integrity.
For example, the Unified Extensible Firmware Interface (UEFI) can use TPM to form a root of trust: The TPM contains several Platform Configuration Registers (PCRs) that allow secure storage and reporting of security-relevant metrics. These metrics can be used to detect changes to previous configurations and decide how to proceed. Examples of such use can be found in Linux Unified Key Setup (LUKS),[33] BitLocker and PrivateCore vCage memory encryption. (See below.)
Another example of platform integrity via TPM is in the use of Microsoft Office 365 licensing and Outlook Exchange.[34]
Another example of TPM use for platform integrity is the Trusted Execution Technology (TXT), which creates a chain of trust. It could remotely attest that a computer is using the specified hardware and software.[35]
Disk encryption
[edit]Full disk encryption utilities, such as dm-crypt, can use this technology to protect the keys used to encrypt the computer's storage devices and provide integrity authentication for a trusted boot pathway that includes firmware and the boot sector.[36]
Implementations
[edit]
Laptops and notebooks
[edit]In 2006 new laptops began being sold with a built-in TPM chip. In the future, this concept could be co-located on an existing motherboard chip in computers, or any other device where the TPM facilities could be employed, such as a cellphone. On a PC, either the Low Pin Count (LPC) bus or the Serial Peripheral Interface (SPI) bus is used to connect to the TPM chip.
The Trusted Computing Group (TCG) has certified TPM chips manufactured by Infineon Technologies, Nuvoton, and STMicroelectronics,[37] having assigned TPM vendor IDs to Advanced Micro Devices, Atmel, Broadcom, IBM, Infineon, Intel, Lenovo, National Semiconductor, Nationz Technologies, Nuvoton, Qualcomm, Rockchip, Standard Microsystems Corporation, STMicroelectronics, Samsung, Sinosun, Texas Instruments, and Winbond.[38]
TPM 2.0
[edit]There are five different types of TPM 2.0 implementations (listed in order from most to least secure):[39][40]
- Discrete TPMs (dTPMs) are dedicated chips that implement TPM functionality in their own tamper resistant semiconductor package. They are the most secure, certified to FIPS-140 with level 3 physical security[41] resistance to attack versus routines implemented in software, and their packages are required to implement some tamper resistance. For example, the TPM for the brake controller in a car is protected from hacking by sophisticated methods.[42]
- Integrated TPMs (iTPMs) are part of another chip. While they use hardware that resists software bugs, they are not required to implement tamper resistance. Intel has integrated TPMs in some of its chipsets.
- Firmware TPMs (fTPMs) are firmware-based (e.g. UEFI) solutions that run in a CPU's trusted execution environment. Intel, AMD and Qualcomm have implemented firmware TPMs.
- Virtual TPMs (vTPMs) are provided by and rely on hypervisors in isolated execution environments that are hidden from the software running inside virtual machines to secure their code from the software in the virtual machines. They can provide a security level comparable to a firmware TPM. Google Cloud Platform has implemented vTPM.[43]
- Software TPMs are software emulators of TPMs that run with no more protection than a regular program gets within an operating system. They depend entirely on the environment that they run in, so they provide no more security than what can be provided by the normal execution environment. They are useful for development purposes.
Open source
[edit]| TPM 2.0 Reference Implementation | |
|---|---|
| Developer | Microsoft |
| Repository | github |
| Written in | C, C++ |
| Type | TPM implementation |
| License | BSD License |
| Website | trustedcomputinggroup |
The official TCG reference implementation of the TPM 2.0 Specification has been developed by Microsoft. It is licensed under BSD License and the source code is available on GitHub.[44]
In 2018 Intel open-sourced its Trusted Platform Module 2.0 (TPM2) software stack with support for Linux and Microsoft Windows.[45] The source code is hosted on GitHub and licensed under BSD License.[46][47]
Infineon funded the development of an open source TPM middleware that complies with the Software Stack (TSS) Enhanced System API (ESAPI) specification of the TCG.[48] It was developed by Fraunhofer Institute for Secure Information Technology (SIT).[49]
IBM's Software TPM 2.0 is an implementation of the TCG TPM 2.0 specification. It is based on the TPM specification Parts 3 and 4 and source code donated by Microsoft. It contains additional files to complete the implementation. The source code is hosted on SourceForge[50] and GitHub[51] and licensed under BSD License.
In 2022, AMD announced that under certain circumstances their fTPM implementation causes performance problems. A fix is available in form of a BIOS-Update.[52][53]
Criticism
[edit]The Trusted Computing Group (TCG) has faced resistance to the deployment of this technology in some areas, where some authors see possible uses not specifically related to Trusted Computing, which may raise privacy concerns. The concerns include the abuse of remote validation of software to decide what software is allowed to run, and possible ways to follow actions taken by the user and record them in a database in a manner that is completely undetectable to the user.[54]
The TrueCrypt disk encryption utility, as well as its derivative VeraCrypt, do not support TPM. The original TrueCrypt developers were of the opinion that the exclusive purpose of the TPM is "to protect against attacks that require the attacker to have administrator privileges, or physical access to the computer". The attacker who has physical or administrative access to a computer can circumvent TPM, e.g., by installing a hardware keystroke logger, by resetting TPM, or by capturing memory contents and retrieving TPM-issued keys. The condemning text goes so far as to claim that TPM is entirely redundant.[55] The VeraCrypt publisher has reproduced the original allegation with no changes other than replacing "TrueCrypt" with "VeraCrypt".[56] The author is right that, after achieving either unrestricted physical access or administrative privileges, it is only a matter of time before other security measures in place are bypassed.[57][58] However, stopping an attacker in possession of administrative privileges has never been one of the goals of TPM (see § Uses for details), and TPM can stop some physical tampering.[33][35][59][60][61]
In 2015 Richard Stallman suggested replacing the term "trusted computing" with the term "treacherous computing" due to the danger that the computer can be made to systematically disobey its owner if the cryptographical keys are kept secret from them. He also considers that TPMs available for PCs in 2015 are not currently[timeframe?] dangerous and that there is no reason not to include one in a computer or support it in software due to failed attempts from the industry to use that technology for DRM, but that the TPM2 released in 2022 is precisely the "treacherous computing" threat he had warned of.[62]
In August 2023, Linus Torvalds, who was frustrated with AMD fTPM's stuttering bugs, opined, "Let's just disable the stupid fTPM hwrnd thing." He said the CPU-based random number generation, rdrand, was equally suitable, despite having its share of bugs. Writing for Neowin, Sayan Sen quoted Torvalds' comments and called him "a man with a strong opinion".[63]
Security issues
[edit]In 2010 Christopher Tarnovsky presented an attack against TPMs at Black Hat Briefings, where he claimed to be able to extract secrets from a single TPM. He was able to do this after 6 months of work by inserting a probe and spying on an internal bus for the Infineon SLE 66 CL PC.[64][65]
In case of physical access, computers with TPM 1.2 are vulnerable to cold boot attacks as long as the system is on or can be booted without a passphrase from shutdown, sleep or hibernation, which is the default setup for Windows computers with BitLocker full disk encryption.[66] A fix was proposed, which has been adopted in the specifications for TPM 2.0.
In 2009, the concept of shared authorisation data in TPM 1.2 was found to be flawed. An adversary given access to the data could spoof responses from the TPM.[67] A fix was proposed, which has been adopted in the specifications for TPM 2.0.
In 2015 as part of the Snowden revelations, it was revealed that in 2010 a US CIA team claimed at an internal conference to have carried out a differential power analysis attack against TPMs that was able to extract secrets.[68][69]
Main Trusted Boot (tboot) distributions before November 2017 are affected by a dynamic root of trust for measurement (DRTM) attack CVE-2017-16837, which affects computers running on Intel's Trusted eXecution Technology (TXT) for the boot-up routine.[70]
In October 2017, it was reported that a code library developed by Infineon, which had been in widespread use in its TPMs, contained a vulnerability, known as ROCA, which generated weak RSA key pairs that allowed private keys to be inferred from public keys. As a result, all systems depending upon the privacy of such weak keys are vulnerable to compromise, such as identity theft or spoofing.[71] Cryptosystems that store encryption keys directly in the TPM without blinding could be at particular risk to these types of attacks, as passwords and other factors would be meaningless if the attacks can extract encryption secrets.[72] Infineon has released firmware updates for its TPMs to manufacturers who have used them.[73]
In 2018, a design flaw in the TPM 2.0 specification for the static root of trust for measurement (SRTM) was reported (CVE-2018-6622). It allows an adversary to reset and forge platform configuration registers which are designed to securely hold measurements of software that are used for bootstrapping a computer.[74] Fixing it requires hardware-specific firmware patches.[74] An attacker abuses power interrupts and TPM state restores to trick TPM into thinking that it is running on non-tampered components.[70]
In 2021, the Dolos Group showed an attack on a discrete TPM, where the TPM chip itself had some tamper resistance, but the other endpoints of its communication bus did not. They read a full-disk-encryption key as it was transmitted across the motherboard, and used it to decrypt the laptop's SSD.[75]
Availability
[edit]As of 2025[update], a TPM is provided by nearly all PC and notebook manufacturers in their products.
Vendors include:
- Infineon provides both TPM chips and TPM software, which are delivered as OEM versions with new computers as well as separately by Infineon for products with TPM technology which comply with TCG standards. For example, Infineon licensed TPM management software to Broadcom Corp. in 2004.[76]
- Microchip (formerly Atmel) manufactured TPM devices that it claims to be compliant to the Trusted Platform Module specification version 1.2 revision 116 and offered with several interfaces (LPC, SPI, and I2C), modes (FIPS 140-2 certified and standard mode), temperature grades (commercial and industrial), and packages (TSSOP and QFN).[77][78][79] Its TPMs support PCs and embedded devices.[77] It also provides TPM development kits to support integration of its TPM devices into various embedded designs.[80]
- Nuvoton Technology Corporation provides TPM devices for PC applications. Nuvoton also provides TPM devices for embedded systems and Internet of Things (IoT) applications via I2C and SPI host interfaces. Nuvoton's TPM complies with Common Criteria (CC) with assurance level EAL 4 augmented with ALC_FLR.1, AVA_VAN.4 and ALC_DVS.2, FIPS 140-2 level 2 with Physical Security and EMI/EMC level 3 and Trusted Computing Group Compliance requirements, all supported within a single device. TPMs produced by Winbond are now part of Nuvoton.[81]
- STMicroelectronics has provided TPMs for PC platforms and embedded systems since 2005. The product offering[82] includes discrete devices with several interfaces supporting Serial Peripheral Interface (SPI) and I2C and different qualification grades (consumer, industrial and automotive). The TPM products are Common Criteria (CC) certified EAL4+ augmented with ALC_FLR.1 and AVA_VAN.5, FIPS 140-2 level 2 certified with physical security level 3 and also Trusted Computing Group (TCG) certified.
There are also hybrid types; for example, TPM can be integrated into an Ethernet controller, thus eliminating the need for a separate motherboard component.[83][84]
Field upgrade
[edit]Field upgrade is the TCG term for updating the TPM firmware. The update can be between TPM 1.2 and TPM 2.0, or between firmware versions. Some vendors limit the number of transitions between 1.2 and 2.0, and some restrict rollback to previous versions.[citation needed] Platform OEMs such as HP[85] supply an upgrade tool.
Since July 28, 2016, all new Microsoft device models, lines, or series (or updating the hardware configuration of an existing model, line, or series with a major update, such as CPU, graphic cards) implement, and enable by default TPM 2.0.
While TPM 1.2 parts are discrete silicon components, which are typically soldered on the motherboard, TPM 2.0 is available as a discrete (dTPM) silicon component in a single semiconductor package, an integrated component incorporated in one or more semiconductor packages - alongside other logic units in the same package(s), and as a firmware (fTPM) based component running in a trusted execution environment (TEE) on a general purpose System-on-a-chip (SoC).[86]
Virtual TPM
[edit]- Google Compute Engine was the first major cloud provider offering virtualized TPMs (vTPMs) as part of Google Cloud's Shielded VMs product.[87] Amazon Web Services followed in 2022, naming its vTPM offering "Nitro TPM".[88]
- The libtpms library provides software emulation of a Trusted Platform Module (TPM 1.2 and TPM 2.0). It targets the integration of TPM functionality into hypervisors, primarily into Qemu.[89]
Operating systems
[edit]- Windows 11 requires TPM 2.0 support as a minimum system requirement.[90][91] On many systems TPM is disabled by default which requires changing settings in the computer's UEFI to enable it.[92]
- Windows 8 and later have native support for TPM 2.0.
- Windows 7 can install an official patch to add TPM 2.0 support.[93]
- Windows Vista through Windows 10 have native support for TPM 1.2.
- The Trusted Platform Module 2.0 (TPM 2.0) has been supported by the Linux kernel since version 4.0 (2015)[94][95][96][97]
Platforms
[edit]- Google includes TPMs in Chromebooks as part of their security model.[98]
- Oracle ships TPMs in their X- and T-Series Systems such as T3 or T4 series of servers.[99] Support is included in Solaris 11.[100]
- In 2006, with the introduction of first Macintosh models with Intel processors, Apple started to ship Macs with TPM. Apple never provided an official driver, but there was a port under GPL available.[101] Apple has not shipped a computer with TPM since 2006.[102] Starting in 2016, Apple products began adopting Apple's own trusted hardware component called "Secure Enclave", originally as a separate chip and later as an integrated part of Apple silicon CPUs. Apple Secure Enclave is not TPM-compatible.[103]
- In 2011, Taiwanese manufacturer MSI launched its Windpad 110W tablet featuring an AMD CPU and Infineon Security Platform TPM, which ships with controlling software version 3.7. The chip is disabled by default but can be enabled with the included, pre-installed software.[104]
Virtualization
[edit]- VMware ESXi hypervisor has supported TPM since 4.x, and from 5.0 it is enabled by default.[105][106]
- Xen hypervisor has support of virtualized TPMs. Each guest gets its own unique, emulated, software TPM.[107]
- KVM, combined with QEMU, has support for virtualized TPMs. As of 2012[update], it supports passing through the physical TPM chip to a single dedicated guest. QEMU 2.11 released in December 2017 also provides emulated TPMs to guests.[108]
- VirtualBox has support for virtual TPM 1.2 and 2.0 devices starting with version 7.0 released in October 2022.[109]
Software
[edit]- Microsoft operating systems Windows Vista and later use the chip in conjunction with the included disk encryption component named BitLocker. Microsoft had announced that from January 1, 2015, all computers will have to be equipped with a TPM 2.0 module in order to pass Windows 8.1 hardware certification.[110] However, in a December 2014 review of the Windows Certification Program this was instead made an optional requirement. However, TPM 2.0 is required for connected standby systems.[111] Virtual machines running on Hyper-V can have their own virtual TPM module starting with Windows 10 1511 and Windows Server 2016.[112] Microsoft Windows includes two TPM related commands: tpmtool, a utility that can be used to retrieve information about the TPM, and tpmvscmgr, a command-line tool that allows creating and deleting TPM virtual smart cards on a computer.[113][114]
Endorsement keys
[edit]TPM endorsement keys (EKs) are asymmetric key pairs unique to each TPM. They use the RSA and ECC algorithms. The TPM manufacturer usually provisions endorsement key certificates in TPM non-volatile memory. The certificates assert that the TPM is authentic. Starting with TPM 2.0, the certificates are in X.509 DER format.
These manufacturers typically provide their certificate authority root (and sometimes intermediate) certificates on their web sites.
Software libraries
[edit]To utilize a TPM, the user needs a software library that communicates with the TPM and provides a friendlier API than the raw TPM communication. Currently, there are several such open-source TPM 2.0 libraries. Some of them also support TPM 1.2, but mostly TPM 1.2 chips are now deprecated and modern development is focused on TPM 2.0.
Typically, a TPM library provides an API with one-to-one mappings to TPM commands. The TCG specification calls this layer the System API (SAPI). This way, the user has more control over the TPM operations, but the complexity is high. To hide some of the complexity, most libraries also offer simpler ways to invoke complex TPM operations. The TCG specification call these two layers Enhanced System API (ESAPI) and Feature API (FAPI).
There is currently only one stack that follows the TCG specification. All the other available open-source TPM libraries use their own form of richer API.
| TPM Libraries | API | TPM 2.0 | TPM 1.2 | Attestation server or example | Microsoft Windows |
Linux | Bare metal |
|---|---|---|---|---|---|---|---|
| tpm2-tss[141] | SAPI, ESAPI and FAPI from the TCG specification |
Yes | No | No, but there is a separate project[a] | Yes | Yes | Maybe[b] |
| ibmtss[144][145] | 1:1 mapping to TPM commands + rich API (mild layer on top) |
Yes | Partial | Yes, "IBM ACS"[146][147] | Yes | Yes | No |
| go-tpm[148] | 1:1 mapping to TPM commands + rich API (mild layer on top) |
Yes | Partial | Yes, "Go-attestation"[149] | Yes | Yes | No |
| wolfTPM[150] | 1:1 mapping to TPM commands + rich API (wrappers) |
Yes | No | Yes, examples are inside the library | Yes | Yes | Yes |
| TSS.MSR[151] | 1:1 mapping to TPM commands + rich API (wrappers) |
Yes | No | Yes, examples are inside the library | Yes | Yes[c] | No |
- ^ There is a separate project called "CHARRA" by Fraunhofer[142] that uses the tpm2-tss library for Remote Attestation. The other stacks have accompanying attestation servers or directly include examples for attestation. IBM offer their open-source Remote Attestation Server called "IBM ACS" on SourceForge and Google have "Go-Attestation" available on GitHub, while "wolfTPM" offers time and local attestation examples directly in its open-source code, also on GitHub.
- ^ There is an application note[143] about an example project for the AURIX 32-bit SoC using the tpm2-tss library.
- ^ Requires additional libraries (dotnet) to run on Linux.
These TPM libraries are sometimes also called TPM stacks, because they provide the interface for the developer or user to interact with the TPM. As seen from the table, the TPM stacks abstract the operating system and transport layer, so the user could migrate one application between platforms. For example, by using TPM stack API the user would interact the same way with a TPM, regardless if the physical chip is connected over SPI, I2C or LPC interface to the Host system.
See also
[edit]References
[edit]- ^ Warren, Tom (2021-06-25). "Why Windows 11 is forcing everyone to use TPM chips". The Verge. Archived from the original on 2023-12-07. Retrieved 2021-11-13.
- ^ Arthur, Will; Challener, David; Goldman, Kenneth (2015), Arthur, Will; Challener, David; Goldman, Kenneth (eds.), "History of the TPM", A Practical Guide to TPM 2.0: Using the New Trusted Platform Module in the New Age of Security, Berkeley, CA: Apress, pp. 1–5, doi:10.1007/978-1-4302-6584-9_1, ISBN 978-1-4302-6584-9
- ^ "ISO/IEC 11889-1:2009 – Information technology – Trusted Platform Module – Part 1: Overview". ISO.org. International Organization for Standardization. May 2009. Archived from the original on January 28, 2017. Retrieved November 30, 2013.
- ^ "TPM 1.2 Main Specification". Trusted Computing Group. Archived from the original on 2024-06-11. Retrieved 2021-11-08.
- ^ a b c "Trusted Platform Module (TPM) Specifications". Trusted Computing Group. March 1, 2011. Archived from the original on October 22, 2017. Retrieved October 30, 2016.
- ^ "Trusted Computing Group Releases TPM 2.0 Specification for Improved Platform and Device Security". Trusted Computing Group. 2014-04-01. Archived from the original on 2025-03-06. Retrieved 2021-11-08.
- ^ a b "TPM Library Specification 2.0". Trusted Computing Group. Archived from the original on 29 October 2016. Retrieved October 30, 2016.
- ^ "Part 1: Architecture" (PDF), Trusted Platform Module Library, Trusted Computing Group, October 30, 2014, archived (PDF) from the original on October 28, 2016, retrieved October 27, 2016
- ^ "TPM 1.2 vs. 2.0 Features | Dell US".
- ^ "TPM 1.2, 2.0 and FTPM (Firmware-based TPM) Information". Archived from the original on February 6, 2020. Retrieved August 31, 2020.
- ^ a b Arthur, Will; Challener, David; Goldman, Kenneth (2015). A Practical Guide to TPM 2.0: Using the New Trusted Platform Module in the New Age of Security. New York City: Apress Media, LLC. p. 69. doi:10.1007/978-1-4302-6584-9. ISBN 978-1430265832. S2CID 27168869.
- ^ "PC Client Protection Profile for TPM 2.0 – Trusted Computing Group". trustedcomputinggroup.org. Archived from the original on October 31, 2016. Retrieved October 30, 2016.
- ^ "TPM 2.0 Mobile Reference Architecture Specification – Trusted Computing Group". trustedcomputinggroup.org. Archived from the original on November 1, 2016. Retrieved October 31, 2016.
- ^ "TCG TPM 2.0 Library Profile for Automotive-Thin". trustedcomputinggroup.org. 1 March 2015. Archived from the original on April 26, 2017. Retrieved April 25, 2017.
- ^ a b c d e "Archived copy" (PDF). Archived (PDF) from the original on October 30, 2016. Retrieved October 29, 2016.
{{cite web}}: CS1 maint: archived copy as title (link) - ^ "Archived copy" (PDF). Archived (PDF) from the original on October 30, 2016. Retrieved October 29, 2016.
{{cite web}}: CS1 maint: archived copy as title (link) - ^ "TPM Main Specification Level 2 Version 1.2, Revision 103: Part 1 Design Principles" (PDF). July 9, 2007. Retrieved February 16, 2024.
- ^ a b c d "TCG Protection Profile for PC Client Specific TPM 2.0 Library Revision 1.59; Version 1.3" (PDF). September 29, 2021. Archived (PDF) from the original on March 6, 2025. Retrieved February 16, 2024.
- ^ "Archived copy" (PDF). Archived (PDF) from the original on October 31, 2016. Retrieved October 30, 2016.
{{cite web}}: CS1 maint: archived copy as title (link) - ^ "Archived copy" (PDF). Archived (PDF) from the original on January 23, 2019. Retrieved January 23, 2019.
{{cite web}}: CS1 maint: archived copy as title (link) - ^ "Archived copy" (PDF). Archived (PDF) from the original on October 31, 2016. Retrieved October 30, 2016.
{{cite web}}: CS1 maint: archived copy as title (link) - ^ "Archived copy" (PDF). Archived (PDF) from the original on October 28, 2016. Retrieved October 27, 2016.
{{cite web}}: CS1 maint: archived copy as title (link) - ^ "Section 23: Enhanced Authorization (EA) Commands", Trusted Platform Module Library; Part 3: Commands (PDF), Trusted Computing Group, March 13, 2014, archived (PDF) from the original on September 3, 2014, retrieved September 2, 2014
- ^ Alin Suciu; Tudor Carean (2010). "Benchmarking the True Random Number Generator of TPM Chips". arXiv:1008.2223 [cs.CR].
- ^ TPM Main Specification Level 2 (PDF), vol. Part 1 Design Principles (Version 1.2, Revision 116 ed.), archived (PDF) from the original on 24 February 2021, retrieved 12 September 2017
- ^ "Understanding Machine-Level and User-Level RSA Key Containers". October 22, 2014. Archived from the original on June 2, 2022. Retrieved June 2, 2022.
- ^ "tspi_data_bind(3) – Encrypts data blob" (Posix manual page). Trusted Computing Group. Archived from the original on November 29, 2013. Retrieved October 27, 2009.
- ^ Trusted Platform Module Library Specification, Family "2.0" (PDF), vol. Part 1 – Architecture, Section 12, TPM Operational States (Level 00, Revision 01.59 ed.), Trusted Computing Group, archived (PDF) from the original on January 9, 2021, retrieved January 17, 2021
- ^ TPM Main Specification Level 2 (PDF), vol. Part 3 – Commands (Version 1.2, Revision 116 ed.), Trusted Computing Group, archived (PDF) from the original on September 28, 2011, retrieved June 22, 2011
- ^ Microsoft Article on TPM, July 25, 2008, archived from the original on January 2, 2021, retrieved April 1, 2021
- ^ "TPM – Trusted Platform Module". IBM. Archived from the original on August 3, 2016.
- ^ "Windows 11 TPM 2.0 requirement has a special exception". SlashGear. 2021-06-28. Archived from the original on June 28, 2021. Retrieved 2021-06-29.
- ^ a b "LUKS support for storing keys in TPM NVRAM". github.com. 2013. Archived from the original on September 16, 2013. Retrieved December 19, 2013.
- ^ "Microsoft Office Outlook Exchange Error 80090016 After a System Board Replacement". Archived from the original on June 28, 2021. Retrieved December 23, 2020.
- ^ a b Greene, James (2012). "Intel Trusted Execution Technology" (PDF) (white paper). Intel. Archived (PDF) from the original on June 11, 2014. Retrieved December 18, 2013.
- ^ "TPM Encryption". Archived from the original on June 28, 2021. Retrieved March 29, 2021.
- ^ "TPM Certified Products List". Trusted Computing Group. Archived from the original on October 14, 2016. Retrieved October 1, 2016.
- ^ "TCG Vendor ID Registry" (PDF). 23 September 2015. Archived (PDF) from the original on 28 October 2016. Retrieved 27 October 2016.
- ^ Lich, Brian; Browers, Nick; Hall, Justin; McIlhargey, Bill; Farag, Hany (27 October 2017). "TPM Recommendations". Microsoft Docs. Microsoft. Archived from the original on 11 January 2018. Retrieved 10 January 2018.
- ^ "Trusted Platform Module 2.0: A Brief Introduction" (PDF). Trusted Computing Group. October 13, 2016. Archived (PDF) from the original on February 3, 2019. Retrieved March 31, 2018.
- ^ "TPM Certified Products". Archived from the original on 2025-03-06. Retrieved 2022-09-06.
- ^ "Trusted Platform Module (TPM) - 2.0: A BRIEF INTRODUCTION" (PDF). Archived (PDF) from the original on 2025-03-06. Retrieved 2023-08-20.
- ^ "GCE Shielded VM - Virtual Trusted Platform Module (vTPM)". Archived from the original on 2021-12-01. Retrieved 2021-12-01.
- ^ "GitHub - microsoft/ms-tpm-20-ref: Reference implementation of the TCG Trusted Platform Module 2.0 specification". GitHub. Archived from the original on October 27, 2020. Retrieved April 5, 2020.
- ^ "Intel Open-Sources New TPM2 Software Stack - Phoronix". Archived from the original on August 10, 2020. Retrieved April 5, 2020.
- ^ "Linux TPM2 & TSS2 Software". GitHub. Archived from the original on July 9, 2020. Retrieved April 5, 2020.
- ^ "The TPM2 Software Stack: Introducing a Major Open Source Release Intel Software". Archived from the original on April 9, 2020. Retrieved April 5, 2020.
- ^ "Open source TPM 2.0 software stack eases security adoption". August 17, 2018. Archived from the original on June 18, 2019. Retrieved April 5, 2020.
- ^ "Infineon Enables Open Source Software Stack for TPM 2.0". August 17, 2018. Archived from the original on February 3, 2021. Retrieved April 5, 2020.
- ^ "IBM's Software TPM 2.0 download | SourceForge.net". Archived from the original on June 12, 2019. Retrieved April 5, 2020.
- ^ "IBM SW TPM 2.0". GitHub. Archived from the original on September 18, 2020. Retrieved June 2, 2021.
- ^ "Intermittent System Stutter Experienced with fTPM Enabled on Windows 10 and 11". AMD. 2022-03-08. Archived from the original on 2024-03-25. Retrieved 2022-07-02.
- ^ Paul Alcorn (2022-03-07). "AMD Issues Fix and Workaround for Ryzen's fTPM Stuttering Issues". Tom's Hardware. Retrieved 2022-07-02.
- ^ Stallman, Richard Matthew. "Project GNU". Free Software Foundation. Archived from the original on 29 June 2011. Retrieved 21 July 2016.
- ^ "TrueCrypt User Guide" (PDF). truecrypt.org. TrueCrypt Foundation. 7 February 2012. p. 129. Archived (PDF) from the original on 25 December 2019. Retrieved 20 February 2018 – via grc.com.
- ^ "FAQ". veracrypt.fr. IDRIX. 2 July 2017. Archived from the original on 25 February 2025. Retrieved 11 January 2018.
- ^ Culp, Scott (2000). "Ten Immutable Laws Of Security (Version 2.0)". TechNet Magazine. Microsoft. Archived from the original on 9 December 2015 – via Microsoft TechNet.
- ^ Johansson, Jesper M. (October 2008). "Security Watch Revisiting the 10 Immutable Laws of Security, Part 1". TechNet Magazine. Microsoft. Archived from the original on 10 April 2017 – via Microsoft TechNet.
- ^ Autonomic and Trusted Computing: 4th International Conference. ATC. 2007. ISBN 9783540735465.
- ^ Pearson, Siani; Balacheff, Boris (2002). Trusted computing platforms: TCPA technology in context. Prentice Hall. ISBN 9780130092205.
- ^ "SetPhysicalPresenceRequest Method of the Win32_Tpm Class". Microsoft. Archived from the original on May 19, 2009. Retrieved June 12, 2009.
- ^ "Can You Trust Your Computer? - GNU Project - Free Software Foundation". www.gnu.org. Archived from the original on 2025-02-26. Retrieved 2023-09-06.
- ^ Sen, Sayan (2024-10-23). "Linus Torvalds seems frustrated with AMD Ryzen fTPM bugs and issues, suggests disabling". Neowin. Retrieved 2024-10-23.
- ^ Messmer, Ellen (January 30, 2012). "Black Hat: Researcher claims hack of processor used to secure Xbox 360, other products". Network World. Archived from the original on January 30, 2012. Retrieved August 10, 2017.
{{cite web}}: CS1 maint: bot: original URL status unknown (link) - ^ Szczys, Mike (February 9, 2010). "TPM crytography cracked". HACKADAY. Archived from the original on February 12, 2010.
- ^ Melissa Michael (8 October 2018). "Episode 14 Reinventing the Cold Boot Attack: Modern Laptop Version" (Podcast). F-Secure Blog. Archived from the original on 28 September 2019. Retrieved 28 September 2019.
- ^ Scahill, Jeremy ScahillJosh BegleyJeremy; Begley, Josh (March 10, 2015). "The CIA Campaign to Steal Apple's Secrets". The Intercept. Archived from the original on August 9, 2017. Retrieved August 10, 2017.
- ^ "TPM Vulnerabilities to Power Analysis and An Exposed Exploit to Bitlocker – The Intercept". The Intercept. Archived from the original on July 9, 2017. Retrieved August 10, 2017.
- ^ a b Cimpanu, Catalin (August 29, 2018). "Researchers Detail Two New Attacks on TPM Chips". Bleeping Computer. Archived from the original on 7 October 2018. Retrieved 28 September 2019.
- ^ Goodin, Dan (October 16, 2017). "Millions of high-security crypto keys crippled by newly discovered flaw". Ars Technica. Archived from the original on October 19, 2018. Retrieved October 18, 2017.
- ^ "Can the NSA Break Microsoft's BitLocker? – Schneier on Security". www.schneier.com. 10 March 2015. Archived from the original on August 10, 2017. Retrieved August 10, 2017.
- ^ ""TPM Update - Infineon Technologies"". Archived from the original on February 5, 2021. Retrieved March 19, 2021.
- ^ a b Seunghun, Han; Wook, Shin; Jun-Hyeok, Park; HyoungChun, Kim (August 15–17, 2018). A Bad Dream: Subverting Trusted Platform Module While You Are Sleeping (PDF). 27th USENIX Security Symposium. Baltimore, MD, USA: USENIX Association. ISBN 9781939133045. Archived (PDF) from the original on 20 August 2018.
- ^ "Trusted platform module security defeated in 30 minutes, no soldering required". August 3, 2021.
- ^ "Trusted Platform Module (TPM) im LAN-Adapter". Heise Online. March 12, 2005. Archived from the original on January 7, 2019. Retrieved January 7, 2019.
- ^ a b "Home – Microchip Technology". www.atmel.com. Archived from the original on October 5, 2016. Retrieved October 4, 2016.
- ^ "AN_8965 TPM Part Number Selection Guide – Application Notes – Microchip Technology Inc" (PDF). www.atmel.com. Archived from the original (PDF) on October 5, 2016. Retrieved October 4, 2016.
- ^ ""Trusted Platform Module"". Microchip Technology. Archived from the original on 2025-02-14. Retrieved 2024-02-14.
- ^ "Home – Microchip Technology". www.atmel.com. Archived from the original on October 5, 2016. Retrieved October 4, 2016.
- ^ "Nuvoton TPM". Archived from the original on 2025-03-06. Retrieved 2021-06-29.
- ^ "STSAFE-TPM" (PDF). Archived (PDF) from the original on 2025-03-06. Retrieved 2021-07-06.
- ^ "Replacing Vulnerable Software with Secure Hardware: The Trusted Platform Module (TPM) and How to Use It in the Enterprise" (PDF). Trusted computing group. 2008. Archived (PDF) from the original on July 14, 2014. Retrieved June 7, 2014.
- ^ "NetXtreme Gigabit Ethernet Controller with Integrated TPM1.2 for Desktops". Broadcom. May 6, 2009. Archived from the original on June 14, 2014. Retrieved June 7, 2014.
- ^ "HP TPM Configuration Utility".
- ^ "TPM vs PTT: What are the main differences between these technologies?". August 9, 2021. Archived from the original on February 12, 2025. Retrieved June 2, 2022.
- ^ "Shielded VMs". Google Cloud. Archived from the original on April 12, 2019. Retrieved April 12, 2019.
- ^ "Amazon EC2 Now Supports NitroTPM and UEFI Secure Boot". AWS News Blog. 11 May 2022. Retrieved February 1, 2025.
- ^ "libtpms Virtual TPM". GitHub. October 27, 2021. Archived from the original on January 4, 2025. Retrieved June 29, 2021.
- ^ Microsoft. "Windows 11 Specs and System Requirements | Microsoft". Windows. Archived from the original on 2022-05-31. Retrieved 2021-10-02.
- ^ Chabaud, Florent (November 15–16, 2022). "Setting Hardware Root-of-Trust from Edge to Cloud, and How to Use it" (PDF). In le Guernic, Gurvan (ed.). Proceedings of the 29th Computer & Electronics Security Application Rendezvous. Rennes, France: C&ESAR 2022. pp. 115–130. Archived (PDF) from the original on 2025-03-06. Retrieved 2024-01-08. Location: Université de Rennes 1, Campus de Beaulieu, IRISA/Inria Rennes, 263 avenue du Général Leclerc, 35042 RENNES cedex.
- ^ "Windows 11 update: TPM 2.0 and PC Health Check confusion". SlashGear. 2021-06-24. Archived from the original on June 24, 2021. Retrieved 2021-06-24.
- ^ "Update to add support for TPM 2.0 in Windows 7 and Windows Server 2008 R2 - Microsoft Support". Archived from the original on 2025-02-12. Retrieved 2024-01-04.
- ^ "TPM 2.0 Support Sent In For The Linux 3.20 Kernel - Phoronix". Archived from the original on February 28, 2021. Retrieved April 5, 2020.
- ^ "Linux kernel turns over release odometer to 4.0". ZDNET. Archived from the original on 2025-02-17. Retrieved 2025-02-04.
- ^ "TPM 2.0 Support Continues Maturing In Linux 4.4 - Phoronix". Archived from the original on March 5, 2021. Retrieved April 5, 2020.
- ^ "With Linux 4.4, TPM 2.0 Gets Into Shape For Distributions - Phoronix". Archived from the original on August 14, 2020. Retrieved April 5, 2020.
- ^ "Chromebook security: browsing more securely". Chrome Blog. Archived from the original on April 25, 2016. Retrieved April 7, 2013.
- ^ "Oracle Solaris and Oracle SPARC T4 Servers— Engineered Together for Enterprise Cloud Deployments" (PDF). Oracle. Archived (PDF) from the original on October 24, 2012. Retrieved October 12, 2012.
- ^ "tpmadm" (manpage). Oracle. Archived from the original on November 14, 2012. Retrieved October 12, 2012.
- ^ Singh, Amit, "Trusted Computing for Mac OS X", OS X book, archived from the original on July 21, 2011, retrieved August 2, 2011.
- ^ "Your Laptop Data Is Not Safe. So Fix It". PC World. January 20, 2009. Archived from the original on November 4, 2013. Retrieved August 22, 2013.
- ^ "A brief history of Mac enclaves and exclaves". The Eclectic Light Company. 15 June 2024. Retrieved 1 February 2025.
- ^ "TPM. Complete protection for peace of mind". Winpad 110W. MSI. Archived from the original on May 13, 2013. Retrieved May 20, 2013.
- ^ Security and the Virtualization Layer, VMware, archived from the original on November 4, 2013, retrieved May 21, 2013.
- ^ Enabling Intel TXT on Dell PowerEdge Servers with VMware ESXi, Dell, archived from the original on March 16, 2014, retrieved May 21, 2013.
- ^ "XEN Virtual Trusted Platform Module (vTPM)". Archived from the original on September 15, 2015. Retrieved September 28, 2015.
- ^ "QEMU 2.11 Changelog". qemu.org. December 12, 2017. Archived from the original on February 9, 2018. Retrieved February 8, 2018.
- ^ "Changelog for VirtualBox 7.0". virtualbox.org. October 10, 2022. Archived from the original on November 6, 2022. Retrieved November 6, 2022.
- ^ "Windows Hardware Certification Requirements". Microsoft. Archived from the original on June 29, 2021. Retrieved July 23, 2013.
- ^ "Windows Hardware Certification Requirements for Client and Server Systems". Microsoft. Archived from the original on July 1, 2015. Retrieved June 5, 2015.
- ^ "What's new in Hyper-V on Windows Server 2016". Microsoft. Archived from the original on March 25, 2017. Retrieved March 24, 2017.
- ^ "tpmtool | Microsoft Docs". Archived from the original on 2022-09-16. Retrieved 2021-07-13.
- ^ "tpmvscmgr | Microsoft Docs". Archived from the original on 2022-05-09. Retrieved 2021-07-13.
- ^ AMD EK RSA Root Certificate, archived from the original on 2021-07-23, retrieved 2021-07-23
- ^ AMD EK ECC Root Certificate, archived from the original on 2021-07-23, retrieved 2021-07-23
- ^ AMD EK Ryzen 6000 RSA Intermediate Certificate, archived from the original on 2021-07-23, retrieved 2021-07-23
- ^ AMD EK Ryzen 6000 ECC Intermediate Certificate, archived from the original on 2021-07-23, retrieved 2021-07-23
- ^ Infineon Root Certificate
- ^ Intel EK Root Certificate
- ^ Intel EK Intermediate Certificate, archived from the original on 2021-07-23, retrieved 2021-07-23
- ^ NationZ EK Root Certificate, archived from the original on 2021-07-23, retrieved 2021-07-23
- ^ NationZ EK Intermediate Certificate
- ^ NationZ EK Intermediate Certificate
- ^ NationZ EK Intermediate Certificate, archived from the original on 2021-07-23, retrieved 2021-07-23
- ^ Nuvoton EK Root Certificate 1110
- ^ Nuvoton EK Root Certificate 1111, archived from the original on 2021-07-26, retrieved 2021-07-26
- ^ Nuvoton EK Root Certificate 2110
- ^ Nuvoton EK Root Certificate 2111
- ^ Nuvoton EK Root Certificate 2112
- ^ ST Micro EK GlobalSign Certificate, archived from the original on 2021-07-23, retrieved 2021-07-23
- ^ ST Micro EK Root Certificate, archived from the original on 2021-07-23, retrieved 2021-07-23
- ^ ST Micro EK Intermediate Certificate
- ^ ST Micro EK Intermediate Certificate, archived from the original on 2021-07-23, retrieved 2021-07-23
- ^ ST Micro EK Intermediate Certificate
- ^ ST Micro EK Intermediate Certificate
- ^ ST Micro EK Intermediate Certificate, archived from the original on 2021-07-23, retrieved 2021-07-23
- ^ ST Micro EK GlobalSign ECC Certificate
- ^ ST Micro EK ECC Root Certificate
- ^ ST Micro EK ECC Intermediate Certificate
- ^ tpm2-software/tpm2-tss, Linux TPM2 & TSS2 Software, 2020-11-18, archived from the original on November 12, 2020, retrieved 2020-11-20
- ^ Fraunhofer-SIT/charra, Fraunhofer Institute for Secure Information Technology, 2020-08-26, archived from the original on October 29, 2020, retrieved 2020-11-20
- ^ AG, Infineon Technologies. "OPTIGA TPM SLI 9670 A-TPM board - Infineon Technologies". www.infineon.com. Archived from the original on August 6, 2020. Retrieved 2020-11-20.
- ^ "IBM TSS for TPM 2.0". Archived from the original on June 29, 2021. Retrieved June 2, 2021.
- ^ "IBM TSS for TPM 2.0". GitHub. Archived from the original on June 29, 2021. Retrieved June 2, 2021.
- ^ "IBM TPM Attestation Client Server". Archived from the original on March 2, 2021. Retrieved November 20, 2020.
- ^ "IBM TPM Attestation Client Server". GitHub. Archived from the original on June 29, 2021. Retrieved June 2, 2021.
- ^ google/go-tpm, 2020-11-18, archived from the original on December 14, 2020, retrieved 2020-11-20
- ^ google/go-attestation, 2020-11-19, archived from the original on November 19, 2020, retrieved 2020-11-20
- ^ wolfSSL/wolfTPM, wolfSSL, 2020-11-18, archived from the original on November 20, 2020, retrieved 2020-11-20
- ^ TSS.MSR, archived from the original on June 26, 2021, retrieved June 17, 2021
Trusted Platform Module
View on GrokipediaFundamentals
Definition and Core Functions
The Trusted Platform Module (TPM) is a secure cryptoprocessor implemented as a dedicated microcontroller or integrated circuit that provides hardware-based protection for cryptographic keys and platform integrity measurements. Developed under the specifications of the Trusted Computing Group (TCG), which published its initial TPM standards in 2003, the TPM functions as a tamper-resistant hardware module capable of storing sensitive artifacts such as encryption keys, passwords, and digital certificates in non-volatile memory.[1][9] This design ensures isolation from the host system's software, leveraging physical hardware boundaries to safeguard data against extraction attempts, including those via physical attacks in implementations featuring tamper-detection mechanisms.[10] Core functions of the TPM encompass random number generation through an integrated hardware random number generator (RNG), which produces cryptographically secure randomness essential for key generation and nonce creation. It supports asymmetric cryptographic operations, including public-key encryption, digital signatures, and key derivation using algorithms like RSA and elliptic curve cryptography (ECC), executed within the module's protected environment to prevent private key exposure. Secure storage hierarchies, enforced via persistent objects and authorization policies, enable the TPM to manage keys and secrets immutably bound to the platform.[10][11] The TPM distinguishes itself from software-based cryptographic libraries by its reliance on hardware-enforced isolation and tamper resistance, rendering keys non-exportable even under full system compromise, as operations occur in a separate execution domain immune to host-level exploits. A key capability is platform attestation, where the TPM measures and reports the integrity of boot components and runtime states via cryptographic quotes, allowing remote parties to verify the platform's trustworthiness without trusting the host CPU or OS. These functions collectively establish a hardware root of trust, measuring system configurations into protected registers to detect unauthorized modifications.[12][13]Architectural Components
The Trusted Platform Module (TPM) architecture centers on three primary key hierarchies—endorsement, storage, and platform—each rooted in a unique primary seed to establish secure key derivation and isolation from the host platform. The endorsement hierarchy originates from the Endorsement Primary Seed (EPS), a unique 32-byte random value generated during manufacturing, which serves as the basis for deriving the Endorsement Key (EK), an asymmetric RSA key pair unique to each TPM instance and used for platform authentication and attestation.[14] The EK's public portion is certified by an Endorsement Key Certificate (EK cert) issued by the TPM manufacturer, attesting to the chip's authenticity and compliance with specifications.[15] The storage hierarchy, managed via the Storage Primary Seed (SPS), generates the Storage Root Key (SRK), a primary wrapping key that protects user-derived keys and data objects within the TPM's non-volatile memory, ensuring they remain inaccessible to external entities including the host operating system.[3] Similarly, the platform hierarchy employs the Platform Primary Seed (PPS) to derive platform-specific keys controlled by firmware or BIOS, enabling manufacturer-defined policies. These seeds and derived keys are stored in protected memory regions, with access enforced through authorization policies that prevent unauthorized derivation or export, thereby providing causal isolation against software-based attacks on the host.[16] TPM interacts with the host system exclusively through standardized interfaces such as the Low Pin Count (LPC) bus or Serial Peripheral Interface (SPI), which transmit commands and responses without granting direct memory access to TPM internals. This bus-mediated communication, combined with the TPM's dedicated microcontroller, RAM, ROM, and non-volatile storage, enforces runtime isolation by executing operations in a separate environment impervious to host OS interference or privilege escalation attempts.[14][17] TPM realizations vary between discrete hardware implementations and firmware-based variants. Discrete TPMs are standalone chips from vendors like Infineon and Nuvoton, offering physical tamper resistance through dedicated silicon packaging that minimizes shared resources with the host CPU.[18] In contrast, firmware TPMs (fTPMs) execute within the CPU's secure environment, leveraging processor extensions for isolation but inheriting potential vulnerabilities from the broader SoC, such as side-channel exposures inherent to integrated execution.[19] This distinction impacts security assurances, with discrete variants providing stronger hardware boundaries at the cost of additional board space and integration complexity.[20]Historical Evolution
Origins in Trusted Computing Group
The Trusted Computing Group (TCG) was formed on April 9, 2003, as a not-for-profit organization dedicated to developing open, vendor-neutral specifications for trusted computing hardware and platforms.[21] Founding promoter members included AMD, Hewlett-Packard, IBM, Intel, and Microsoft, with the explicit goal of standardizing mechanisms to establish and maintain trust in computing systems amid escalating software vulnerabilities.[22] This initiative built on prior efforts like the Trusted Computing Platform Alliance (TCPA), which TCG succeeded, but emphasized industry-wide adoption without reliance on government mandates or proprietary silos. TCG's origins addressed the root-of-trust challenge in computing, where software alone proved insufficient to verify system integrity from boot-up, allowing malware to propagate unchecked. The group prioritized hardware-embedded solutions to measure firmware, BIOS, and operating system components before execution, generating cryptographic hashes stored securely to detect tampering or unauthorized modifications. This approach aimed to create immutable baselines for platform configuration, preventing compromised code from loading and executing.[23] Empirical drivers included high-profile exploits like the Morris Worm of November 1988, which infected approximately 6,000 Unix systems (about 10% of the internet at the time) by exploiting buffer overflows and weak authentication, and the Code Red worm of July 2001, which defaced over 350,000 Microsoft IIS web servers while launching DDoS attacks. These incidents underscored the fragility of user-dependent software defenses and the need for hardware-enforced, pre-execution validation to mitigate root-level compromises. TCG's framework thus sought to institutionalize such protections through standardized specifications, including the initial TPM 1.1b released that year, without imposing regulatory coercion.[24][25]Specification Milestones (TPM 1.2 to 2.0)
The TPM 1.2 specification, announced by the Trusted Computing Group in 2004 and finalized after revisions through 2009, built on prior versions by standardizing sealed storage for binding encrypted data to specific platform configurations and introducing Direct Anonymous Attestation (DAA) to enable privacy-preserving proofs of compliance without revealing unique identifiers.[21][4] It maintained a single object hierarchy for keys and data, relying exclusively on SHA-1 for hashing operations and RSA for asymmetric cryptography, which later proved limiting due to SHA-1's vulnerability to collision attacks demonstrated in empirical cryptanalysis.[26][27] To address these constraints and incorporate lessons from real-world cryptographic weaknesses, the TCG ratified the TPM 2.0 Library Specification on April 9, 2014, shifting to an agile design that decouples algorithm selection from the core specification, allowing implementations to support replaceable primitives such as SHA-256, SHA-384, SHA-512 for hashing, and elliptic curve cryptography (ECC) alongside larger RSA keys up to 4096 bits.[28][5] This flexibility mitigated risks from algorithm obsolescence, as evidenced by SHA-1's practical breaks, without requiring hardware redesigns for future updates.[29] TPM 2.0 eliminated deprecated features like RSA key transport sessions, which were prone to misuse in prior versions, and introduced multiple persistent hierarchies—endorsement for attestation keys, storage for user data, and platform for firmware controls—to enable more granular chain-of-trust management and reduce single points of failure in key handling.[26] Authorization mechanisms were overhauled with policy-based sessions supporting HMAC and trial-based protections, alongside mandatory anti-hammering behaviors to resist dictionary and brute-force attacks more effectively than the implementation-dependent approaches in TPM 1.2.[3][5] These refinements stemmed from causal analysis of vulnerabilities in fixed-scheme systems, prioritizing long-term robustness in diverse deployment scenarios.[28]Recent Developments (2020s Market and Standards)
The Trusted Platform Module (TPM) market experienced significant expansion in the early 2020s, valued at approximately USD 2.59 billion in 2024 and projected to reach USD 10.24 billion by 2034, reflecting a compound annual growth rate (CAGR) of 14.75%.[30] This growth has been propelled by escalating cybersecurity threats, including ransomware attacks that exploit unverified boot processes and weak key management, incentivizing adoption in sectors requiring hardware-rooted trust.[12] Microsoft's enforcement of TPM 2.0 as a mandatory requirement for Windows 11 installations starting in 2021 served as a major catalyst for broader market penetration, particularly in enterprise and consumer PCs, despite initial user resistance over compatibility concerns.[31] Environments with TPM-enabled attestation have demonstrated correlations with diminished success rates of firmware-level exploits and ransomware persistence, as the hardware isolation of cryptographic operations hinders unauthorized code execution during boot.[32] [33] In standards evolution, the Trusted Computing Group (TCG) issued revisions to the TPM 2.0 Library Specification, such as Revision 1.59 in 2020, incorporating enhancements like support for symmetric block cipher MACs and AES-CMAC to facilitate integration with resource-constrained devices.[34] [35] The TCG's DICE (Device Identifier Composition Engine) work group advanced protocols for composing device identities in IoT and embedded systems, enabling TPM-based attestation layers that derive unique identifiers from hardware roots without relying on manufacturer provisioning.[36] These updates emphasize firmware updateability to address vulnerabilities, prioritizing resilience against supply-chain compromises over static configurations. Sectoral drivers include automotive and IoT mandates, where TPMs underpin secure boot and over-the-air updates amid rising connected vehicle threats; for instance, Infineon's OPTIGA TPM SLM 9670, compliant with TCG standards, supports industrial and automotive edge security through extended temperature ranges and ECC cryptography.[37] Regulatory frameworks like UNECE WP.29 have indirectly boosted TPM integration by mandating cybersecurity management systems for vehicles, aligning with TPM's role in verifiable integrity measurements to mitigate remote exploits.[38] In IoT, TCG profiles tailor TPM subsets for low-power devices, driven by empirical needs for attested ecosystems rather than unsubstantiated hype.[39]Technical Specifications
Cryptographic Primitives and Algorithms
TPM 2.0 implementations support a range of asymmetric cryptographic algorithms, including RSA for public-key operations such as signing and encryption, and elliptic curve cryptography (ECC) variants like NIST P-256 and P-384 for efficient key exchange and signatures.[14] Symmetric block ciphers, primarily AES with key sizes of 128, 192, or 256 bits in modes like GCM or CFB, handle data encryption and integrity protection.[40] Hashing primitives encompass the SHA-2 family (e.g., SHA-256, SHA-384) and extendable support for SHA-3, while deterministic random bit generation (DRBG) based on standards like CTR_DRBG ensures cryptographically secure randomness for key derivation and nonces.[41] These primitives are selected for their empirical resistance to known attacks, with mandatory support dictated by the TPM Library Specification to enable verifiable security from first principles.[14] Cryptographic keys in TPM follow a controlled lifecycle: primary seeds are derived from the Endorsement Key (EK) or Storage Root Key (SRK) using the TPM's internal random number generator, producing ordinary or derived keys that remain non-exportable unless explicitly designated as migratable.[14] Private key material never leaves the TPM in plaintext, enforced by hardware isolation, with export restricted to wrapped forms under parent keys to prevent compromise.[42] Revocation occurs via owner-authorized eviction commands, such as TPM2_EvictControl, which removes persistent keys from non-volatile memory, ensuring compromised or obsolete keys cannot be reactivated without reauthorization.[14] Unlike TPM 1.2, which rigidly relied on SHA-1 and limited RSA parameters, TPM 2.0 incorporates algorithm agility through extensible data structures and firmware update mechanisms, permitting post-manufacture integration of upgraded primitives without hardware redesign.[41] This design counters cryptographic obsolescence, as evidenced by SHA-1's vulnerability to practical collisions demonstrated in 2017, where researchers generated two distinct PDFs with identical hashes using 2^63 operations on GPUs, undermining its collision resistance and prompting widespread deprecation.[43][44] Firmware upgrades in TPM 2.0 enable seamless transitions to stronger hashes like SHA-256, maintaining long-term verifiability amid evolving threats.[45]Platform Configuration Registers and Attestation
Platform Configuration Registers (PCRs) in a Trusted Platform Module (TPM) serve as tamper-evident logs of the platform's boot and runtime state, capturing sequential cryptographic hashes of firmware, bootloaders, operating system components, and application measurements. Each PCR operates as a one-way extending register: a new measurement is incorporated by computing the hash of the concatenation of the current PCR value and the new input data, ensuring that prior states cannot be altered without detection. This chaining mechanism establishes an immutable audit trail rooted in the TPM's hardware-protected memory, independent of the host CPU or software. In TPM 2.0 specifications, platforms must support at least 24 PCRs indexed from 0 to 23, with attributes defining their hash algorithms (e.g., SHA-256) and locality restrictions; additional PCRs beyond 24 can be allocated dynamically via TPM commands during manufacturing or initialization, though client profiles typically fix usage to the initial set for interoperability.[46][47] The attestation process leverages PCRs to enable remote verification of platform integrity without trusting the host environment. A verifier requests a "quote" from the TPM, which selects specific PCR indices, computes a composite digest of their values, and signs it using an Attestation Key (AK)—a restricted signing key generated internally from the TPM's Endorsement Key (EK), bound to the device's unique identity. The quote includes the PCR selection mask, digest, signature, and metadata like firmware version, forming a TPMS_ATTEST structure that attests to the measured configuration matching an expected trusted state. In contrast to TPM 1.2's Attestation Identity Key (AIK), the TPM 2.0 AK provides pseudonymity through EK-derived certification, allowing credential revocation while preserving privacy; verifiers validate the signature against an AK certificate issued by the TPM manufacturer or a trusted authority.[14][48] PCRs' hash chaining empirically thwarts rollback attacks by rendering reversion to prior software versions detectable: altering a boot component modifies downstream PCR values, breaking the expected sequence verifiable via quote comparison against known good measurements. This causal integrity enforcement has been substantiated through Trusted Computing Group (TCG) conformance testing, where certified TPM implementations undergo validation of extend operations and quote accuracy under controlled boot scenarios, confirming resistance to state manipulation without hardware reset. TCG profiles mandate PCR reset only on platform power cycles or authorized locality commands, further insulating against software-mediated rollbacks.[46][49]Hardware Root of Trust Mechanisms
The hardware root of trust (RoT) in a Trusted Platform Module (TPM) refers to the foundational security primitives embedded in the TPM hardware that enable verifiable trust anchoring for platform operations, independent of software influences. This RoT is realized through the TPM's dedicated microcontroller architecture, which includes tamper-resistant non-volatile memory for key storage and execution environments shielded from external probes or software exploitation.[3][50] The TPM's design ensures that critical functions, such as key generation and cryptographic operations, occur in isolation, providing a baseline of authenticity and integrity that higher-level software components can extend via measurement chains. Central to the hardware RoT is the Endorsement Key (EK), an asymmetric cryptographic key pair—typically RSA 2048-bit or ECC P-256—uniquely generated during TPM manufacturing and permanently fused into the chip's protected memory, rendering it non-exportable and unalterable. The EK serves as the anchor for identity attestation, with a manufacturer-issued Endorsement Certificate (EK cert) chaining back to a trusted root certificate authority, allowing verification of the TPM's authenticity and origin.[51][52] This mechanism establishes causal trust in the hardware itself, as any compromise during production would invalidate the certificate chain, prompting rejection by relying parties. The Core Root of Trust for Measurement (CRTM), typically implemented in immutable firmware or CPU microcode, initiates the trust extension by unconditionally executing the first hash measurement into the TPM's Platform Configuration Register (PCR) 0 upon platform reset. This hardware-initiated measurement, protected against rollback via TPM locality controls and endorsement hierarchy policies, forms the immutable starting point for dynamic root of trust extension, ensuring subsequent boot components are measured against known-good values stored or attested via the EK.[23][51] Additional mechanisms include primary seeds—such as the Endorsement Primary Seed (EPS) and Storage Primary Seed (SPS) in TPM 2.0—which derive hierarchical key structures under policy controls, preventing unauthorized key usage without hardware endorsement. Physical protections, including active tamper detection circuits that trigger zeroization of secrets upon breach attempts, further bolster the RoT, though implementation details vary by vendor compliance with TCG specifications.[28] These elements collectively mitigate risks like side-channel attacks or supply-chain compromises, with certification under standards like FIPS 140-2/3 validating the hardware's resistance to specified threats.[53]Applications and Use Cases
Platform Integrity and Secure Boot
The Trusted Platform Module (TPM) contributes to platform integrity primarily through measured boot, a process where hardware and firmware components hash their configurations and extend these values into the TPM's Platform Configuration Registers (PCRs) to create a verifiable record of the boot sequence.[2] This measurement begins with the Core Root of Trust for Measurement (CRTM), typically embedded in the CPU or immutable firmware, which hashes itself and subsequent stages like BIOS/UEFI code before extending PCR 0.[54] Each boot component—firmware volumes, bootloaders, and kernel images—follows suit by measuring the next element and performing an extend operation: PCR_new = HASH(PCR_old || measurement_hash), ensuring the chain cannot be retroactively altered without detection.[54] Integration with UEFI Secure Boot enhances this by combining active enforcement of cryptographic signatures on bootloaders and kernels with TPM's passive measurement capabilities. Secure Boot verifies digital signatures against trusted keys stored in UEFI variables or the TPM's Endorsement Key (EK), refusing to load unsigned or tampered code, while the TPM simultaneously records hashes of these verified components into PCRs (e.g., PCR 4 for boot services).[55] This dual approach maintains a chain of trust from CRTM through kernel initialization, where policy engines—such as those in operating systems—can compare PCR values against predefined "golden" measurements to enforce local policies, potentially halting boot progression or denying access to sealed secrets on mismatch.[56] In real-world scenarios, TPM-enabled measured boot mitigates firmware-level rootkits by enabling post-boot attestation or pre-execution policy checks that reveal tampering. The LoJax UEFI rootkit, identified by ESET researchers on September 27, 2018, as the first in-the-wild example deployed by the Sednit APT group, embedded malicious code in SPI flash to persist across OS reinstalls; however, TPM PCR extensions of firmware measurements allow integrity verification, breaking reliance on compromised environments for subsequent trust decisions like key unsealing.[57] Similarly, TPM measurements extend beyond Secure Boot's scope to capture non-executable data like configuration files, providing comprehensive evidence for detecting deviations that could enable rootkit persistence, though effectiveness depends on uncompromised CRTM and regular attestation.[53]Disk Encryption and Key Management
The Trusted Platform Module (TPM) enables secure full-disk encryption by sealing encryption keys to the values in its Platform Configuration Registers (PCRs), which capture measurements of the boot process and system state. Sealed keys remain encrypted within the TPM until PCR values match the policy-bound configuration, ensuring automatic unsealing only on unmodified, trusted platforms; this hardware binding causally prevents key exposure to unauthorized environments, such as extracted drives.[3][58] Microsoft's BitLocker, available since Windows Vista in 2007, exemplifies this by sealing the Volume Master Key (VMK) protector to PCRs—commonly PCR 7 for boot components—requiring endorsement from the TPM before releasing the key for full-volume decryption. During boot, the TPM verifies firmware, bootloader, and kernel integrity against stored hashes; any deviation, such as malware alteration or hardware substitution, blocks unsealing, rendering the drive inaccessible offline. This approach defeats theft scenarios where attackers remove and mount the drive on separate systems, as the keys cannot be decrypted without the originating platform's exact state.[59][60][61] TPM key hierarchies anchor this protection in the Storage Root Key (SRK), an asymmetric root generated at TPM provisioning that wraps subordinate keys non-migratably, deriving encryption keys for disk protectors without exposing plaintext outside the chip. Child keys under the SRK inherit binding policies, preventing derivation or use on hibernated or powered-off drives subjected to physical extraction; even if hibernation artifacts persist in RAM, the hierarchy enforces re-measurement on resume, blocking unsealing if tampering occurred. This structure resists forensic attacks on dormant systems, as keys remain chip-bound and state-dependent.[62][63] In open-source environments, Linux distributions integrate TPM with LUKS/dm-crypt via tools like systemd-cryptenroll or clevis, sealing LUKS master keys to PCRs for passphrase-less boot on verified hardware since TPM 2.0 adoption in kernels around 2016. This bolsters resistance to cold-boot attacks—demonstrated in 2008 research recovering passphrase-derived keys from DRAM remnants after power loss—by avoiding persistent key material in volatile memory; TPM-bound unsealing occurs transiently during trusted boot, evading RAM scavenging that succeeds against password-only setups with extraction rates up to minutes post-shutdown.[64][65][66]Authentication in Enterprise and IoT
The Trusted Platform Module (TPM) facilitates authentication in enterprise environments and Internet of Things (IoT) deployments through hardware-rooted protocols that enable verifiable identity proofs while supporting scalability in distributed systems. These protocols leverage the TPM's secure key storage and cryptographic capabilities to attest platform trustworthiness without exposing sensitive endorsements, addressing challenges like key management across large-scale networks. In enterprise settings, TPMs integrate with standards such as FIDO2 to support passwordless authentication, where credentials are bound to hardware, thereby minimizing risks from credential theft.[67][68] Direct Anonymous Attestation (DAA), specified in TPM 2.0 by the Trusted Computing Group, provides a privacy-preserving mechanism for remote authentication, allowing a TPM-equipped device to prove its authenticity via anonymous signatures without revealing its unique endorsement key or linking attestations across sessions. DAA operates as a group signature scheme, enabling verifiers to confirm membership in a trusted cohort while issuer anonymity prevents tracking, which is critical for scalable enterprise deployments where thousands of endpoints require periodic attestation without centralized trusted third-party involvement. This protocol, formalized in cryptographic libraries compliant with TPM standards, supports unlinkability and non-revocability, ensuring that compromised devices can be selectively excluded via credential issuer lists.[15][69] In IoT ecosystems, TPMs underpin device provisioning and mutual authentication during onboarding, as exemplified by TPM attestation in Azure Device Provisioning Service, where endorsement keys uniquely identify devices for secure enrollment into cloud-managed fleets as of May 2024. Firmware signing with TPM-derived keys ensures verifiable updates, preventing unauthorized code injection in resource-constrained nodes; for instance, Infineon's OPTIGA TPM 2.0 series, certified for automotive electronic control units (ECUs), supports secure key generation for over-the-air firmware authentication, with post-2023 variants incorporating post-quantum cryptography protections against future threats.[70][71] These mechanisms scale to millions of devices by offloading cryptographic operations to hardware, reducing latency in protocols like those defined in IETF drafts for remote attestation.[72] Enterprise adoption of TPM-enhanced FIDO2 aligns with NIST SP 800-63 guidelines for authenticator assurance level 3 (AAL3), storing FIDO private keys in the TPM to enable phishing-resistant, passwordless logins that resist verifier impersonation attacks. This approach, deployed in Microsoft Entra ID as of November 2024, binds credentials to the physical platform, eliminating shared secrets vulnerable to phishing, with empirical reductions in compromise rates reported up to 99.9% compared to password-based systems.[73][68] Scalability is achieved through TPM's endorsement key hierarchy, which supports federated identity without per-user key proliferation, as outlined in TCG specifications for device identity keys.[15]Implementations
Discrete and Integrated Hardware
Discrete Trusted Platform Modules (dTPMs) consist of standalone application-specific integrated circuits (ASICs) soldered directly onto the motherboard, providing a physically isolated secure cryptoprocessor compliant with Trusted Computing Group (TCG) specifications.[74] Examples include the STMicroelectronics ST33TPHF20SPI, which supports SPI interfaces and implements TPM 2.0 functionality for secure key storage and cryptographic operations.[75] These chips achieve high assurance levels, such as Common Criteria EAL4+ certification augmented with vulnerability assessment, enabling tamper-evident designs resistant to physical probing and side-channel attacks.[76] However, their separate nature introduces higher manufacturing costs, inter-chip communication latency over buses like LPC or SPI, and potential supply chain vulnerabilities from third-party sourcing.[45] In contrast, integrated TPMs (iTPMs) embed dedicated TPM hardware circuitry within a larger system-on-chip (SoC) or companion die, sharing the package with other platform functions while maintaining a hardware root of trust.[45] This integration reduces component count and costs, minimizes latency through on-die interconnects, and simplifies board design, but compromises isolation as attacks on the host chip could indirectly affect the TPM subsystem.[77] Empirical evidence from certification processes shows iTPMs still qualify for EAL4+ under TCG profiles, though their shared silicon increases exposure to host-level failure modes like fault injection targeting the broader die.[78] Adoption of discrete TPMs prevails in server and enterprise environments where verifiable physical separation justifies the trade-offs, as evidenced by their prevalence in high-assurance systems requiring replaceable modules for upgrades or audits.[79] Integrated variants appear more in embedded and cost-sensitive applications, balancing security with efficiency but demanding rigorous host chip hardening to mitigate reduced isolation.[80]Firmware-Based Solutions (fTPM, PTT)
Firmware-based Trusted Platform Modules (fTPMs) emulate TPM functionality within the CPU's firmware environment, utilizing processor-specific security extensions to provide cryptographic services without requiring a separate hardware chip. AMD's fTPM, introduced with Ryzen processors in 2017, operates via the integrated Platform Security Processor (PSP), a dedicated ARM-based coprocessor that handles isolated execution for TPM operations.[81] Intel's Platform Trust Technology (PTT), available since the Skylake architecture in 2015, integrates TPM emulation into the Converged Security and Management Engine (CSME), enabling firmware-level key storage and attestation using the CPU's built-in cryptographic capabilities. In Windows, after activating PTT in the BIOS/UEFI, TPM 2.0 can be verified by pressing Windows + R, typingtpm.msc, and pressing Enter; in the TPM Management console, confirm the Status indicates "The TPM is ready for use" and the Specification Version is 2.0 under TPM Manufacturer Information. For administrative tasks and automation within Windows environments, TPM PowerShell cmdlets provide a native interface to query TPM status, provision the hardware, and manage ownership without relying on external utilities.[82][83][84] Both implementations adhere to Trusted Computing Group (TCG) specifications for TPM 2.0, ensuring compatibility with standards for secure boot and measured launch processes.[85]
These solutions offer cost advantages by eliminating the need for discrete TPM chips, reducing manufacturing complexity and board space in consumer and enterprise platforms, while achieving broad integration in x86 processors from 2017 onward. In post-2020 hardware, fTPM and PTT have become standard features in nearly all AMD Ryzen and Intel Core series CPUs, facilitating widespread deployment without additional components. Security relies on CPU-level isolation, such as AMD's Secure Encrypted Virtualization (SEV) for memory encryption and Intel's equivalent mechanisms, which protect firmware operations from the main execution environment. However, shared-die integration introduces risks from processor-wide vulnerabilities, including microarchitectural side-channel attacks like Spectre variants that can leak data across isolation boundaries if mitigations are incomplete.[86]
Empirical assessments indicate that firmware-updated fTPMs and PTT exhibit resistance to common exploits comparable to discrete TPMs for software-based threats, as TCG certification validates core primitives like endorsement keys and platform configuration registers against defined test vectors. Potential weaknesses stem from dependencies on CPU errata fixes; for instance, PSP-related firmware updates have addressed transient execution issues in AMD systems, maintaining integrity during high-load scenarios. While discrete TPMs provide stricter physical boundaries, firmware variants suffice for cost-sensitive applications where supply-chain attacks on chips are a lower concern, provided regular microcode and BIOS updates are applied to counter evolving CPU bugs.[87]
Virtualization and Emulation Options
Virtual Trusted Platform Modules (vTPMs) provide TPM functionality within virtual machines through software emulation or hardware passthrough, enabling features like remote attestation and secure boot in virtualized environments. Software-based vTPMs, such as those implemented via the swtpm emulator built on libtpms, expose a TPM 2.0 interface compatible with hypervisors including KVM and QEMU, allowing virtual machines to interact with emulated cryptographic primitives without requiring dedicated hardware per VM.[88][89] This approach supports VM-specific state isolation, where each vTPM instance maintains its own platform configuration registers (PCRs) and endorsement keys, facilitating workload portability across hosts.[89] In cloud platforms, vTPMs underpin confidential computing offerings; for instance, Microsoft Azure assigns a dedicated vTPM to each confidential virtual machine, compliant with the TPM 2.0 specification, to generate attestation evidence including quotes and endorsements for verifying VM integrity against the host environment.[90][91] Amazon Web Services employs similar isolation in Nitro Enclaves for processing sensitive data, though it prioritizes hardware enclaves over pure vTPM emulation for runtime protection.[92] These implementations enable multi-tenant attestation, where VM owners can cryptographically confirm the execution environment's trustworthiness, but they inherently trade hardware-rooted tamper resistance for scalability.[90] Security analyses highlight that vTPMs exhibit a larger attack surface than physical TPMs, as host-level compromises—such as hypervisor vulnerabilities or privileged access—can extract or manipulate vTPM persistent state, including private keys, which software emulation stores in accessible files or memory.[93][94] Empirical evaluations, including DoD assessments, conclude that unlinked software vTPMs fail to meet stringent hardware-backed security requirements, lacking the physical protections against side-channel or extraction attacks inherent to discrete chips.[53] Mitigations include certificate chains binding vTPM endorsements to the host's hardware TPM, enabling chained attestation to detect migration to untrusted hosts, though this adds complexity and does not fully restore bare-metal guarantees.[93] Nested virtualization with device passthrough can further isolate vTPMs by delegating hardware TPM access to guest layers via SR-IOV-like mechanisms, reducing host exposure, but deployment remains limited by performance overhead and compatibility constraints.[93] Overall, vTPMs prioritize deployment flexibility for virtual workloads over the immutable trust anchors of physical implementations, with audits consistently evidencing elevated risks in adversarial multi-tenant scenarios.[94]Security Analysis
Certification Standards and Compliance
The Trusted Computing Group (TCG) oversees TPM certification to verify compliance with its specifications, requiring manufacturers to undergo conformance testing against a comprehensive set of functional and interface requirements defined in the TPM Library Specification. This process includes automated and manual tests executed via TCG-approved test suites, ensuring implementations adhere to protocols for key generation, attestation, and cryptographic operations without deviations that could compromise security primitives. Successful certification confirms the module's ability to maintain tamper-resistant behavior and predictable responses under specified adversarial models, with over 1,000 test cases covering command processing, error handling, and state transitions for TPM 2.0.[95][78] In addition to TCG conformance, TPM modules frequently pursue validation under international security standards such as Common Criteria (CC) at Evaluation Assurance Level 4 augmented (EAL4+), which mandates rigorous evidence of design, implementation, and vulnerability analysis against moderate attack potentials. For PC Client Specific TPMs, this involves protection profiles that augment EAL4 with flaw remediation and high-level vulnerability assessments, demonstrating resistance to physical and logical attacks like side-channel exploitation or fault injection. TCG explicitly requires EAL4+ certification as part of its PC Client TPM program for both TPM 1.2 and 2.0 families, with certified products undergoing independent laboratory evaluation to validate security functions against TOE (Target of Evaluation) boundaries.[78][96] For cryptographic assurance, particularly in U.S. government and Department of Defense contexts, TPMs are validated under Federal Information Processing Standards (FIPS) 140-2 Level 2 or the transitioning FIPS 140-3, focusing on module integrity, key management, and operational environment protections. FIPS validation, administered by NIST's Cryptographic Module Validation Program, tests against derived requirements for random number generation, encryption algorithms (e.g., AES-256), and self-tests, with TPM 2.0 libraries required to isolate cryptographic operations from host influence. Post-2023 specification updates addressing library buffer handling issues, vendors have revalidated implementations to confirm FIPS compliance, ensuring modules meet Level 1 overall for FIPS 140-3 while maintaining TCG interoperability. Empirical testing under these regimes has yielded low non-conformance rates in audited deployments, as evidenced by the sustained certification of major implementations like Infineon and STMicroelectronics chips.[97][98][99]Known Vulnerabilities and Exploits
In early 2023, the Trusted Computing Group (TCG) disclosed two buffer overflow vulnerabilities in the TPM 2.0 reference library specification (Level 00, Revision 1.38), tracked as CVE-2023-1017 and CVE-2023-1018.[100] CVE-2023-1017 involves an out-of-bounds read that could leak up to 11 bytes of sensitive data, such as cryptographic keys, while CVE-2023-1018 enables an out-of-bounds write of 2 bytes with attacker-controlled values, potentially corrupting memory and facilitating arbitrary code execution or key extraction.[101] These flaws arise from improper handling of variable-length structures in commands like TPM2_RSA_Encrypt and TPM2_GetCapability, but exploitation requires privileged local access to the TPM's command interface, typically necessitating physical device possession or kernel-level privileges, which causally limits remote attack vectors to scenarios involving prior compromise.[102] To address these security flaws, vendors periodically release firmware updates. Firmware updates from vendors have addressed these issues in compliant implementations, demonstrating that the vulnerabilities stem from reference code edge cases rather than fundamental specification weaknesses.[100] Earlier vulnerabilities include a 2018 flaw in TPM 2.0's handling of system sleep states, stemming from incomplete specification changes between TPM 1.2 and 2.0 that allowed replay attacks on platform configuration registers (PCRs), potentially enabling forged integrity measurements.[103] This defect required physical access to interrupt the TPM during low-power modes, extracting or replaying nonce values to bypass attestation checks, but its real-world exploitability remained low due to the need for specialized hardware probing and timing precision, with no widespread incidents reported.[104] Similarly, implementation-specific issues in certain TPM chips, such as flawed random number generation in older Infineon models (related to the ROCA vulnerability, CVE-2017-15361), permitted reconstruction of private RSA keys from public ones under controlled conditions, though this affected a subset of devices and demanded significant computational resources without physical access. Claims of systemic backdoors in TPM hardware or specifications lack empirical substantiation, with documented flaws consistently traced to implementation bugs or reference library oversights rather than intentional design sabotage.[105] For instance, while side-channel attacks like those exploiting buffer overflows could theoretically extract keys, causal analysis reveals they hinge on local attacker control over command inputs, rendering remote or unprivileged exploitation improbable without ancillary system breaches; patches have proven effective in restoring integrity without altering core cryptographic primitives.[100] Overstated risks in media reports often conflate potential with practical impact, ignoring that TPMs' isolation—enforced by hardware fuses and endorsement keys—causally contains most exploits to the module itself, preserving broader platform security absent elevated privileges.[106]Mitigation and Resilience Evidence
TPM firmware updates are secured through PCR measurements that hash boot components and firmware images, binding cryptographic keys to expected values; unauthorized alterations alter PCR contents, preventing key unsealing and thus blocking persistent malware from accessing encrypted data.[80][107] PCR policy binding in TPM 2.0 employs commands like TPM2_PolicyPCR to condition key release on specific PCR hashes or signed policies, enabling dynamic integrity verification that resists rootkits by tying access to verifiable platform states rather than static values.[108][41] Hybrid configurations pairing discrete TPM chips with firmware TPM (fTPM) achieve defense-in-depth by leveraging hardware tamper resistance alongside software-flexible implementations, where discrete modules handle critical root-of-trust functions and fTPM extends coverage in virtualized or updated environments.[109][53] DoD Security Technical Implementation Guides (STIGs) require TPM integration for full disk encryption in data-at-rest protection, ensuring keys remain bound to attested hardware states and reducing exposure to offline attacks in controlled deployments.[53] TPM-based remote attestation, combined with integrity measurement architectures, has demonstrated detection of persistent threats like container escapes and firmware tampering in empirical tests, flagging anomalies with consistent reliability across simulated attack vectors.[110] Resilience hinges on proper deployment; TPM protections falter under poor key hygiene, such as reliance on weak PINs for unsealing, which adversaries can exploit to access otherwise bound volumes despite hardware integrity.[59]Adoption Dynamics
Platform and OS Integration
Microsoft mandates TPM 2.0 hardware or firmware equivalence for installing Windows 11, which was released on October 5, 2021, to enable advanced security capabilities including enhanced BitLocker drive encryption and Windows Defender Credential Guard.[111][112] This requirement ensures platform integrity measurements and secure key storage during boot and runtime operations.[31] Windows 11 lacks a dedicated TPM troubleshooter among built-in tools. The TPM Management console, accessible viatpm.msc, allows verification of TPM status; if it reports "The TPM is ready for use," functionality is operational. Common troubleshooting involves restarting the PC and enabling TPM in BIOS/UEFI settings (often labeled as TPM, Intel PTT, or AMD fTPM), then saving and exiting. Persistent issues may require checking Device Manager under Security devices for "Trusted Platform Module 2.0," updating or reinstalling drivers, or clearing the TPM through the console's Actions menu—with recovery keys prepared for BitLocker-encrypted drives to avoid data loss. Microsoft's PC Health Check app assesses overall Windows 11 compatibility, including TPM readiness.[111]
The Linux kernel introduced TPM 2.0 driver support in version 4.0, released on April 12, 2015, allowing access to TPM functionality via the kernel's tpm_tis interface for character devices.[113] User-space utilities such as tpm2-tools, part of the TCG TPM 2.0 Software Stack, facilitate key generation, attestation, and sealing operations on distributions supporting UEFI boot.[114] TPM 2.0 integration requires enabling the module in firmware settings, with subsequent kernel modules like tpm and tpm_tis loaded automatically upon detection.[115]
Apple's macOS on Intel-based systems employs the T2 Security Chip, introduced in 2018, as a proprietary secure enclave providing TPM-like services for Secure Boot, Touch ID authentication, and FileVault disk encryption without relying on a standard TPM module.[116] This chip handles cryptographic operations and platform measurements independently, ensuring compatibility with macOS security features while diverging from TCG specifications.[117]
Android implements partial TPM-equivalent support in select devices, such as Google Pixel smartphones starting with the Pixel 2 in 2017, where custom hardware enables remote attestation and verified boot chains akin to TPM endorsements for integrity verification.[118] Verified Boot in Android uses dm-verity for partition integrity but leverages device-specific secure elements for key derivation and boot measurements in Pixels.[119]
TPM 2.0 compatibility in modern personal computers is achieved via BIOS/UEFI firmware toggles, with discrete chips or integrated solutions like AMD fTPM and Intel PTT present in the majority of systems shipped after 2016.[120][121] These firmware-based implementations allow seamless enablement without additional hardware, supporting OS-level access once activated in setup menus.[122]