嵌入式与物联网设备安全:设计、开发与工程实战

978-7-115-69824-7
作者: 多米尼克·梅利(Dominik Merli)
译者: 崔洪权岳少聪
编辑: 陈灿然
分类: 其他

图书目录:

目录

第 一部分 基础知识

第 1 章 安全开发流程 2

1.1 关于各种指南的讨论 ..................................................................................................... 2

1.2 产品安全责任 ................................................................................................................. 4

1.3 意识与培训 ..................................................................................................................... 5

1.4 资产与保护目标 ............................................................................................................. 6

1.4.1 识别宝贵的资产 ................................................................................................. 6

1.4.2 相关保护需求 ..................................................................................................... 8

1.5 攻击者、威胁和风险 ................................................................................................... 10

1.5.1 潜在攻击者 ....................................................................................................... 10

1.5.2 潜在的负面影响 ............................................................................................... 12

1.5.3 没有风险,就没有优先级 ............................................................................... 14

1.6 安全需求和安全架构 ................................................................................................... 15

1.6.1 风险处理 ........................................................................................................... 16

1.6.2 安全开发原则 ................................................................................................... 17

1.7 安全实施和安全测试 ................................................................................................... 18

1.7.1 左移策略 ........................................................................................................... 18

1.7.2 持续测试和分析 ............................................................................................... 19

1.7.3 攻击者即服务 ................................................................................................... 20

1.8 漏洞监测和响应 ........................................................................................................... 22

1.8.1 漏洞报告 ........................................................................................................... 22

1.8.2 审查和评估脆弱性报告 ................................................................................... 23

1.8.3 修复或解决问题 ............................................................................................... 23

1.8.4 测试 ................................................................................................................... 23

1.8.5 公开解决方案 ................................................................................................... 23

1.8.6 避免今后出现问题 ........................................................................................... 24

1.8.7 建立信任 ........................................................................................................... 24

1.9 总结 ............................................................................................................................... 25

第 2 章 密码学 26

2.1 柯克霍夫原则 ............................................................................................................... 26

2.2 安全级别 ....................................................................................................................... 27

2.3 对称密码 ....................................................................................................................... 28

2.3.1 数据加密标准 ................................................................................................... 28

2.3.2 高级加密标准 ................................................................................................... 29

2.4 运行模式 ....................................................................................................................... 31

2.4.1 电子密码本模式 ............................................................................................... 32

2.4.2 密文分组链接模式 ........................................................................................... 32

2.4.3 计数器模式 ....................................................................................................... 33

2.5 哈希函数 ....................................................................................................................... 34

2.6 消息认证码 ................................................................................................................... 36

2.7 认证加密 ....................................................................................................................... 37

2.7.1 策略和要求 ....................................................................................................... 37

2.7.2 伽罗瓦计数器模式 ........................................................................................... 38

2.8 非对称密码学 ............................................................................................................... 40

2.9 RSA 密码系统 .............................................................................................................. 41

2.9.1 基本 RSA 数学 ................................................................................................. 41

2.9.2 真实世界中 RSA 的使用 ................................................................................. 42

2.10 Diffie-Hellman 密钥交换 ........................................................................................... 43

2.10.1 数学之美 ....................................................................................................... 43

2.10.2 中间人攻击 ................................................................................................... 44

2.11 椭圆曲线密码学 ......................................................................................................... 45

2.11.1 曲线背后的数学 ........................................................................................... 45

2.11.2 选择的痛苦 ................................................................................................... 47

2.11.3 ECC 的实际应用........................................................................................... 47

2.12 总结 ............................................................................................................................. 48

第二部分 设备安全构建模块

第 3 章 随机数生成器 50

3.1 对不可预测性的需求 ................................................................................................... 50

3.2 不可预测性的本质 ....................................................................................................... 51

3.3 真随机数生成器 ........................................................................................................... 52

