Contents

Preface

Acknowledgments

About the Authors

Part I:  Background Material

Chapter 1  Introduction to Trusted Computing

Computer Security Attacks Are Staggeringly Expensive

The Changing Threats to Computer Security

Vulnerable Programs

Malicious Programs: Viruses and Spyware/Adware

Misconfigured Programs

Social Engineering: Phishing and Pharming

Physical Theft of Data

Electronic Eavesdropping

Can Software Be Made Completely Secure?

How Can the TPM Help?

Privacy and Recovery—Special Considerations for Hardware

Summary

Endnotes

Chapter 2  Design Goals of the Trusted Platform Module

Securely Reporting the Environment: Platform Status

Storing a Record of the Boot Sequence

Reporting the Boot Sequence Record

Secure Storage

Storing Data and Symmetric Keys

Storing Asymmetric Keys

Authorization

Secure Signatures

Secure Identity

Isolation of Users in a Multiple User Environment

Internal Random Number Generation

Features Not Included

Security Analysis

Summary

Chapter 3  An Overview of the Trusted Platform Module Capabilities

Secure Storage: The Storage Root Key

Migratable Versus Non-Migratable Keys

Types of Keys

Storage Keys

Binding Keys

Identity Keys

Signature Keys

Platform Integrity

Platform Configuration Registers

The Handoff Procedure

Maintenance

Secure Signatures

Avoiding Exposure

Privacy and Multiple Signatures

Summary

Part II:  Programming Interfaces to TCG

Chapter 4  Writing a TPM Device Driver

TCG Device Driver Library

TPM 1.1b Specification Device Interface

Technical Details

Device Programming Interface

TPM 1.2 Specification Device Interface

Technical Details

Device Programming Interface

Summary

Chapter 5  Low-Level Software: Using BIOS and TDDL Directly

Talking to the TPM Through BIOS

Talking to the TPM Through TDDL

The IBM libtpm Package

Enabling and Clearing the TPM

Talking to the TPM

Getting Started with Some Simple TPM Commands

Taking Ownership

Creating and Using Keys

Checking the TPM Configuration

Summary

Chapter 6  Trusted Boot

Trusted Boot with Static Root of Trust

Dynamic Root of Trust Measurements

AMD’s Secure Virtual Machine

Proof of Locality

Summary

Chapter 7  The TCG Software Stack

TSS Design Overview

The TCG Service Provider Interface (Tspi)

TSP Object Types

Context Objects

TPM Objects

Policy Objects

Key Objects

Encrypted Data Objects

Hash Objects

PCR Composite Objects

Non-Volatile Data Objects (TSS 1.2)

Migratable Data Objects (TSS 1.2)

Delegation Family Objects (TSS 1.2)

Direct Anonymous Attestation (DAA) Objects (TSS 1.2)

TSS Return Codes

TSS Memory Management

Portable Data

Persistent Key Storage

Signing and Verifying

Setting Callback Functions

The TSS Validation Data Structure

Summary

Chapter 8  Using TPM Keys

Creating a Key Hierarchy

Utility Functions

Summary

Chapter 9  Using Symmetric Keys

Data Binding

Sample Code

Data Sealing

Sample Code

Encrypting Files

Summary

Chapter 10  The TSS Core Service (TCS)

Overview of a TCS

How the TCS Manages Finite Resources

Further Abstracting the TCS Abstraction

Why a TCS Is Exposed Locally and Remotely

Utilizing and Implementing a TCS

Getting Started

Why WSDL Was Chosen

Brief Breakdown of the .wsdl File

The Header

The <types> Section

InParms and OutParms in the Complex Types

The Messages

The Operations in portType

The Operations in the Binding

The Service

Summary of the WSDL File

Using the WSDL File

The Ideal Situation

Example Using gSOAP

Using the gSOAP Stubs

Privacy Concerns with the TCS

Addressing Privacy

Grouping Desirable Functions

Summary

Chapter 11  Public Key Cryptography Standard #11

PKCS#11 Overview

A PKCS#11 TPM Token

RSA Key Types

RSA Key Restrictions

Administration

Design Requirements

openCryptoki’s Design

Migration

Summary

Part III:  Architectures

Chapter 12  Trusted Computing and Secure Storage

Linking to Symmetric Algorithms

Encrypting Files to Send to Someone Else on the Net Without a Public Key

Encrypting Files to Send to Someone Else on the Net with a Known Public Key

