第1章 引论 1
1.1 信任与计算 1
1.2 可信计算平台的实例 2
1.3 设计与应用 5
1.4 本书结构 6
第2章 动机说明 8
2.1 属性 8
2.2 基本用途 9
2.3 基本用途实例 10
2.4 放置和利益 12
2.5 TCP的放置实例 13
2.6 观点辩论 15
2.7 进一步的阅读材料 16
第3章 攻击 17
3.1 物理攻击 19
3.1.1 没有物理保护的敏感设备 19
3.1.2 单芯片设备 20
3.1.3 多芯片设备 21
3.2 软件攻击 21
3.2.1 缓冲区溢出 22
3.2.2 不可预期的输入 22
3.2.3 语义解释不匹配 23
3.2.4 检查时间与使用时间 24
3.2.6 设计缺陷 25
3.2.5 原子性 25
3.3 旁通道分析 26
3.3.1 计时攻击 27
3.3.2 能量攻击 29
3.3.3 其他方法 30
3.4 未记录的功能 31
3.4.1 例:微控制器内存 32
3.4.2 例:Flash内存 32
3.4.3 例:CPU特权 33
3.5 擦除数据 34
3.6 系统环境 35
3.7.2 抗篡改 36
3.7.1 篡改留证 36
3.7 防御策略 36
3.7.3 篡改检测 37
3.7.4 篡改响应 37
3.7.5 操作界限 37
3.8 进一步的阅读材料 37
第4章 研究基础 38
4.1 应用和集成 38
4.1.1 Kent 38
4.1.2 ABYSS 39
4.1.3 Citadel 40
4.1.4 Dyad 41
4.2 体系结构 42
4.2.1 物理安全 42
4.2.2 硬件和软件 43
4.3 启动 44
4.4 美国国防部及相关部门 46
4.5 进一步的阅读材料 46
第5章 设计中的挑战 47
5.1 背景 47
5.1.1 个人因素 47
5.1.2 商业因素 48
5.2 障碍 48
5.2.1 硬件 49
5.2.2 软件 51
5.3 需求 54
5.3.1 商业需求 54
5.3.2 安全需求 55
5.3.3 认证执行 56
5.4 技术选择 57
5.5 进一步的阅读材料 60
第6章 平台体系结构 61
6.1 概述 61
6.2 清除秘密信息 63
6.2.1 渗透的防止和检测 63
6.2.2 篡改响应 64
6.2.3 其他物理攻击 64
6.3 秘密信息的起源 65
6.3.1 工厂的初始化 65
6.3.2 现场操作 66
6.3.3 信任制造商 67
6.4 软件威胁 68
6.4.1 软件威胁模型 68
6.4.2 硬件访问锁 69
6.4.3 秘密信息的隐私性和完整性 71
6.5 代码的完整性 72
6.5.1 代码加载和密码操作 72
6.5.2 恶意修改保护 72
6.5.3 软件重写失败的保护 73
6.5.4 存储错误保护 74
6.5.5 安全启动 74
6.6 代码的加载 75
6.6.2 权威的认证 77
6.6.1 权威 77
6.6.3 所有权 78
6.6.4 正常加载 79
6.6.5 紧急加载 81
6.7 总结 83
6.8 后续内容 84
6.9 进一步的阅读材料 84
第7章 对外认证 85
7.1 问题 85
7.1.1 基本问题 86
7.1.2 认证方法 86
7.1.3 用户和开发者场景 87
7.1.4 平台实体 87
7.1.5 秘密的保持 88
7.1.6 认证场景 89
7.1.7 内部认证 91
7.2 理论 91
7.2.1 实体声称的内容 92
7.2.2 依赖方得出的结论 93
7.2.3 依赖性 93
7.2.4 可靠性 94
7.2.5 完备性 95
7.2.6 同时具备可靠性和完备性 95
7.2.7 设计含义 96
7.3 设计和实现 97
7.3.1 分层 97
7.3.2 代码载入程序 98
7.3.3 OA管理器 99
7.3.4 命名 101
7.3.5 总结 102
7.3.6 实现 102
7.4 进一步的阅读材料 103
第8章 验证 104
8.1 验证过程 105
8.1.1 评估的演变 105
8.1.2 FIPS 140-1 106
8.1.3 验证过程 106
8.2 验证策略 107
8.3 安全属性的形式化描述 109
8.3.1 构建块 110
8.3.2 简单的不变量 111
8.3.3 控制代码 112
8.3.4 秘密保持 112
8.4 形式化验证 114
8.5 其他验证工作 116
8.6 反思 118
8.7 进一步的阅读材料 119
第9章 应用案例研究 120
9.1 基本构造模块 120
9.2 增强型Web服务器 121
9.2.1 问题 121
9.2.2 使用TCP 122
9.2.3 实现过程 127
9.3 权限管理 130
9.3.1 问题 130
9.3.2 使用TCP 131
9.3.3 实现过程 131
9.4 私有信息保护 132
9.4.1 问题 132
9.4.2 使用TCP:前景 134
9.4.3 实践过程 135
9.4.4 使用健忘电路 136
9.4.5 减少TCP存储需求 139
9.4.6 增加更新的能力 141
9.5.4 拍卖 143
9.5.3 移动代理 143
9.5 其他项目 143
9.5.2 Kerberos密钥分发中心 143
9.5.1 邮资计算器 143
9.5.5 Marianas 144
9.5.6 可信S/MIME网关 144
9.5.7 网格工具 145
9.6 经验 145
9.7 进一步的阅读材料 146
第10章 TCPA/TCG 147
10.1 基本结构 148
10.2 对外认证 151
10.3 物理攻击 152
10.5 实验 153
10.4 应用 153
10.6 TPM 1.2的变化 154
10.7 进一步的阅读材料 155
第11章 与TCPA/TCG有关的实验 156
11.1 预期的属性 156
11.2 生命周期不匹配 157
11.3 体系结构 158
11.4 实现经历 161
11.5 应用:强化的Apache 163
11.6 应用:OpenCA 164
11.7 应用:隔离证明 166
11.8 进一步的阅读材料 167
12.1 特权体系结构 168
第12章 新的研究方向 168
12.2.1 XOM 170
12.2 硬件研究 170
12.2.2 MIT AEGIS 171
12.2.3 Cerium 172
12.2.4 虚拟安全协处理 172
12.2.5 虚拟机监控器 172
12.2.6 其他 173
12.3 软件研究 174
12.3.1 基于软件的证明 174
12.4 当前的工业平台 175
12.4.1 密码协处理器和令牌 175
12.3.2 非常规软件技术 175
12.4.2 执行保护 176
12.4.3 基于能力的机器 176
12.5 未来的工业平台 176
12.5.1 LaGrande 177
12.5.2 TrustZone 178
12.5.3 NGSCB 179
12.6 安全协处理回顾 180
12.7 进一步的阅读材料 181
术语表 182
参考文献 192
关于作者 205