嵌入式與物聯網設備安全:設計、開發與工程實戰

多米尼克·梅利(Dominik Merli)

  • 嵌入式與物聯網設備安全:設計、開發與工程實戰-preview-1
嵌入式與物聯網設備安全:設計、開發與工程實戰-preview-1

商品描述

本書聚焦嵌入式系統安全開發的實戰需求,針對當前嵌入式設備面臨的安全威脅與

合規要求,構建從基礎到高級的完整知識體系。本書先講解安全開發流程、密碼學等基礎知識,再深入剖析隨機數生成器、密碼實施、機密數據存儲與安全內存、安全設備身份認證、通信安全等設備安全構建模塊,最後闡述安全啟動與系統完整性、固件更新安全、魯棒設備架構、訪問控制與管理、系統監控等高級設備安全概念,搭配基於STM32MP157F設備的案例研究,將理論轉化為可落地的實踐方案。

本書兼具系統性與實用性,貼合嵌入式系統資源受限的特性,適合嵌入式系統架構

師、物聯網開發工程師、產品測試人員,以及物聯網安全研究人員、相關專業學生閱讀,是構建安全嵌入式設備的實用指南。

作者簡介

多米尼克·梅利(Dominik Merli)是奧格斯堡應用科學技術大學的IT安全教授,在弗勞恩霍夫和西門子等組織的工業、汽車和半導體行業的安全工程方面擁有十多年的經驗。他擁有阿爾斯特大學工程碩士學位和慕尼黑工業大學博士學位。

目錄大綱

目錄

第 一部分 基礎知識

第 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