• caglararli@hotmail.com
  • 05386281520

How and why can a TPM be used for disk encryption or DRM?

Çağlar Arlı      -    7 Views

How and why can a TPM be used for disk encryption or DRM?

I don't know much about TPMs, and I admittedly don't know as much about cryptography as I'd like to, though I am quite familiar with basic concepts. For the past two hours I've been attempting to improve this situation by trying to gain an understanding of how TPMs work and how they're used for the purposes of disk encryption and digital rights management.

I have, however, become stuck. None of the articles I found manage to describe an architecture that is even remotely secure. They list many neat features of TPMs, like secure cryptographic key storage, platform configuration registers and sealing/unsealing stuff. But fail to explain how all of these features come together to create an environment where a third (or even first, for that matter) party can trust the software that is being executed on the hardware in question.

Let's say you have some form of disk encryption on that uses the TPM to securely store the key used to unlock the disk at boot time. The TPM only makes this key available if the value stored in a platform configuration register (PCR) being correct. And we all know that you can only append stuff to PCR, not set it directly. But the way people put it, is that software that, generally speaking, should not be trusted unequivocally, is responsible for appending values to the PCR that the TPM then checks. So if you rely on what people are saying, and only on it, this just means that this software can be read from memory, executed on an emulator, and be used to compute correct values to append to the PCR to ultimately extract the key used for the disk encryption.

Let's now instead say that you're a publisher of some sort. You want to control the distribution of digital media in a way that your customers can view it on authorized devices, but not copy it to other devices. For that, you obviously need some sort of trusted software running on a hypothetical customer's hardware. Many articles suggest that this sort of trust can be established using a TPM, and some even make claims as bold as "TPM can see all of the software running on your system and make a signed report", but again, none of them actually describe the process used to establish this trust, and what feels like even less than none describe a process that I perceive as actually secure.

I understand that the TPM architecture is designed by people way smarter than me, and is thus probably quite secure. It's just that I have become increasingly frustrated that it is so incredibly hard to find any adequate description of principles by which this security is guaranteed.

Can someone please explain it to me, in more or less simple terms? I don't mind a little cryptography. In fact, I very much like it. But when people start throwing around terms like "endorsment key" before even explaining the general underlying principle of the technology in question, I become very sad and my attention just wanders off elsewhere.

If not, can you point to some resources on the matter? Preferably ones where you don't have to read 50 US letter sized pages of definitions written in 8 pt font just to get to the stuff you're looking for, if those are available. If not, I guess 50 pages it is.