Encrypting Files for Storage on Your Hard Disk

Encrypting Files for Storage on a Group Hard Disk for Group Access

Encrypting Files for Storage in a Backup Facility

Locking Data to Specific PCs

Step 1

Step 2

Step 3

Step 4

Content Protection

Secure Printing

Intranet

Internet

Secure Faxing

Super Secure Migratable Storage

Summary

Chapter 13  Trusted Computing and Secure Identification

Logon Password Storage

VPN Endpoints

Delegation of Authority

Delegation Without Allowing Further Migration

Credit Card Endpoints

Multiple Users on a Single System

Secure Hoteling

Creating a PKI with the Endorsement Key

Links to Biometrics

Links to Smart Cards

Smart Memory Cards and TPMs

Smart Signing Cards and TPMs

Virtual Dongles

Trusted Endpoints

Medical Solutions for HIPAA Compliance

COTS Security Solutions for the Military

Working with IP Telephony

Working with IPSec

Working with Service Meters

Working with Network Switches

Summary

Chapter 14  Administration of Trusted Devices

Secure Backup/Maintenance

Assignment of Key Certificates

Secure Time Reporting

Key Recovery

TPM Tools

Summary

Chapter 15  Ancillary Hardware

Trusted Path

Special Keyboards

Trusted Display

Summary

Chapter 16  Moving from TSS 1.1 to TSS 1.2

Certified Migratable Keys

Commands

Tspi_TPM_CMKSetRestrictions

Tspi_Key_CMKCreateBlob

Tspi_Key_MigrateKey

Tspi_TPM_CMKApproveMA

Tspi_TPM_CMKCreateTicket

Tspi_Key_CMKConvertMigration

Delegation

Tspi_TPM_Delegate_AddFamily

Tspi_TPM_Delegate_GetFamily

Tspi_TPM_Delegate_InvalidateFamily

Tspi_TPM_Delegate_CreateDelegation

Tspi_TPM_Delegate_CacheOwnerDelegation

Tspi_TPM_Delegate_UpdateVerificationCount

Tspi_TPM_Delegate_VerifyDelegation

Tspi_TPM_Delegate_ReadTables

Direct Anonymous Attestation

Tspi_TPM_DAA_JoinInit

Tspi_TPM_DAA_JoinCreateDaaPubKey

Tspi_TPM_DAA_JoinStoreCredential

Tspi_TPM_DAA_Sign

Tspi_TPM_DAA_IssuerKeyVerification

Tspi_DAA_IssueSetup

Tspi_DAA_IssueInit

Tspi_TPM_DAA_VerifyInit

Tspi_TPM_DAA_VerifySignature

Tspi_TPM_DAA_RevokeSetup

Tspi_TPM_DAA_ARDecrypt

Locality

PCRs—New Behavior

NVRAM

Commands

Tspi_NV_DefineSpace

Tspi_NV_ReleaseSpace

Tspi_NV_WriteValue

Tspi_NV_ReadValue

Auditing Functions

Tspi_TPM_SetOrdinalAuditStatus

Tspi_TPM_GetAuditDigest

Monotonic Counter

Tspi_TPM_ReadCurrentCounter

Tick Counter

Tspi_TPM_ReadCurrentTicks

Tspi_TPM_TickStampBlob

SOAP

Transport Session

Tspi_Context_SetTransEncryptionKey

Tspi_Context_CloseSignTransport

Administrative and Convenience Functions

Commands

Tspi_TPM_CreateRevocableEndorsementKey

Tspi_TPM_RevokeEndorsementKey

Tcsi_Admin_TSS_SessionPerLocality

Tcsi_Admin_TSS_MaxTimePerLocality

Tspi_TPM_CheckMaintenancePolicy

Tspi_Context_RegisterKey

Tspi_Context_UnregisterKey

Tspi_TPM_KeyControlOwner

Tcsi_EnumRegisteredKeys

Tspi_GetRegisteredKeyByUUID

Tspi_Context_GetRegisteredKeyByPublicInfo

Tspi_Context_GetRegisteredKeysByUUID

Tspi_Context_GetRegisteredKeysByUUID2

Tspi_EncodeDER_TssBlob

Tspi_DecodeBER_TssBlob

Example Program

Summary

Part IV:  Appendixes

Appendix A  TPM Command Reference

Appendix B  TSS Command Reference

Appendix C  Function Library

Appendix D  TSS Functions Grouped by Object and API Level

Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.133.147.87