3.3.1 环形振荡器 ....................................................................................................... 53

3.3.2 熵源的健康状况 ............................................................................................... 54

3.4 伪随机数生成器 ........................................................................................................... 55

3.5 实用 RNG 的构建和应用 ............................................................................................ 56

3.5.1 RNG 的选择 ..................................................................................................... 56

3.5.2 错误处理 ........................................................................................................... 57

3.5.3 启动时熵 ........................................................................................................... 57

3.6 案例研究:从硬件到 Python 的随机数 ..................................................................... 57

3.6.1 硬件 RNG 和熵源 ............................................................................................. 57

3.6.2 Linux 中的硬件 RNG 集成 .............................................................................. 58

3.6.3 Linux RNG 架构 ............................................................................................... 59

3.6.4 Python 中的加密安全随机数 ........................................................................... 61

3.7 案例研究:随机性快速检查的实用工具 ................................................................... 62

3.7.1 分布分析和模式识别的简单工具 ................................................................... 63

3.7.2 问题 1:通过模数限制输出空间 .................................................................... 65

3.7.3 问题 2:定制 PRNG 设计 ............................................................................... 66

3.8 总结 ............................................................................................................................... 67

第 4 章 密码实施 68

4.1 实施背景和要求 ........................................................................................................... 68

4.2 选择加密实现 ............................................................................................................... 70

4.3 AES 实现选项 .............................................................................................................. 71

4.3.1 基本架构 ........................................................................................................... 72

4.3.2 优化运行 ........................................................................................................... 72

4.4 RSA 和 ECDSA 的实施特点 ....................................................................................... 73

4.4.1 RSA 优化 .......................................................................................................... 73

4.4.2 ECDSA 细节 ..................................................................................................... 74

4.5 案例研究:STM32MP157F 器件的加密性能 ........................................................... 74

4.5.1 对称加密的参数选择 ....................................................................................... 75

4.5.2 SHA-256 算法的软件与硬件实现 ................................................................... 78

4.5.3 非对称加密操作的软件性能比较 ................................................................... 81

4.6 总结 ............................................................................................................................... 82

第 5 章 机密数据存储与安全内存 84

5.1 机密数据 ....................................................................................................................... 84

5.2 在嵌入式系统中保护机密的困境 ............................................................................... 86

5.3 安全文件系统方案 ....................................................................................................... 86

5.3.1 加密堆叠文件系统 ........................................................................................... 87

5.3.2 原生文件系统加密 ........................................................................................... 87

5.3.3 加密块设备 ....................................................................................................... 87

5.3.4 建议方案 ........................................................................................................... 88

5.3.5 口令 ................................................................................................................... 88

5.4 硬件中的安全内存 ....................................................................................................... 88

5.4.1 外部安全存储器模块 ....................................................................................... 89

5.4.2 片上安全存储系统 ........................................................................................... 90

5.5 应用代码中的安全 ....................................................................................................... 91

5.6 密码安全存储实践 ....................................................................................................... 92

5.7 案例研究:Linux 加密文件容器 ................................................................................ 93

5.7.1 加密性能基准测试 ........................................................................................... 94

5.7.2 容器的创建 ....................................................................................................... 95

5.7.3 效率分析 ........................................................................................................... 96

5.8 读保护机制的低成本解决方案 ................................................................................... 98

5.9 总结 ............................................................................................................................... 99

第 6 章 安全设备身份认证 100

6.1 每个设备都是独一无二的 ......................................................................................... 100

6.2 识别和标识符 ............................................................................................................. 101

6.2.1 唯一标识符 ..................................................................................................... 101

6.2.2 系统身份 ......................................................................................................... 102

6.3 身份认证和认证器 ..................................................................................................... 102

6.3.1 认证协议 ......................................................................................................... 103

6.3.2 专用认证芯片 ................................................................................................. 104

6.3.3 多因素身份验证 ............................................................................................. 104

