第一部分 背景材料 2
第1章 可信计算概述 2
1.1计算机安全攻击所造成的损失是惊人的 2
1.2正在变化中的计算机安全威胁 2
1.2.1易受攻击的程序 3
1.2.2恶意程序:病毒和间谍软件/广告软件 4
1.2.3错误配置的程序 5
1.2.4社会工程:网络钓鱼和网络嫁接 5
1.2.5物理数据窃取 5
1.2.6电子窃听 5
1.3软件能够做到完全安全吗 6
1.4 TPM能帮我们做什么 6
1.5隐私和恢复——硬件的特殊考虑 7
1.6小结 8
1.7尾注 8
第2章 可信平台模块的设计目标 9
2.1安全地报告当前环境:平台状态 9
2.1.1存储系统启动序列的记录 10
2.1.2报告启动序列记录 12
2.2安全存储 13
2.2.1存储数据和对称密钥 13
2.2.2存储非对称密钥 14
2.2.3授权 14
2.3安全签名 16
2.4安全身份标识 17
2.5多用户环境中用户的隔离 17
2.6内部随机数产生器 18
2.7没有包含的特性 18
2.8安全性分析 19
2.9小结 20
第3章 可信平台模块功能概述 21
3.1安全存储:存储根密钥(SRK) 21
3.2可迁移密钥与不可迁移密钥 25
3.3密钥类型 26
3.3.1存储密钥 26
3.3.2绑定密钥 26
3.3.3身份密钥 26
3.3.4签名密钥 26
3.4平台完整性 27
3.4.1平台配置寄存器(PCR) 27
3.4.2移交过程 28
3.4.3密钥维护 28
3.5安全签名 29
3.5.1避免密钥泄露 29
3.5.2私密性和多种签名 29
3.6小结 30
第二部分TCG编程接口 32
第4章 编写TPM设备驱动程序 32
4.1 TCG设备驱动程序库 32
4.2 TPM 1.1b规范设备接口 33
4.2.1技术细节 33
4.2.2设备编程接口 34
4.3 TPM 1.2规范设备接口 36
4.3.1技术细节 36
4.3.2设备编程接口 38
4.4小结 42
第5章 底层软件:直接使用BIOS和TDDL 43
5.1通过BIOS与TPM进行会话 43
5.2通过TDDL与TPM进行会话 45
5.2.1 IBM的libtpm包 45
5.2.2启用和清空TPM 45
5.2.3与TPM进行会话 46
5.2.4以一些简单的TPM命令开始 46
5.3获得所有权 48
5.3.1创建和使用密钥 48
5.3.2检查TPM配置 49
5.4小结 49
第6章 可信启动 50
6.1用静态可信根实现可信启动 50
6.2动态可信度量根 51
6.3 AMD安全虚拟机 52
6.4验证Locality 54
6.5小结 55
第7章 TCG软件栈 56
7.1 TSS设计概况 56
7.2 TCG服务提供者接口(Tspi ) 57
7.3 TSP对象类型 58
7.3.1上下文对象 58
7.3.2 TPM对象 59
7.3.3策略对象 60
7.3.4密钥对象 62
7.3.5加密数据对象 63
7.3.6散列对象 63
7.3.7 PCR合成对象 64
7.3.8非易失性数据对象(TSS 1.2) 66
7.3.9可迁移数据对象(TSS 1.2 ) 67
7.3.10代理簇对象(TSS 1.2) 67
7.3.11直接匿名证明(DAA)对象(TSS 1.2) 67
7.4 TSS返回代码 67
7.5 TSS内存管理 68
7.6可移植的数据设计 68
7.7永久密钥存储 69
7.8签名和认证 71
7.9设置回调函数 73
7.10 TSS确认数据结构 74
7.11小结 75
第8章 使用TPM密钥 76
8.1创建密钥层次结构 76
8.2效用函数 76
8.3小结 91
第9章 使用对称密钥 92
9.1数据绑定 92
9.2数据密封 96
9.3加密文件 99
9.4小结 100
第10章TSS核心服务(TCS) 102
10.1 TCS概述 102
10.1.1 TCS是如何处理有限资源的 103
10.1.2对TCS抽象能力的进一步分析 104
10.1.3为什么TCS可以实现本地和远程调用 104
10.2使用和实现一个TCS 105
10.2.1开始 105
10.2.2为什么选择WSDL 105
10.3 wsdl文件的简要分析 106
10.3.1头文件 106
10.3.2〈types〉段 106
10.4复杂类型中的InParms和OutParms 108
10.5消息 108
10.6端口类型的操作 109
10.7绑定操作 109
10.8服务 109
10.8.1对WSDL文件的总结 109
10.8.2使用WSDL文件 110
10.8.3理想情况 110
10.8.4以gSOAP为例 110
10.8.5使用gSOAP桩 111
10.9与TCS相关的隐私问题 111
10.9.1解决隐私问题 112
10.9.2对需要的函数进行分组 112
10.10小结 112
第11章 公钥加密标准PKCS#11 113
11.1 PKCS#11概述 113
11.2 PKCS#11 TPM令牌 114
11.3 RSA密钥约束 114
11.4管理 116
11.5设计要求 116
11.6 openCryptoki的设计 117
11.7迁移 122
11.8小结 128
第三部分 体系结构 130
第12章 可信计算和安全存储 130
12.1与对称算法相结合 130
12.1.1加密文件并发送给网上没有公钥的其他用户 131
12.1.2加密文件并发送给网上有公钥的其他用户 136
12.1.3加密文件并存储在硬盘上 137
12.2加密文件并存储在只有组成员可以访问的组硬盘上 139
12.3加密文件并存储在备份设备中 140
12.4将数据锁定到特定的PC中 142
12.4.1步骤1 142
12.4.2步骤2 143
12.4.3步骤3 143
12.4.4步骤4 143
12.5内容保护 143
12.6安全打印 144
12.6.1内部网 144
12.6.2因特网 145
12.7安全传真 145
12.8超级安全可迁移存储 145
12.9小结 147
第13章 可信计算和安全认证 148
13.1登录口令的存储 148
13.2虚拟专用网终端 149
13.3授权委托 150
13.4不允许进一步迁移的委托 151
13.5信用卡终端 151
13.6多个用户使用单一系统 152
13.7安全的旅馆式办公 153
13.8利用背书密钥产生PKI 154
13.9与生物识别技术相连 156
13.10与智能卡相连 157
13.10.1智能存储卡和TPM 157
13.10.2智能签名卡和TPM 157
13.11虚拟看门狗技术 158
13.12可信终端 158
13.13遵循HIPAA的医学解决方法 159
13.14军事上的COTS安全解决方法 161
13.15与IP电话一起使用 161
13.16与IPSec一起使用 162
13.17与计量仪表一起使用 162
13.18与网络交换机一起使用 163
13.19小结 164
第14章 可信设备管理 165
14.1安全备份/维护 165
14.2密钥证书的分配 168
14.3安全定时报告 169
14.4密钥恢复 170
14.5 TPM工具 172
14.6小结 172
第15章 辅助硬件 173
15.1可信路径 173
15.2特殊键盘 174
15.3可信显示 175
15.4小结 176
第16章从TSS 1.1到TSS 1.2 177
16.1认证可迁移密钥(CMK) 177
16.2代理 180
16.3直接匿名证明 185
16.4 Locality 192
16.5 PCR——新行为 192
16.6 NVRAM 193
16.7审计函数 195
16.8单调计数器 196
16.9滴答计数器 197
16.10 SOAP 198
16.11传输会话 198
16.12管理函数和便利函数 199
16.13示例程序 207
16.14小结 207
第四部分 附录 210
附录A TPM命令参考 210
附录B TSS命令参考 215
附录C 函数库 224
附录D 依据对象和API级别划分TSS函数 225
索引 232