From OSx86
Revision as of 03:36, 24 November 2010 by Rpm (Talk | contribs)

Jump to: navigation, search
Posting information or discussion here related to cracking or circumventing will not be tolerated, and should be kept off-site.

Trusted Platform Module 101

What is the TPM?

The Trusted Computing Group (TCG) is an alliance of Microsoft, Intel, IBM, HP and AMD which promotes a standard for a "more secure" (i.e. under their control) PC. Their definition of security is controversial; machines built according to their specification will be more trustworthy from the point of view of software vendors and the content industry, but will be less trustworthy from the point of view of their owners. In effect, the TCG specification will transfer the ultimate control of your PC from you to whoever wrote the software it happens to be running. (Yes, even more so than at present.) For another opinion, read IBM's TCPA Misinformation Rebuttal.

The TCG project is known by a number of names. `Trusted computing' was the original one, and is still used by IBM, while Microsoft calls it `trustworthy computing' and the Free Software Foundation calls it `treacherous computing'. Other names you may see include TCPA (TCG's name before it incorporated), Palladium (the old Microsoft name for the version due to ship in 2006) and NGSCB (the new Microsoft name). Intel has just started calling it `safer computing'. Many observers believe that this confusion is deliberate - the promoters want to deflect attention from what TC actually does. Discuss TPM in our Forum

While most users do not do their own programming, for many hackers who built the industry and old time programmers, this is the latest wave of "bite the hand that fed you" restrictions on programming one's own machine. For this group, the logical endpoint of being pushed off their own machines, which can only be centrally programmed, is problematic.

A More Technical Summary of TPM

The TPM is essentially a cryptography engine (a small dedicated computer designed to do cryptographic calculations efficiently) along with a dedicated on-chip storage system that comes in two parts: open store and "write-only" store. This is essentially the same as the electronics in a crypto-smartcard (although different implementations).

The only significant functions a TPM chip can do are hashing of a block of data, encryption/decryption of a block of data using a PKI keypair, signing a block of data using a PKI keypair and secure storage of a PKI keypair. Contrary to some views (such as the one presented earlier in this article), the TPM is not a DRM system in and of itself nor does it 'lock down your computer', although it CAN be used to do this with software (which can be in the BIOS).

But first, a little discussion of PKI keys. PKI (aka Public Key Infrastructure) is an encryption system that uses two keys: a public and private key. In normal encryption systems, the 'key' is a password or PIN of some kind. The same key is used to encrypt AND decrypt, so once someone knows your key, the encryption is defeated. With PKI however, the two keys are complimentary. If you encrypt something with the public key - ONLY the private key can decrypt it, and only the public key can decrypt something encrypted with the private key. There is no known way to derive a public key from the private key or vice versa.

What this means is that if I create a key pair (a public and matching private key), I can keep the private key totally to myself (ie: private) and use it to encrypt files - then give you the public key to decrypt them without compromising my private key. Why is this useful? Because ONLY the matching public key can decrypt the file. So if my public key decrypts a file - you know, absolutely, that I encrypted it. Also, if you use MY public key to encrypt a file, you can post it publically because you know only I can decrypt it with my private key.

What makes the TPM interesting is the "write-only" store. This may seem like an odd idea - memory you can only write to but not read, but in fact, the TPM's CPU can read the write-only store - so it's really only write only to the user. Why is this useful? Well, if I store my private key in it, the only thing in the world that can use it is the TPM's CPU. Since this is soldered onto my computer's motherboard, this becomes a proof of identity - that this is indeed MY and ONLY MY computer.

That's where it becomes useful for DRM. DRM is founded on the notion of identity. If I can put a key into your write-store, then I can always use that to ensure you're the person using the data. Where the rhetoric about TPM fails is that there is nothing in the TPM design or spec that obligates anyone to use it. On most computers that have TPMs, there's a switch in the BIOS that lets you turn it off.

On the other hand, the same chip lets you create your own PKI keypair and use it to do things like real-time, highly secure hard drive encryption, or sign messages in emails, or do SSL more efficiently.

As for Macs - ALL Intel Macs come with a TPM chip and Apple uses it for OS DRM. All Macs have an Apple specific private key preinstalled into their TPM which the TPM KEXT checks against a public key to ensure that the computer is a legitimate Apple computer. This is the main reason (drivers aside) that regular PCs - even ones with a TPM - can't just run MacOS X out of the box.

More Information



Chip Information

Below is an image of the Infineon TPM from the Developers Transition Kit.

And a modified image which gives a full view of the chip:

As you can see, this chip is clearly the Infineon SLD 9630 TT1.1 or simply SLD 9630 TT1.1, which, with a simple Google search on the chip, is a "Trusted Platform Module IC", or TPM/TCPA IC (integrated circuit, aka computer chip). Infineon has a short PDF detailing the basics of its SLD 9630 chip, although it has been removed from the Infineon website. On an interesting note, the SLD 9630 is actually outdated and is no longer being advertised by Infineon. Its replacement is the SLB 9635, which is dubbed "TPM 1.2", as opposed to the "TPM 1.1" found in the SLD 9630. . . .

Powered by MediaWiki © 2021 OSx86 Project  |   InsanelyMac  |   Forum  |   OSx86 Wiki   |   Privacy policy   |   About OSx86   |   Disclaimers