硬件設備安全攻防實戰 The Hardware Hacking Handbook: Breaking Embedded Security with Hardware Attacks

[加]科林·奧弗林(Colin O'Flynn)[美]賈斯珀·範·沃登伯格(Jasper van Woudenberg)

  • 硬件設備安全攻防實戰-preview-1
  • 硬件設備安全攻防實戰-preview-2
硬件設備安全攻防實戰-preview-1

買這商品的人也買了...

相關主題

商品描述

《硬件設備安全攻防實戰》以動手實驗的方式,演示了對嵌入式硬件設備進行攻擊的方式、原理和攻擊細節。本書分為14章,主要內容包括嵌入式安全簡介、硬件外圍設備接口、識別組件和收集信息、引入故障註入、如何註入故障、故障註入實驗室、Trezor One錢包內存轉儲、功率分析簡介、簡單功率分析、基礎差分功率分析、高級功率分析、高級差分功率分析、現實工作中的例子,並討論了防禦對策、認證和完美防禦。

《硬件設備安全攻防實戰》適合硬件開發人員、硬件安全研究人員以及準備加入硬件安全行業的新人閱讀。

作者簡介

Colin O’Flynn,经营着NewAE Technology公司。该公司是一家初创企业,主要设计用于教授嵌入式安全知识的工具和设备。他在攻读博士学位期间启动了开源的ChipWhisperer项目,此前他是达尔豪斯大学的助理教授,负责教授嵌入式系统和安全课程。他住在加拿大哈利法克斯,而且他的爱犬佩戴了很多由NewAE Technology公司开发的产品。

Jasper van Woudenberg,Riscure North America公司的CTO,广泛且深度参与了嵌入式设备安全的多个主题—从查找并修复在数亿台设备上运行的代码中的错误,到使用符号执行从有故障的密码系统中提取密钥,再到使用语音识别算法进行侧信道跟踪处理。Jaspers居住在美国加利福尼亚州,喜欢骑行、登山和滑雪。

 

译者简介

李海粟,毕业于重庆邮电大学微电子科学与工程专业,曾多次参加GeekPwn、天府杯等信息安全大赛;拥有多个CAVD、CNVD漏洞编号,持有多项信息安全发明专利,并多次收到“漏洞发现”致谢信;主要研究方向为嵌入式安全和无线电安全,在物联网和工业设备的信息安全攻击、防御、认证、合规、调查取证方面具有丰富的工作经验。

目錄大綱

第 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