6.3.4 受信任的第三方 ............................................................................................. 105

6.3.5 证书和证书授权中心 ..................................................................................... 106

6.4 身份生命周期管理 ..................................................................................................... 107

6.4.1 身份生成 ......................................................................................................... 107

6.4.2 供应 ................................................................................................................. 108

6.4.3 实时使用 ......................................................................................................... 109

6.4.4 交换或销毁 ..................................................................................................... 109

6.5 案例研究:身份生成及供应 ..................................................................................... 110

6.5.1 标识符和系统身份 ......................................................................................... 110

6.5.2 证书签名请求 ................................................................................................. 112

6.5.3 证书授权中心 ................................................................................................. 115

6.6 案例研究:生产中的 RSA 密钥生成 ....................................................................... 117

6.7 总结 ............................................................................................................................. 118

第 7 章 通信安全 120

7.1 全维度防护目标 ......................................................................................................... 120

7.2 传输层安全 ................................................................................................................. 121

7.2.1 TLS 的发展历史 ............................................................................................. 122

7.2.2 TLS 基础 ......................................................................................................... 122

7.2.3 TLS 1.3 ............................................................................................................ 123

7.2.4 其他握手选项 ................................................................................................. 124

7.2.5 加密算法的选择 ............................................................................................. 124

7.2.6 TLS 1.2 ............................................................................................................ 125

7.2.7 TLS 1.2 与 TLS 1.3 的区别 ............................................................................ 125

7.2.8 安全使用 ......................................................................................................... 125

7.2.9 设备和基础设施的要求 ................................................................................. 126

7.3 应用示例和软件库 ..................................................................................................... 127

7.4 案例研究:安全的 MQTT 通信 ............................................................................... 127

7.4.1 Mosquitto 的安装和配置 ................................................................................ 127

7.4.2 首次试运行 ..................................................................................................... 129

7.4.3 使用 Wireshark 和 SSLyze 进行通信安全分析 ............................................. 130

7.5 不使用 TLS 的安全通信 ............................................................................................ 134

7.6 安全通信中的冗余 ..................................................................................................... 135

7.7 总结 ............................................................................................................................. 136

第三部分 高级设备安全概念

第 8 章 安全启动与系统完整性 138

8.1 系统启动的复杂性 ..................................................................................................... 138

8.2 引导保护概念 ............................................................................................................. 140

8.3 经典安全启动链 ......................................................................................................... 141

8.4 实施安全启动的考虑 ................................................................................................. 143

8.4.1 硬件和软件要求 ............................................................................................. 143

8.4.2 开发过程 ......................................................................................................... 144

8.4.3 生产和生命周期 ............................................................................................. 144

8.5 开源许可证与安全启动 ............................................................................................. 145

8.6 案例研究:STM32MP157F 设备上的安全启动过程 ............................................. 146

8.6.1 启动过程 ......................................................................................................... 146

8.6.2 安全启动从硬件开始 ..................................................................................... 147

8.6.3 基于 BL2 TF-A 的安全启动 .......................................................................... 148

8.6.4 U-Boot 的安全启动功能 ................................................................................ 149

8.7 启动过程之外的完整性保护 ..................................................................................... 151

8.7.1 内核模块验证 ................................................................................................. 152

8.7.2 文件系统完整性 ............................................................................................. 152

8.7.3 基于 MAC 的文件系统保护 .......................................................................... 152

8.7.4 只读文件系统 ................................................................................................. 153

8.7.5 全面的完整性保护 ......................................................................................... 153

8.8 写保护作为低成本解决方案 ..................................................................................... 153

8.9 总结 ............................................................................................................................. 154

第 9 章 固件更新安全 155

9.1 更新的必然性 ............................................................................................................. 155

9.2 安全保障 ..................................................................................................................... 156

9.3 更新的分发与部署 ..................................................................................................... 158

