24

Is TPM really worth it?

According to Wikipedia it:

  • Provides a generator of random numbers (that's okay)
  • Facilities for the secure generation of cryptographic keys for limited uses (that's okay too I guess)
  • Remote attestation (doesn't sound safe)

In the section at the bottom, it mentions some criticisms of TPM such as remote validation of software - manufacturer, not the user decides what can be run on the computer. This sounds scary.

Also, VeraCrypt doesn't support TPM which raises some concerns. If they don't trust it, why should I?

So is TPM worth it or is it just an unnecessary potential point of failure? Would my security and privacy be safer if I didn't use a computer with TPM at all? Full disk encryption with VeraCrypt sounds safe enough even for the most illegal use cases (NSA-proofed).

And then, would it be possible to remove the TPM module from a motherboard safely?

5
  • 4
    @Gillian It seems likely the TrueCrypt authors didn't understand what a TPM is for. It is not redundant and fundamentally cannot be made redundant in software. It is something that can only work in hardware. That is likely why VeraCrypt decided to add support recently to their beta builds, since they seem to have a better understanding of security.
    – forest
    Commented Jun 15, 2018 at 13:36
  • 3
    This isn't an answer, but definitely something to be aware off. I recently went through a bit of a nightmare with this. When I got my Dell XPS (about 18 months ago), I naturally enabled BitLocker which uses the TPM. This was fine, until about a week ago, I was prompted to update the BIOS, which I just did. From that point on, my Hard Drive was encrypted, and I never noted down the recovery key! I lost everything on there (happily, I had pretty much everything backed up), but still, be warned. You need to turn it off when updating your BIOS! And some might argue, that would defeat the point?
    – JMK
    Commented Jun 15, 2018 at 19:11
  • 3
    Bitlocker is junk, proven several times: engadget.com/2018/11/06/… ; but looks like some people prefer to add "-" to an answer rather than examining the situation as a whole.
    – Overmind
    Commented Feb 1, 2019 at 7:15
  • Take a look at web.archive.org/web/20240331131103/https://dolosgroup.io/blog/… . In particular: BitLocker does not utilize any encrypted communication features of the TPM 2.0 standard, which means any data coming out of the TPM is coming out in plaintext, including the decryption key for Windows. ... Getting around the TPM in this manner is akin to ignoring Fort Knox and focusing on the not-so-armored car coming out of it.
    – AJM
    Commented Aug 15 at 10:13
  • Regarding my last comment, you might argue that this is Bitlocker's fault for not using the "encrypted communication features". I argue that the TPM should have forced all communications in and out of it to be encrypted, and that this is a problem with the TPM standard.
    – AJM
    Commented Aug 15 at 10:27

4 Answers 4

35

It depends on your threat model. A TPM has multiple purposes, but the most common purpose is measured boot. That is, a TPM will verify the integrity of the BIOS, option ROMs, bootloader, and other sensitive boot components so that it is able to detect an evil maid attack or modified firmware. If your threat model includes an adversary which is able to modify firmware or software on your computer, a TPM can provide tamper-evidence to ensure that it will not go undetected.

So how does a TPM work? It's actually pretty simple when you get down to it. The TPM measures the hashes of various firmware components* and stores the hashes in registers called PCRs. If the hashes all match a known value, the TPM will unseal, allowing itself to be used to decrypt arbitrary data. What data it decrypts is up to you. Most commonly, it is part of the disk encryption key. Unless every piece of firmware and boot software has the correct hash, the TPM will not unseal and the encryption key will not be revealed. TPMs can be used for a lot more, but the idea is the same.

* Technically, the TPM is passive and cannot actively read firmware, bootloaders, or other data. Instead, a read-only component of the BIOS called the CRTM sends a hash of the BIOS to the TPM, starting the chain of trust. This component is read-only to ensure that a modified BIOS cannot lie to the TPM about its hash.

So is TPM worth it or is it just an unnecessary potential point of failure? Would my security and privacy be safer if I didn't use a computer with TPM at all? Full disk encryption with VeraCrypt sounds safe enough even for the most illegal use cases (NSA-proofed).

Remote attestation is not something you will likely need to use. It is however not at all unsafe. All it does is allow a remote device to prove to the appraiser that the firmware and software it is running matches a known-good hash. It does not allow remotely controlling the machine. It is up to the OS to do the remote connections and send the data to the TPM. The TPM itself isn't even aware that it is being used for remote attestation. In fact, remote doesn't even have to mean over a network. There are very clever implementations that use a TPM to remotely attest the computer's state to a secure USB device! There are no privacy issues with a TPM's unique private key either due to a TPM's ability to sign things anonymously using DAA, or Direct Anonymous Attestation.

Let's go even further and assume the TPM is not only useless, but downright malicious. What could it do then? Well, nothing really. It lacks the ability to send the so-called LDRQ# signal over the LPC bus which is necessary to perform a DMA attack. The only thing it could do is say "everything is OK" when in reality the firmware has been tampered with. In other words, the worst a malicious TPM could do is pretend it doesn't exist, making a malicious TPM no worse than no TPM.

It is completely possible to safely remove the TPM from the motherboard. There is nothing that requires it be there. If it is not present, you will simply not be able to verify a chain of trust to be sure that firmware has not been tampered with. Note however that many modern CPUs have an integrated TPM, but it can be easily disabled, with the same results as removing the physical one. Note that some newer versions of Windows do require a TPM's presence in order to secure the boot process. If the TPM is removed, you may need to modify the OS and UEFI settings so it no longer requires it.

In the section on the bottom, it mentions some criticisms of TPM such as remote validation of software - manufacturer, not the user decides what can be run on the computer. This sounds scary.

The worry is that, in the future, manufacturers might use the TPM to prevent you from making sensitive modifications to your system. By default, TPMs will obey only its owner. If you tell a TPM that the current state of the system is known-good, it will always check to make sure the system is in that state. If an evil manufacturer sets the TPM to believe that a known-good state is one where malicious DRM and other rights-restricting software is enabled, then we have a problem. For current TPMs, it's entirely up to you to decide what software you want to run! They don't restrict your rights.

Another criticism is that it may be used to prove to remote websites that you are running the software they want you to run, or that you are using a device which is not fully under your control. The TPM can prove to the remote server that your system's firmware has not been tampered with, and if your system's firmware is designed to restrict your rights, then the TPM is proving that your rights are sufficiently curtailed and that you are allowed to watch that latest DRM-ridden video you wanted to see. Thankfully, TPMs are not currently being used to do this, but the technology is there.

The upshot is that a TPM can prove both to you locally, and to a remote server (with the OS handling the networking, of course) that your computer is in the correct state. What counts as "correct" hinges on whoever owns the TPM. If you own the TPM, then "correct" means without bootkits or other tampering. If some company owns the TPM, it means that the system's anti-piracy and DRM features are fully functional. For the TPMs in PCs you can buy today, you are the owner.

Also, VeraCrypt doesn't support TPM which raises some concerns. If they don't trust it, why should I?

VeraCrypt actually has added support for TPM version 1.2 and experimental support for TPM version 2.0 in VeraCrypt release 1.20, although they have not yet edited their documentation to reflect this. They originally were resistant because the original TrueCrypt authors did not understand the TPM. Its purpose is not to assist with disk encryption, but to verify that the firmware and important boot software (including the VeraCrypt bootloader!) have not been tampered with.

17
  • Thank you. Is it true that there don't exist any attacks executed with physical access to the device with TPM?
    – Gillian
    Commented Jun 15, 2018 at 15:39
  • 2
    @Gillian What do you mean? A TPM can only detect modified firmware. It can't protect from other physical attacks like a hardware keylogger.
    – forest
    Commented Jun 15, 2018 at 16:15
  • 1
    Then I fail to see the point of TPM. If you can modify the firmware, why can't you solder a keylogger on the device too?
    – Gillian
    Commented Jun 15, 2018 at 16:20
  • Do you get what I mean? If you have the means to execute an attack from which TPM can protect you, you implicitly have the means to execute a different kind of attack from which TPM can't protect you.
    – Gillian
    Commented Jun 15, 2018 at 16:23
  • 2
    @Gillian Because malicious software may modify firmware (e.g. a rootkit)!
    – forest
    Commented Jun 15, 2018 at 16:29
5

In the section on the bottom, it mentions some criticisms of TPM such as remote validation of software - manufacturer, not the user decides what can be run on the computer

There is a fundamental misunderstanding here.

With remote attestation, the vendor does not decide what software runs on the hardware, but rather what hardware is allowed to run their software.

Remote attestation can be very well (as in my other answer) used or abused:

  • As part of a DRM system
  • To block devices from certain vendors based on political criteria. This is done by whitelisting
  • To implement planned obsolescence, which may be illegal in certain jurisdictions
2

Remote attestation is an optional feature.

Remote attestation requires a hardware attestation in order to work. It is currently done in iOS and Android to certify that the device is not rooted by means of certifying the bootloader is locked and enforcing Secure Boot.

There are concerns over remote attestation. These are not related by the technology itself, but from its larger use in the market.

Remote attestation cannot (easily) be used to censor software. It is just one piece of technology that requires a lot of cooperation from multiple software parts.

Remote attestation alone cannot be used from deciding whether you can run a software or not, unless it's a DRM license check. I mean, the OS decides to run applications. If the OS enforces vendor policies, and/or the software implements a framework (eg. SafetyNet) to prevent the software from running on non-certified device, that's not just the presence of the TPM.

Remote attestation is a way to enforce planned obsolescence on hardware, as old devices can be blacklisted over time. But it requires the application/OS vendor to enforce such a policy. And planed obsolescence is even illegal in certain jurisdictions like France.

Remote attestation and TPMs do not prevent developers to build their own open source tool. It does not block you from installin OSS, but perhaps you won't be able to use Netflix app on custom OS.

-6

I do not trust intel's TPM at all because it's a closed source system.

I'd rather go for TrueCrypt or anything similar at any time.

I also do not agree to use a system that prevents me from quickly deploying my own boot loaders and my own OSes. Why have to have an 'approval' to be able to use them ? I just want to use them at any time on any compatible hardware.

At this point I find TPM an annoyance at most, that potentially or practically impairs my activity.

In theory you cannot remove a TPM module, but you can disable it from the BIOS/EFI. We have not tested in sufficient MBs if physically removing does harm. A colleague did physically removed a TPM module from a MSI Z68MA-G45 G3 and the MB still functioned correctly, but I am not aware if there were later implications regarding functionality.

Update

Note: Updating your BIOS can make your system lose all data if you use bitlocker encryption.

Note 2: Bitlocker is a too big fail to be worth anything.

7
  • 10
    You have completely misunderstood what a TPM does and what it is for. It in no way whatsoever prevents you from using your own bootloader or OS. Secure boot/BootGuard != TPM. Also, comparing TrueCrypt and a TPM is comparing apples to orangutans. And why in the world would removing a TPM cause harm? It's literally a passive device.
    – forest
    Commented Jun 15, 2018 at 12:50
  • 1
    Still, if it's soldered on the MB there's a risk to it.
    – Overmind
    Commented Jun 19, 2018 at 5:20
  • Are TPMs ever actually soldered to the board? This might be the case for very compact laptops or embedded devices, but traditional computers have it plugged into the LPC bus and it is fully removable. On systems where it is soldered on (or epoxied on), the only way you could damage the system by removing it is if you do so incorrectly and end up breaking something. An amateur might break something even if it is removable, simply by damaging sensitive components when rummaging around in the guts of the computer. But is its absence alone dangerous? Not at all.
    – forest
    Commented Jun 19, 2018 at 5:24
  • 1
    Updating your BIOS can make your system lose all data if you use bitlocker encryption. In fact, it must be suspended prior to upgrading. Upgrading BIOS using a Windows EXE utility supplied by the vendor 99,9% the times disables BitLocker temporarily Commented Mar 8, 2021 at 15:18
  • 1
    If you can instant-disable it and still have your data it means it's not working correctly in the 1st place.
    – Overmind
    Commented Mar 16, 2021 at 11:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .