Desktop version

Home arrow Computer Science arrow A Practical Guide to TPM 2.0

Random Number Generator

In order to generate keys, a random number generator (RNG) is necessary, and early PCs generally didn't contain good RNGs. There have been several cases where poor key generation was used to break security protocols. This is true. So the standards body required that a RNG be one of the components of the first TPM.

Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin. [1]

There are many uses for a good RNG:

—Von Neumann

• Seeding the OS random number generator

• Generating nonces (random numbers) used in security protocols

• Generating ephemeral (one-time use) keys for file encryption

• Generating long-term use keys (such as keys used for storage)

• Seeding Monte Carlo software routines

NVRAM Storage

A small amount of NVRAM storage that has restricted access-control properties can be very useful in a PC. It can store keys that shouldn't be available when the machine is off, give faster access to data than decryption using public/private key pairs can, and provide a mechanism to pass information back and forth between different parts of a system. NVRAM in TPMs can be configured to control read and write capabilities separately, which means some data can be provided to a user without worrying that it will be erased by accident or malicious intent. Additionally, you can use NVRAM to store keys that are used when the PC doesn't have access to its main storage. This can happen early during the boot cycle or before a self-encrypting drive has been given its password, allowing it to be read.

Having NVRAM provides the following:

Storage for root keys for certificate chains: These are public keys to which everyone should have access—but it's very important that they not be changed.

Storage for an endorsement key (EK): An EK is stored by the manufacturer and used to decrypt certificates and pass passwords into the TPM during provisioning. In spite of misleading statements made on the Internet, the EK was designed to be privacy sensitive.

Storage for a representation of what the state of the machine ought to be: This is used by some Intel implementations using TPMs and Intel Trusted Execution Technology (TXT), where it's called a launch control policy. Like the public root key used in Unified Extensible Firmware Interface (UEFI) secure-boot implementations, this is used by the system owner to specify the state they want the machine to be in when it goes through a

controlled launch, usually of a hypervisor. The advantage over the UEFI secure-boot method is that with the TPM, the end user has full control over the contents of the NVRAM storage.

Storage for decryption keys used before the hard disk is available: For example, a key used for a self-encrypting drive.

  • [1] Monte Carlo Method (1951), John von Neumann.
< Prev   CONTENTS   Next >

Related topics