硬件设备安全攻防实战

978-7-115-66002-2
作者: 科林·奥弗林(Colin O'Flynn)
译者: 李海粟(@backahasten)
编辑: 傅道坤
分类: 其他

图书目录:

第 1章 牙科卫生:嵌入式安全简介 1

1.1 硬件组件 1

1.2 软件组件 3

1.2.1 初始引导代码 3

1.2.2 引导加载程序 4

1.2.3 可信执行环境操作系统和可信应用程序 4

1.2.4 固件映像 5

1.2.5 主操作系统内核和应用程序 5

1.3 硬件威胁建模 5

1.3.1 什么是安全 6

1.3.2 攻击树 8

1.4 剖析攻击者 8

1.5 攻击类型 10

1.5.1 针对硬件的软件攻击 10

1.5.2 PCB级攻击 12

1.5.3 逻辑攻击 13

1.5.4 非入侵攻击 14

1.5.5 芯片入侵攻击 14

1.6 资产和安全目标 17

1.6.1 二进制代码的机密性和完整性 18

1.6.2 密钥的机密性和完整性 18

1.6.3 远程引导证明 19

1.6.4 个人可识别信息的保密性和完整性 20

1.6.5 传感器数据完整性和机密性 20

1.6.6 内容机密性保护 20

1.6.7 安全性和故障容忍性 21

1.7 对策 21

1.7.1 保护 21

1.7.2 检测 22

1.7.3 响应 22

1.8 攻击树示例 22

1.8.1 识别与利用 25

1.8.2 可扩展性 25

1.8.3 分析攻击树 25

1.8.4 对硬件攻击路径进行评分 25

1.9 披露安全问题 27

1.10 总结 28

第 2章 伸出手,触摸我,触摸你:硬件外围设备接口 29

2.1 电子基础知识 29

2.1.1 电压 30

2.1.2 电流 30

2.1.3 电阻 30

2.1.4 欧姆定律 30

2.1.5 交流/直流 31

2.1.6 电阻 31

2.1.7 功率 32

2.2 数字通信逻辑协议 32

2.2.1 逻辑电平 33

2.2.2 高阻抗、上拉和下拉 34

2.2.3 推挽vs.三态vs.集电极开路或漏极开路 35

2.2.4 异步vs.同步vs.嵌入式时钟 36

2.2.5 差分信号 37

2.3 低速串行接口 38

2.3.1 通用异步接收发送设备串行 38

2.3.2 串行外围接口 40

2.3.3 内部IC接口 42

2.3.4 安全数字输入/输出和嵌入式多媒体卡 45

2.3.5 CAN总线 46

2.3.6 JTAG和其他调试接口 47

2.4 并行接口 50

2.5 高速串行接口 52

2.5.1 通用串行总线 52

2.5.2 PCI Express 54

2.5.3 以太网 54

2.6 测量 54

2.6.1 万用表:伏特 55

2.6.2 万用表:连通性 55

2.6.3 数字示波器 55

2.6.4 逻辑分析仪 59

2.7 总结 59

第3章 接头套管:识别组件和收集信息 60

3.1 信息收集 60

3.1.1 联邦通信委员会备案 61

3.1.2 专利 62

3.1.3 数据手册和原理图 64

3.1.4 信息搜索示例:USB armory设备 65

3.2 拆解示例 71

3.2.1 识别电路板上的IC 71

3.2.2 小型引线封装:SOIC、SOP和QFP 73

3.2.3 无引线的封装:SO和QFN 74

3.2.4 球栅格阵列 75

3.2.5 芯片级封装 77

3.2.6 DIP、通孔和其他 77

3.3 PCB上的IC封装示例 78

3.4 映射PCB 83

3.5 从固件中提取信息 88

3.5.1 获取固件映像 88

3.5.2 分析固件映像 90

3.6 总结 96

第4章 瓷器店里的公牛:引入故障注入 97

4.1 故障安全机制 98

4.1.1 规避固件签名验证 98

4.1.2 获得对锁定功能的访问权限 98

4.1.3 恢复加密密钥 99

4.2 OpenSSH故障注入练习 99

4.2.1 将故障注入C代码 99

4.2.2 将故障注入机器代码 101

4.3 故障注入器 102

4.3.1 目标设备和故障目标 103

4.3.2 故障注入工具 103

4.3.3 目标准备和控制 104

4.4 故障查找方法 108

4.4.1 发现故障原语 108

4.4.2 搜索有效故障 111

4.4.3 搜索策略 117

4.4.4 分析结果 119

4.5 总结 121

第5章 不要舔探头:如何注入故障 122

5.1 时钟故障攻击 122

5.1.1 亚稳态 126

5.1.2 故障敏感性分析 128

5.1.3 局限性 129

5.1.4 所需硬件 129

5.1.5 时钟故障注入参数 131

5.2 电压故障注入 132

5.2.1 产生电压故障 132

5.2.2 构建基于多路复用器的注入器 133

5.2.3 短接攻击 136

5.2.4 使用短接器攻击树莓派 137

5.2.5 电压故障注入参数搜索 142

5.3 电磁故障注入攻击 142

5.3.1 产生电磁故障 144

5.3.2 电磁故障注入的架构 144

5.3.3 EMFI脉冲形状和宽度 146

5.3.4 电磁故障注入的搜索参数 147

5.4 光学故障注入 147

5.4.1 芯片准备 148

5.4.2 正面和背面攻击 149

5.4.3 激光源 150

5.4.4 光学故障注入设置 151

5.4.5 光学故障可配置注入参数 152

5.5 基底偏置注入 152

5.6 硬件故障的触发 154

5.7 总结 156

第6章 测试时间:故障注入实验室 157

6.1 第 一个例子:简单的循环 158

6.2 第二个例子:注入有用的故障 161

6.2.1 使用短接电路故障来攻击配置字段 161

6.2.2 多路复用故障注入 174

6.3 第三个例子:差分故障分析 179

6.3.1 一点RSA数学知识 179

6.3.2 从目标获取正确的签名 182

6.4 总结 185

第7章 X标记现场:Trezor One钱包内存转储 186

7.1 攻击介绍 186

7.2 Trezor One钱包内部细节 187

7.3 USB读取请求故障 188

7.4 反汇编代码 190

7.5 构建固件,进行故障注入攻击 191

7.6 USB触发和时序 194

7.7 实践案例 197

7.7.1 设置 197

7.7.2 查看故障注入代码 198

7.7.3 运行代码 201

7.7.4 确认转储 202

7.7.5 微调EM脉冲 203

7.7.6 基于USB消息的时序调整 203

7.8 总结 204

第8章 我有力量:功率分析简介 206

8.1 定时攻击 207

8.1.1 硬盘驱动器定时攻击 209

8.1.2 定时攻击的功率测量 212

8.2 简单功率分析 212

8.2.1 在RSA上应用SPA 213

8.2.2 将SPA应用于RSA和Redux 215

8.2.3 ECDSA上的SPA 217

8.3 总结 222

第9章 测试时间:简单功率分析 223

9.1 家庭实验室 223

9.1.1 构建基本硬件设置 223

9.1.2 购买设备 227

9.1.3 准备目标代码 227

9.1.4 构建安装程序 229

9.2 整合:SPA攻击 231

9.2.1 准备目标 231

9.2.2 准备示波器 232

9.2.3 信号的分析 234

9.2.4 编写通信和分析脚本 234

9.2.5 编写攻击脚本 237

9.3 ChipWhisperer-Nano示例 240

9.3.1 构建和加载固件 240

9.3.2 通信分析 240

9.3.3 捕获轨迹 241

9.3.4 从轨迹到攻击 243

9.4 总结 246

第 10章 追踪差异:基础差分功率分析 247

10.1 微控制器内部 248

10.1.1 改变电容器上的电压 248

10.1.2 从电源到数据再到电源 250

10.2 直观的异或运算示例 251

10.3 差分功率分析攻击 253

10.3.1 使用泄露假设预测功率 253

10.3.2 Python中的DPA攻击 256

10.4 了解你的敌人:高级加密标准速成课程 260

10.5 相关功率分析攻击 262

10.5.1 相关系数 263

10.5.2 使用CPA攻击AES-128 267

10.5.3 与目标设备通信 271

10.5.4 示波器捕获速率 272

10.6 总结 272

第 11章 更加极客:高级功率分析 273

11.1 主要障碍 274

11.2 衡量成功 276

11.2.1 基于成功率的度量 276

11.2.2 基于熵的度量 277

11.2.3 相关峰值进度 278

11.2.4 相关峰值高度 279

11.3 真实设备上的测量 280

11.3.1 设备操作 280

11.3.2 测量探头 282

11.3.3 确定敏感网络 285

11.3.4 自动探头扫描 285

11.3.5 示波器设置 286

11.4 轨迹集分析与处理 289

11.4.1 分析技术 290

11.4.2 信号处理 299

11.4.3 使用卷积神经网络的深度学习 302

11.5 总结 304

第 12章 测试时间:高级差分功率分析 305

12.1 引导加载程序简介 305

12.1.1 引导加载程序通信协议 306

12.1.2 AES-256 CBC的详细信息 307

12.1.3 攻击AES-256 307

12.2 获取和构建引导加载程序代码 309

12.3 运行目标并捕获轨迹 309

12.3.1 计算CRC 310

12.3.2 与引导加载程序通信 310

12.3.3 捕获概览轨迹 310

12.3.4 捕获详细轨迹 312

12.4 分析 312

12.4.1 第 14轮密钥 313

12.4.2 第 13轮密钥 314

12.5 恢复初始向量 317

12.5.1 要捕获的内容 317

12.5.2 获取第 一条轨迹 318

12.5.3 获取剩余轨迹 319

12.5.4 分析 319

12.6 攻击签名 323

12.6.1 攻击理论 323

12.6.2 功率分析轨迹 323

12.6.3 分析 324

12.6.4 所有4字节 325

12.7 分析引导加载程序源代码 325

12.8 总结 328

第 13章 不是玩笑:现实工作中的例子 330

13.1 故障注入攻击 330

13.1.1 PlayStation 3虚拟机管理程序 330

13.1.2 Xbox 360游戏机 333

13.2 功率分析攻击 335

13.3 总结 340

第 14章 重新思考:防御对策、认证和完美防御 343

14.1 防御对策 344

14.1.1 实施防御对策 344

14.1.2 验证防御对策 357

14.2 行业认证 359

14.3 变得更好 362

14.4 总结 362

详情

《硬件设备安全攻防实战》以动手实验的方式,演示了对嵌入式硬件设备进行攻击的方式、原理和攻击细节。本书分为14章,主要内容包括嵌入式安全简介、硬件外围设备接口、识别组件和收集信息、引入故障注入、如何注入故障、故障注入实验室、Trezor One钱包内存转储、功率分析简介、简单功率分析、基础差分功率分析、高级功率分析、高级差分功率分析、现实工作中的例子,并讨论了防御对策、认证和完美防御。 《硬件设备安全攻防实战》适合硬件开发人员、硬件安全研究人员以及准备加入硬件安全行业的新人阅读。

图书摘要

相关图书

Joy RL:强化学习实践教程
Joy RL:强化学习实践教程
DeepSeek极速上手 :高效做事不内耗
DeepSeek极速上手 :高效做事不内耗
高并发系统:设计原理与实践
高并发系统:设计原理与实践
秒懂AI辅助论文写作
秒懂AI辅助论文写作
AI商业进化论:“人工智能+”赋能新质生产力发展
AI商业进化论:“人工智能+”赋能新质生产力发展
开源心法
开源心法

相关文章

相关课程