9.3.1 本地更新与远程更新 ..................................................................................... 158

9.3.2 拉取策略与推送策略 ..................................................................................... 158

9.4 更新的粒度与格式 ..................................................................................................... 159

9.4.1 固件组成部分 ................................................................................................. 159

9.4.2 更新格式 ......................................................................................................... 160

9.4.3 包管理器的问题 ............................................................................................. 161

9.5 设备分区策略 ............................................................................................................. 162

9.5.1 更新/恢复分区 ................................................................................................ 162

9.5.2 A/B 系统方法 ................................................................................................. 162

9.5.3 引导加载程序的更新 ..................................................................................... 164

9.6 开发、后端与设备的交互 ......................................................................................... 164

9.7 案例研究:基于 SWUpdate 的安全固件更新 ......................................................... 165

9.7.1 SD 卡布局自定义 ........................................................................................... 165

9.7.2 SWUpdate 的安装与配置 ............................................................................... 167

9.7.3 密钥生成 ......................................................................................................... 167

9.7.4 软件集合 ......................................................................................................... 168

9.7.5 生成更新文件的脚本 ..................................................................................... 169

9.7.6 设备特定定制 ................................................................................................. 170

9.7.7 更新过程评估 ................................................................................................. 173

9.8 总结 ............................................................................................................................. 175

第 10 章 鲁棒设备架构 176

10.1 处于网络压力下的设备 ........................................................................................... 176

10.1.1 邻近设备故障 ............................................................................................. 177

10.1.2 协议模糊测试 ............................................................................................. 177

10.1.3 网络与漏洞扫描 ......................................................................................... 177

10.1.4 泛洪攻击 ..................................................................................................... 177

10.1.5 鲁棒架构 ..................................................................................................... 177

10.2 设备核心功能 ........................................................................................................... 178

10.2.1 传感器 ......................................................................................................... 178

10.2.2 执行器 ......................................................................................................... 178

10.2.3 控制器 ......................................................................................................... 179

10.3 实时系统 ................................................................................................................... 179

10.3.1 软实时系统 ................................................................................................. 180

10.3.2 强实时系统 ................................................................................................. 180

10.3.3 硬实时系统 ................................................................................................. 180

10.3.4 DoS 攻击的影响 ......................................................................................... 180

10.4 资源耗尽及预防策略 ............................................................................................... 180

10.5 硬件级实现方案 ....................................................................................................... 181

10.5.1 专用预处理单元 ......................................................................................... 181

10.5.2 多核架构 ..................................................................................................... 182

10.6 操作系统的职能 ....................................................................................................... 183

10.6.1 操作系统选项 ............................................................................................. 183

10.6.2 支持实时补丁的 Linux 操作系统 .............................................................. 184

10.7 应用与协议考量 ....................................................................................................... 185

10.7.1 识别逻辑缺陷 ............................................................................................. 186

10.7.2 实施输入与发送方验证 ............................................................................. 186

10.7.3 分析主动防护措施 ..................................................................................... 186

10.7.4 引入混沌工程和模糊测试 ......................................................................... 186

10.8 案例研究:STM32MP157F 设备的鲁棒性选项 ................................................... 187

10.8.1 基本系统属性 ............................................................................................. 187

10.8.2 低延迟内核的测量 ..................................................................................... 188

10.8.3 实时内核性能测试 ..................................................................................... 190

10.8.4 实时协处理器 ............................................................................................. 191

10.9 总结 ........................................................................................................................... 193

第 11 章 访问控制与管理 194

11.1 日常威胁 ................................................................................................................... 194

11.2 访问控制与损害遏制 ............................................................................................... 195

11.2.1 设计与开发阶段 ......................................................................................... 196

11.2.2 生产环境注意事项 ..................................................................................... 197

11.3 自主访问控制 ........................................................................................................... 198

11.3.1 Linux 文件系统权限 ................................................................................... 198

