Trusted Platform Module
Trusted Platform Module (TPM) is an international standard for a secure cryptoprocessor, which is a dedicated microcontroller designed to secure hardware by integrating cryptographic keys into devices. TPM's technical specification was written by a computer industry consortium called Trusted Computing Group (TCG). International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC) standardized the specification as ISO/IEC 11889 in 2009.
TCG continues to revise the TPM specification. It published revision 116 of the version 1.2 of TPM specification on March 3, 2011, while the draft revision 1.07 of the version 2.0 of TPM specification was published for public review on March 13, 2014 as a library specification that provides updates to the previously published main TPM specifications. Trusted Platform Module Library Specification Revision 01.16 was released in October 2014 as the latest TPM 2.0 release.
Trusted Platform Module offers facilities for the secure generation of cryptographic keys, and limitation of their use, in addition to a random number generator. It also includes capabilities such as remote attestation and sealed storage, as follows:
- Remote attestation – creates a nearly unforgeable hash key summary of the hardware and software configuration. The program hashing the configuration data determines the extent of the summary of the software. This allows a third party to verify that the software has not been changed.
- Binding – encrypts data using TPM bind key, a unique RSA key descended from a storage key.
- Sealing – encrypts data in a similar manner to binding, but in addition specifies a state in which TPM must be in order for the data to be decrypted (unsealed).
Software can use a Trusted Platform Module to authenticate hardware devices. Since each TPM chip has a unique and secret RSA key burned in as it is produced, it is capable of performing platform authentication.
Generally, pushing the security down to the hardware level in conjunction with software provides more protection than a software-only solution. However even where a TPM is used, a key would still be vulnerable while a software application that has obtained it from TPM is using it to perform encryption/decryption operations, as has been illustrated in the case of a cold boot attack. This problem is eliminated if key(s) used in TPM are not accessible on a bus or to external programs and all encryption/decryption is done in TPM.
The United States Department of Defense (DoD) specifies that "new computer assets (e.g., server, desktop, laptop, thin client, tablet, smartphone, personal digital assistant, mobile phone) procured to support DoD will include a TPM version 1.2 or higher where required by DISA STIGs and where such technology is available." The TPM is anticipated to be used for device identification, authentication, encryption, measurement, and device integrity.
An example of use is Intel's Trusted Execution Technology (TXT). Intel's TXT is used to create a "chain of trust", and to remotely attest that a computer has a specified hardware setup and is using specified software.
The primary scope of a TPM (in combination with other TCG implementations) is to assure the integrity of a platform. In this context "integrity" means "behave as intended", and a "platform" is generically any computer platform – not limited to PCs or a particular operating system: start the power-on boot process from a trusted condition and extend this trust until the operating system has fully booted and applications are running.
Together with the BIOS, TPM forms a "root of trust": TPM contains several PCRs (Platform Configuration Registers) that allow a secure storage and reporting of security relevant metrics. These metrics can be used to detect changes to previous configurations and derive decisions how to proceed. Good examples can be found in Linux Unified Key Setup (LUKS), and in Microsoft's BitLocker Drive Encryption and PrivateCore vCage memory encryption (see below).
Therefore, the BIOS and the operating system have the primary responsibility to utilize TPM in order to assure platform integrity. Only then can applications and users running on that platform rely on its security characteristics, such as secure I/O "what you see is what you get", uncompromised keyboard entries, memory and storage operations.
Full disk encryption applications, such as SecureDoc, dm-crypt in modern Linux kernels, and BitLocker Drive Encryption in some versions of Microsoft Windows, can use this technology to protect the keys used to encrypt the computer's hard disks and provide integrity authentication for a trusted boot pathway (for example BIOS, boot sector, etc.) A number of third-party full-disk encryption products also support TPM.
Access to keys, data or systems is often protected and requires authentication by presenting a password. If the authentication mechanism is implemented in software only, the access typically is prone to "dictionary attacks". Since TPM is implemented in a dedicated hardware module, a dictionary attack prevention mechanism was built in, which effectively protects against guessing or automated dictionary attacks, while still allowing the user a sufficient and reasonable number of tries. With this hardware based dictionary attack prevention, the user can opt for shorter or weaker passwords which are more memorable. Without this level of protection, only passwords with high complexity would provide sufficient protection.
Other uses and concerns
Almost any encryption-enabled application can, in theory, make use of a TPM, including:
- digital rights management
- protection and enforcement of software licenses.
- prevention of cheating in online games.
Other uses exist, some of which give rise to privacy concerns. The "physical presence" feature of TPM addresses some of these concerns by requiring BIOS-level confirmation for operations such as activating, deactivating, clearing or changing ownership of TPM by someone who is physically present at the console of the machine.
Starting in 2006, many new laptop computers have been sold with a built-in Trusted Platform Module 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 cell phone. On a PC, either the LPC bus or the SPI bus is used to connect to the TPM.
Many manufacturers make TPMs. The Trusted Computing Group has certified TPMs manufactured by Infineon Technologies, Nuvoton, and STMicroelectronics. The Trusted Computing Group has 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.
There are five different types of TPM 2.0 implementations: discrete TPMs (dTPM), integrated TPMs, firmware TPMs (fTPM), software TPMs, and virtual TPMs. Discrete TPMs are chips that implement TPM functionality and nothing else, and are in their own semiconductor package. These implement their functions in hardware to resist software bugs and implement tamper resistance. They are therefore the most secure type of TPM. Integrated TPMs are part of another chip that implements other functionalities. 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 are software-only solutions that run in a CPU's trusted execution environment. Firmware TPMs are dependent on the trusted execution environments that they run within for security beyond what the normal execution environment provides. Since these TPMs are entirely software solutions, these TPMs are vulnerable to software bugs within themselves. AMD and Qualcomm have implemented firmware TPMs. 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 can provide, and they are vulnerable to their own software bugs. They are useful for development purposes. Virtual TPMs are provided by a hypervisor. These are therefore reliant on the hypervisor for security beyond the execution environment provided to the software running inside the virtual machine and therefore provides a security level similar to a firmware TPM.
TPM 1.2 vs TPM 2.0
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 to TPM 1.2.
|TPM 1.2||TPM 2.0|
|Specification architecture||The one-size-fits-all specification consists of three parts.||A complete specification consists of a platform-specific specification which references a common four-part TPM 2.0 library. Platform-specific specifications define what parts of the library are mandatory, optional, or banned for that platform; and detail other requirements for that platform. Platform-specific specifications include PC Client, mobile, and Automotive-Thin.|
|Algorithms||SHA-1 and RSA are required. AES is optional. Triple DES was once an optional algorithm in earlier versions of TPM 1.2, but has been banned in TPM 1.2 version 94. The MGF1 hash-based mask generation function that is defined in PKCS#1 is required.||The PC Client Platform TPM Profile (PTP) Specification requires SHA-1 and SHA-256 for hashes; RSA, ECC using the Barreto-Naehrig 256-bit curve, and 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 are required by the TCG PC Client Platform TPM Profile (PTP) Specification. Many other algorithms are also defined but are optional.|
|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. Symmetric-key algorithms and exclusive or are optional. Key generation is also required.||A random number generator, public-key cryptographic algorithms, cryptographic hash functions, symmetric-key algorithms, digital signature generation and verification, mask generation functions, exclusive or, and ECC-based Direct Anonymous Attestation using the Barreto-Naehrig 256-bit curve are required by the TCG PC Client Platform TPM Profile (PTP) Specification. The TPM 2.0 main specification also requires key generation and key derivation functions.|
|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).|
|NV RAM||Unstructured data||Unstructured data, Counter, Bitmap, Extend|
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.
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 (where the manufacturer—
Another limitation raised by VeraCrypt developers is that a TPM cannot be relied upon for security, because if the attacker has physical or administrative access to a computer and you use it afterwards, the computer could have been modified by the attacker e.g. a malicious component—such as a hardware keystroke logger—could have been used to capture the password or other sensitive information. Since the TPM does not prevent an attacker from maliciously modifying a computer, VeraCrypt will not support TPM.
Currently TPM is used by nearly all PC and notebook manufacturers, primarily offered on professional product lines.
TPM is implemented by several vendors:
- Acer, Asus, Dell, Elitegroup, Eurocom Corporation, Fujitsu, Gigabyte Technology, HP, IBM, LG, Lenovo, MSI, Panasonic, Samsung, Sony, Supermicro, Toshiba, and Wipro all provide TPM integration on their devices.
- Advantech provides TPM on many of its products, especially its Gaming boards and Energy Automation Computers.
- 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. Apple has not shipped a computer with TPM since 2006.
- Atmel manufactures 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). Atmel's TPMs support PCs and embedded devices. Atmel also provides TPM development kits to support integration of its TPM devices into various embedded designs.
- Google includes TPMs in Chromebooks as part of their security model.
- Infineon provides both TPM chips and TPM software, which is delivered as OEM versions with new computers, as well as separately by Infineon for products with TPM technology which complies to TCG standards. For example, Infineon licensed TPM management software to Broadcom Corp. in 2004.
- Microsoft operating systems Windows Vista and later use the chip in conjunction with the included disk encryption component named BitLocker. Microsoft has 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. However, in a December 2014 review of the Windows Certification Program this requirement was changed to optional. However, TPM 2.0 is required for connected standby systems.
- 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.
- Nuvoton provides TPM devices implementing Trusted Computing Group (TCG) version 1.2 and 2.0 specifications for PC applications. Nuvoton also provides TPM devices implementing these specifications for embedded systems and IoT (Internet of Things) applications via I2C and SPI host interfaces. Nuvoton's TPM complies with Common Criteria (CC) with assurance level EAL 4 augmented, FIPS 140-2 level 1 and TCG Compliance requirements, all supported within a single device.
- Oracle ships TPMs in their recent X- and T-Series Systems such as T3 or T4 series of servers. Support is included in Solaris 11.
- PrivateCore vCage uses TPM chips in conjunction with Intel Trusted Execution Technology (Intel TXT) to validate systems on bootup.
- In mobile devices security, there are some alternatives to TPM; for example, TrustKernel's T6 secure operating system simulates the functionality of TPM in mobile devices using the ARM TrustZone technology.
- VMware ESXi hypervisor has supported TPM since 4.x, and from 5.0 it is enabled by default.
- Xen hypervisor has support of virtualized TPMs. Each guest gets its own unique, emulated, software TPM.
- 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, while it is planned to also provide emulated TPMs to guests.
- Wave Systems offers client and server software which runs on all TPM chip-sets, pre-installed on several models from Dell and Gateway.
- Hardware Security Module
- Hengzhi chip
- Next-Generation Secure Computing Base
- Trusted Computing
- Unified Extensible Firmware Interface (UEFI)
- "ISO/IEC 11889-1:2009". ISO.org. International Organization for Standardization. Retrieved 29 November 2013.
- "Trusted Platform Module (TPM) Specifications". Trusted Computing Group.
- "Trusted Platform Module Library". Trusted Computing Group.
- Alin Suciu, Tudor Carean. "Benchmarking the True Random Number Generator of TPM Chips". arXiv: .
- TPM Main Specification Level 2 (PDF), Part 1 – Design Principles (Version 1.2, Revision 116 ed.), retrieved 2012-06-14,
Our definition of the RNG allows implementation of a Pseudo Random Number Generator (PRNG) algorithm. However, on devices where a hardware source of entropy is available, a PRNG need not be implemented. This specification refers to both RNG and PRNG implementations as the RNG mechanism. There is no need to distinguish between the two at the TCG specification level.
- "tspi_data_bind(3) – Encrypts data blob" (Posix manual page). Trusted Computing Group. Retrieved 2009-10-27.
- TPM Main Specification Level 2 (PDF), Part 3 – Commands (Version 1.2, Revision 116 ed.), Trusted Computing Group, retrieved 2011-06-22
- "TPM – Trusted Platform Module". IBM.
- Instruction 8500.01 (PDF). US Department of Defense. March 14, 2014. p. 43.
- Greene, James (2012). "Intel Trusted Execution Technology" (PDF) (white paper). Intel. Retrieved 2013-12-18.
- "LUKS support for storing keys in TPM NVRAM". github.com. 2013. Retrieved 2013-12-19.
- Autonomic and Trusted Computing: 4th International Conference (Google Books). ATC. 2007. Retrieved 2014-05-31.
- Pearson, Siani; Balacheff, Boris (2002). Trusted computing platforms: TCPA technology in context. Prentice Hall. ISBN 0-13-009220-7.
- "SetPhysicalPresenceRequest Method of the Win32_Tpm Class". Microsoft. Retrieved 2009-06-12.
- "TPM Certified Products List". Trusted Computing Group. Retrieved October 1, 2016.
- "TCG Vendor ID Registry" (PDF). September 23, 2015. Retrieved October 27, 2016.
- Lich, Brian (October 26, 2016). "TPM Recommendations". Microsoft TechNet.
- "Trusted Platform Module 2.0: A Brief Introduction" (PDF). October 13, 2016. Retrieved October 31, 2016.
- "Part 1: Architecture", Trusted Platform Module Library (PDF), Trusted Computing Group, 2014-10-30, retrieved 2016-10-27
- 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. ISBN 978-1430265832.
- "Section 23: Enhanced Authorization (EA) Commands", Trusted Platform Module Library; Part 3: Commands (PDF), Trusted Computing Group, 2014-03-13, retrieved 2014-09-02
- Stallman, Richard Matthew, "Can You Trust Your Computer", Project GNU, Philosophy, Free Software Foundation
- "FAQ". Retrieved 2015-01-04.
- "ECU-4784". Corporate Website. Advantech. Retrieved 2016-07-25.
- Singh, Amit, "Trusted Computing for Mac OS X", OS X book.
- "Your Laptop Data Is Not Safe. So Fix It". PC World. 20 January 2009.
- "Chromebook security: browsing more securely". Chrome Blog. Google. Retrieved 2013-04-07.
- "Windows Hardware Certification Requirements". Microsoft.
- "Windows Hardware Certification Requirements for Client and Server Systems". Microsoft.
- "TPM. Complete protection for peace of mind". Winpad 110W. MSI.
- "Oracle Solaris and Oracle SPARC T4 Servers— Engineered Together for Enterprise Cloud Deployments" (PDF). Oracle. Retrieved 2012-10-12.
- "tpmadm" (manpage). Oracle. Retrieved 2012-10-12.
- "T6: TrustZone Based Trusted Kernel". Retrieved 2015-01-12.
- Security and the Virtualization Layer, VMware.
- Enabling Intel TXT on Dell PowerEdge Servers with VMware ESXi, Dell.
- "XEN Virtual Trusted Platform Module (vTPM)". Retrieved 2015-09-28.
- "QEMU Features/TPM". qemu.org. 2012-06-07. Retrieved 2015-09-28.
- "Replacing Vulnerable Software with Secure Hardware: The Trusted Platform Module (TPM) and How to Use It in the Enterprise" (PDF). Trusted computing group. 2008. Retrieved 2014-06-07.
- "NetXtreme Gigabit Ethernet Controller with Integrated TPM1.2 for Desktops". Broadcom. 2009-05-06. Retrieved 2014-06-07.
- TPM Main Specification (TPM 1.2 specifications), Trusted Computing Group.
- TPM 1.2 Protection Profile (Common Criteria Protection Profile), Trusted Computing Group.
- TPM Library Specification (TPM 2.0 specifications), Trusted Computing Group.
- PC Client Platform TPM Profile (PTP) Specification (Additional TPM 2.0 specifications as applied to TPMs for PC clients), Trusted Computing Group.
- PC Client Protection Profile for TPM 2.0 (Common Criteria Protection Profile for TPM 2.0 as applied to PC clients), Trusted Computing Group.
- Trusted Platform Module (TPM) (Work group web page and list of resources), Trusted Computing Group.
- "OLS: Linux and trusted computing", LWN.
- Trusted Platform Module (podcast), GRC, 24:30.
- TPM Setup (for Mac OS X), Comet way.
- "The Security of the Trusted Platform Module (TPM): statement on Princeton Feb 26 paper" (PDF), Bulletin (press release), Trusted Computing Group, February 2008.
- "Take Control of TCPA", Linux journal.
- TPM Reset Attack, Dartmouth.
- Trusted Platforms (white paper), Intel, IBM Corporation.
- Garrett, Matthew, A short introduction to TPMs, Dream width.
- Martin, Andrew, Trusted Infrastructure "101" (PDF), PSU.
- Using the TPM: Machine Authentication and Attestation (PDF), Intro to trusted computing, Open security training.
- A Root of Trust for Measurement: Mitigating the Lying Endpoint Problem of TNC (PDF), CH: HSR, 2011.