Preface |
|
xvii | |
Acknowledgments |
|
xxv | |
About the Authors |
|
xxvii | |
Part I: Background Material |
|
1 | |
|
Chapter 1 Introduction to Trusted Computing |
|
|
3 | |
|
Computer Security Attacks Are Staggeringly Expensive |
|
|
3 | |
|
The Changing Threats to Computer Security |
|
|
4 | |
|
|
5 | |
|
Malicious Programs: Viruses and Spyware/Adware |
|
|
7 | |
|
|
7 | |
|
Social Engineering: Phishing and Pharming |
|
|
7 | |
|
|
8 | |
|
|
8 | |
|
Can Software Be Made Completely Secure? |
|
|
9 | |
|
|
9 | |
|
Privacy and Recovery—Special Considerations for Hardware |
|
|
11 | |
|
|
12 | |
|
|
12 | |
|
Chapter 2 Design Goals of the Trusted Platform Module |
|
|
13 | |
|
Securely Reporting the Environment: Platform Status |
|
|
14 | |
|
Storing a Record of the Boot Sequence |
|
|
14 | |
|
Reporting the Boot Sequence Record |
|
|
17 | |
|
|
18 | |
|
Storing Data and Symmetric Keys |
|
|
19 | |
|
|
19 | |
|
|
20 | |
|
|
22 | |
|
|
23 | |
|
Isolation of Users in a Multiple User Environment |
|
|
23 | |
|
Internal Random Number Generation |
|
|
24 | |
|
|
25 | |
|
|
26 | |
|
|
28 | |
|
Chapter 3 An Overview of the Trusted Platform Module Capabilities |
|
|
29 | |
|
Secure Storage: The Storage Root Key |
|
|
29 | |
|
Migratable Versus Non-Migratable Keys |
|
|
34 | |
|
|
35 | |
|
|
36 | |
|
|
36 | |
|
|
36 | |
|
|
36 | |
|
|
37 | |
|
Platform Configuration Registers |
|
|
37 | |
|
|
39 | |
|
|
39 | |
|
|
40 | |
|
|
41 | |
|
Privacy and Multiple Signatures |
|
|
41 | |
|
|
42 | |
Part II: Programming Interfaces to TCG |
|
43 | |
|
Chapter 4 Writing a TPM Device Driver |
|
|
45 | |
|
TCG Device Driver Library |
|
|
46 | |
|
TPM 1.1 b Specification Device Interface |
|
|
47 | |
|
|
47 | |
|
Device Programming Interface |
|
|
48 | |
|
TPM 1.2 Specification Device Interface |
|
|
50 | |
|
|
51 | |
|
Device Programming Interface |
|
|
53 | |
|
|
58 | |
|
Chapter 5 Low-Level Software: Using BIOS and TDDL Directly |
|
|
59 | |
|
Talking to the TPM Through BIOS |
|
|
59 | |
|
Talking to the TPM Through TDDL |
|
|
62 | |
|
|
62 | |
|
Enabling and Clearing the TPM |
|
|
63 | |
|
|
63 | |
|
Getting Started with Some Simple TPM Commands |
|
|
64 | |
|
|
66 | |
|
|
66 | |
|
Checking the TPM Configuration |
|
|
67 | |
|
|
68 | |
|
|
69 | |
|
Trusted Boot with Static Root of Trust |
|
|
69 | |
|
Dynamic Root of Trust Measurements |
|
|
71 | |
|
AMD's Secure Virtual Machine |
|
|
72 | |
|
|
75 | |
|
|
76 | |
|
Chapter 7 The TCG Software Stack |
|
|
77 | |
|
|
77 | |
|
The TCG Service Provider Interface (Tspi) |
|
|
79 | |
|
|
79 | |
|
|
80 | |
|
|
81 | |
|
|
82 | |
|
|
85 | |
|
|
87 | |
|
|
88 | |
|
|
89 | |
|
Non-Volatile Data Objects (TSS 1.2) |
|
|
91 | |
|
Migratable Data Objects (TSS 1.2) |
|
|
92 | |
|
Delegation Family Objects (TSS 1.2) |
|
|
92 | |
|
Direct Anonymous Attestation (DAA) Objects (TSS 1.2) |
|
|
92 | |
|
|
93 | |
|
|
94 | |
|
|
94 | |
|
|
95 | |
|
|
97 | |
|
Setting Callback Functions |
|
|
99 | |
|
The TSS Validation Data Structure |
|
|
101 | |
|
|
102 | |
|
|
103 | |
|
|
103 | |
|
|
104 | |
|
|
124 | |
|
Chapter 9 Using Symmetric Keys |
|
|
127 | |
|
|
127 | |
|
|
130 | |
|
|
132 | |
|
|
133 | |
|
|
136 | |
|
|
138 | |
|
Chapter 10 The TSS Core Service (TCS) |
|
|
141 | |
|
|
141 | |
|
How the TCS Manages Finite Resources |
|
|
142 | |
|
Further Abstracting the TCS Abstraction |
|
|
144 | |
|
Why a TCS Is Exposed Locally and Remotely |
|
|
144 | |
|
Utilizing and Implementing a TCS |
|
|
145 | |
|
|
145 | |
|
|
146 | |
|
Brief Breakdown of the .wsdl File |
|
|
147 | |
|
|
147 | |
|
|
|
InParms and OutParms in the Complex Types |
|
|
149 | |
|
|
150 | |
|
The Operations in portType |
|
|
150 | |
|
The Operations in the Binding |
|
|
151 | |
|
|
151 | |
|
|
151 | |
|
|
151 | |
|
|
152 | |
|
|
152 | |
|
|
153 | |
|
Privacy Concerns with the TCS |
|
|
154 | |
|
|
154 | |
|
Grouping Desirable Functions |
|
|
154 | |
|
|
155 | |
|
Chapter 11 Public Key Cryptography Standard #11 |
|
|
157 | |
|
|
158 | |
|
|
158 | |
|
|
158 | |
|
|
159 | |
|
|
161 | |
|
|
162 | |
|
|
162 | |
|
|
169 | |
|
|
178 | |
Part III: Architectures |
|
179 | |
|
Chapter 12 Trusted Computing and Secure Storage |
|
|
181 | |
|
Linking to Symmetric Algorithms |
|
|
181 | |
|
Encrypting Files to Send to Someone Else on the Net Without a Public Key |
|
|
183 | |
|
Encrypting Files to Send to Someone Else on the Net with a Known Public Key |
|
|
190 | |
|
Encrypting Files for Storage on Your Hard Disk |
|
|
191 | |
|
Encrypting Files for Storage on a Group Hard Disk for Group Access |
|
|
194 | |
|
Encrypting Files for Storage in a Backup Facility |
|
|
196 | |
|
Locking Data to Specific PCs |
|
|
198 | |
|
|
198 | |
|
|
199 | |
|
|
199 | |
|
|
199 | |
|
|
200 | |
|
|
201 | |
|
|
201 | |
|
|
202 | |
|
|
202 | |
|
Super Secure Migratable Storage |
|
|
203 | |
|
|
205 | |
|
Chapter 13 Trusted Computing and Secure Identification |
|
|
207 | |
|
|
208 | |
|
|
208 | |
|
|
210 | |
|
Delegation Without Allowing Further Migration |
|
|
211 | |
|
|
211 | |
|
Multiple Users on a Single System |
|
|
213 | |
|
|
214 | |
|
Creating a PKI with the Endorsement Key |
|
|
216 | |
|
|
218 | |
|
|
220 | |
|
Smart Memory Cards and TPMs |
|
|
220 | |
|
Smart Signing Cards and TPMs |
|
|
220 | |
|
|
221 | |
|
|
221 | |
|
Medical Solutions for HIPAA Compliance |
|
|
222 | |
|
COTS Security Solutions for the Military |
|
|
225 | |
|
Working with IP Telephony |
|
|
226 | |
|
|
226 | |
|
Working with Service Meters |
|
|
227 | |
|
Working with Network Switches |
|
|
228 | |
|
|
230 | |
|
Chapter 14 Administration of Trusted Devices |
|
|
231 | |
|
Secure Backup/Maintenance |
|
|
231 | |
|
Assignment of Key Certificates |
|
|
235 | |
|
|
237 | |
|
|
239 | |
|
|
240 | |
|
|
241 | |
|
Chapter 15 Ancillary Hardware |
|
|
243 | |
|
|
243 | |
|
|
244 | |
|
|
246 | |
|
|
247 | |
|
Chapter 16 Moving from TSS 1.1 to TSS 1.2 |
|
|
249 | |
|
Certified Migratable Keys |
|
|
249 | |
|
|
250 | |
|
Tspi_TPM_CMKSetRestrictions |
|
|
250 | |
|
|
250 | |
|
|
251 | |
|
|
252 | |
|
|
252 | |
|
Tspi_Key_CMKConvertMigration |
|
|
252 | |
|
|
253 | |
|
Tspi_TPM_Delegate_AddFamily |
|
|
255 | |
|
Tspi_TPM_Delegate_GetFamily |
|
|
256 | |
|
Tspi_TPM_Delegate_InvalidateFamily |
|
|
256 | |
|
Tspi_TPM_Delegate_CreateDelegation |
|
|
257 | |
|
Tspi_TPM_Delegate_CacheOwnerDelegation |
|
|
257 | |
|
Tspi_TPM_Delegate_UpdateVerificationCount |
|
|
258 | |
|
Tspi_TPM_Delegate_VerifyDelegation |
|
|
259 | |
|
Tspi_TPM_Delegate_ReadTables |
|
|
259 | |
|
Direct Anonymous Attestation |
|
|
260 | |
|
|
262 | |
|
Tspi_TPM_DAA JoinCreateDaaPubKey |
|
|
263 | |
|
Tspi_TPM_DAA_JoinStoreCredential |
|
|
264 | |
|
|
264 | |
|
Tspi_TPM_DAA_IssuerKeyVerification |
|
|
265 | |
|
|
265 | |
|
|
266 | |
|
|
267 | |
|
Tspi_TPM_DAA_VerifySignature |
|
|
267 | |
|
|
268 | |
|
|
268 | |
|
|
269 | |
|
|
269 | |
|
|
270 | |
|
|
271 | |
|
|
271 | |
|
|
271 | |
|
|
272 | |
|
|
272 | |
|
|
273 | |
|
Tspi_TPM_SetOrdinalAuditStatus |
|
|
273 | |
|
|
274 | |
|
|
275 | |
|
Tspi_TPM_ReadCurrentCounter |
|
|
275 | |
|
|
276 | |
|
Tspi_TPM_ReadCurrentTicks |
|
|
276 | |
|
|
276 | |
|
|
277 | |
|
|
277 | |
|
Tspi_Context_SetTransEncryptionKey |
|
|
278 | |
|
Tspi_Context_CloseSignTransport |
|
|
278 | |
|
Administrative and Convenience Functions |
|
|
279 | |
|
|
279 | |
|
Tspi_TPM_CreateRevocableEndorsementKey |
|
|
279 | |
|
Tspi_TPM_RevokeEndorsementKey |
|
|
280 | |
|
Tcsi_Admin_TSS_SessionPerLocality |
|
|
281 | |
|
Tcsi_Admin_TSS_MaxTimePerLocality |
|
|
282 | |
|
Tspi_TPM_CheckMaintenancePolicy |
|
|
282 | |
|
|
283 | |
|
Tspi_Context_UnregisterKey |
|
|
284 | |
|
|
284 | |
|
|
285 | |
|
Tspi_GetRegisteredKeyByUUID |
|
|
285 | |
|
Tspi_Context_GetRegisteredKeyByPublicInfo |
|
|
286 | |
|
Tspi_Context_GetRegisteredKeysByUUID |
|
|
287 | |
|
Tspi_Context_GetRegisteredKeysByUUID2 |
|
|
287 | |
|
|
288 | |
|
|
289 | |
|
|
289 | |
|
|
290 | |
Part IV: Appendixes |
|
291 | |
|
Appendix A TPM Command Reference |
|
|
293 | |
|
Appendix B TSS Command Reference |
|
|
303 | |
|
Appendix C Function Library |
|
|
321 | |
|
Appendix D TSS Functions Grouped by Object and API Level |
|
|
323 | |
Index |
|
333 | |