11.3.2 Linux 用户与用户组管理 ........................................................................... 199

11.3.3 Linux 权限管理 ........................................................................................... 200

11.3.4 访问控制列表 ............................................................................................. 201

11.4 案例研究:STM32MP157F-DK2 固件的访问控制 .............................................. 201

11.4.1 Yocto 中的用户创建与文件配置 ............................................................... 202

11.4.2 系统文件与预定义用户的探索 ................................................................. 204

11.4.3 SSH 守护进程访问控制配置 ..................................................................... 205

11.5 强制访问控制 ........................................................................................................... 206

11.5.1 Linux 安全模块 ........................................................................................... 207

11.5.2 SELinux ....................................................................................................... 207

11.5.3 AppArmor .................................................................................................... 208

11.5.4 其他 LSM 及非 LSM 的强制访问控制机制 ............................................. 209

11.6 案例研究:使用 AppArmor 实现应用限制........................................................... 210

11.6.1 AppArmor 的安装 ....................................................................................... 210

11.6.2 应用程序剖析 ............................................................................................. 213

11.7 总结 ........................................................................................................................... 217

第 12 章 系统监控 218

12.1 出于正当理由的监控 ............................................................................................... 218

12.2 监控关键指标 ........................................................................................................... 219

12.2.1 用户交互与访问控制 ................................................................................. 220

12.2.2 通信 ............................................................................................................. 220

12.2.3 应用行为 ..................................................................................................... 221

12.2.4 系统行为 ..................................................................................................... 222

12.2.5 基于风险的监控 ......................................................................................... 222

12.3 设计监控方案 ........................................................................................................... 223

12.3.1 嵌入式系统面临的挑战 ............................................................................. 223

12.3.2 设备端日志记录过程的监控 ..................................................................... 225

12.3.3 集中式日志分析与治理 ............................................................................. 225

12.4 案例研究:STM32MP157F 设备事件日志记录 ................................................... 226

12.4.1 基于 journald 的用户会话监控 .................................................................. 226

12.4.2 使用 auditd 进行内核事件监控 ................................................................. 227

12.4.3 服务与应用程序事件日志记录 ................................................................. 230

12.4.4 日志记录到远程服务器 ............................................................................. 231

12.5 总结 ........................................................................................................................... 232

后记 233

详情

本书聚焦嵌入式系统安全开发的实战需求,针对当前嵌入式设备面临的安全威胁与 合规要求,构建从基础到高级的完整知识体系。本书先讲解安全开发流程、密码学等基础知识,再深入剖析随机数生成器、密码实施、机密数据存储与安全内存、安全设备身份认证、通信安全等设备安全构建模块,最后阐述安全启动与系统完整性、固件更新安全、鲁棒设备架构、访问控制与管理、系统监控等高级设备安全概念,搭配基于STM32MP157F设备的案例研究,将理论转化为可落地的实践方案。 本书兼具系统性与实用性,贴合嵌入式系统资源受限的特性,适合嵌入式系统架构 师、物联网开发工程师、产品测试人员,以及物联网安全研究人员、相关专业学生阅读,是构建安全嵌入式设备的实用指南。

图书摘要

相关图书

Agent设计模式 图解可复用智能体架构
Agent设计模式 图解可复用智能体架构
Skills+OpenClaw:从零打造个性化AI助理
Skills+OpenClaw:从零打造个性化AI助理
AI科研绘图:Nano Banana极速实战指南
AI科研绘图:Nano Banana极速实战指南
AI Agent 开发实战:MCP+A2A+LangGraph 驱动的智能体全流程开发
AI Agent 开发实战:MCP+A2A+LangGraph 驱动的智能体全流程开发
Coze入门:7天玩转扣子智能体
Coze入门:7天玩转扣子智能体
十倍速开发:AI时代的Cursor编程手记
十倍速开发:AI时代的Cursor编程手记

相关文章

相关课程