-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

手機安全和可信應用開發指南:TrustZone與OP-TEE技術詳解

( 簡體 字)
作者:帥峰云 黃騰 宋洋類別:1. -> 安全 -> 網路安全 -> 駭客攻擊與入侵
譯者:
出版社:機械工業出版社手機安全和可信應用開發指南:TrustZone與OP-TEE技術詳解 3dWoo書號: 50012
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:10/10/2018
頁數:346
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111609568
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

TrustZone技術是一種提高ARM芯片安全性的技術,OP-TEE是基于ARM的TrustZone技術搭建的可信執行環境。兩者的結合可為系統軟件提供硬件級別的安全保護。本書主要分為4篇,總計25章,第壹篇介紹了TrustZone技術的背景、實現原理、系統基本框架以及OP-TEE開發環境的搭建;第二篇分析了OP-TEE在REE和TEE中各組件的作用和聯系,為將OP-TEE集成到基于ARMv7/ARMv8處理器的開發平臺打下基礎;第三篇詳細介紹OP-TEE內核的中斷處理、線程管理和通信等主要功能的實現原理,使讀者對TEEOS的架構設計有進一步的認識;第四篇介紹基于OP-TEE在加密、解密、安全存儲、在線支付等方面的實際應用,以及如何開發基于OP-TEE的可信應用程序和安全驅動軟件。
目錄:

推薦序
前言
致謝
第一篇 基礎技術篇
第1章 可信執行環境 2
1.1 系統存在的安全問題 2
1.2 TEE如何保護數據安全 2
1.3 現有TEE解決方案 3
1.3.1 智能手機領域的TEE 4
1.3.2 智能電視領域的TEE 4
1.3.3 IoT領域及其他領域的TEE 5
1.4 為什么選擇OP-TEE 5
第2章 ARM的TrustZone技術
2.1 TrustZone技術 6
2.1.1 片上系統硬件框架 6
2.1.2 ARMv7架構的TrustZone技術 7
2.1.3 ARMv8架構的TrustZone技術 8
2.2 ARM安全擴展組件 8
2.2.1 AXI總線上安全狀態位的擴展 9
2.2.2 AXI-to-APB橋的作用 9
2.2.3 TrustZone地址空間控制組件 9
2.2.4 TrustZone內存適配器組件 10
2.2.5 TrustZone保護控制器組件 11
2.2.6 TrustZone中斷控制器組件 12
2.2.7 Cache和MMU的擴展 12
2.3 TrustZone技術對資源隔離的實現 13
2.3.1 中斷源的隔離 13
2.3.2 片上RAM和片上ROM的隔離 13
2.3.3 片外DRAM的隔離 13
2.3.4 外圍設備的隔離 14
2.4 小結 14
第3章 ARM可信固件 15
3.1 為什么使用ATF 15
3.2 ATF的主要功能 15
3.3 ATF與TEE的關系 15
3.4 小結 16
第4章 OP-TEE運行環境的搭建及編譯 17
4.1 獲取OP-TEE代碼并搭建運行環境 17
4.1.1 OP-TEE開發環境的搭建 17
4.1.2 獲取OP-TEE的源代碼 17
4.1.3 獲取編譯OP-TEE的toolchain 18
4.1.4 編譯QEMU 19
4.1.5 運行OP-TEE 19
4.1.6 運行xtest和optee_example_hello_world 19
4.2 運行CA和TA示例 19
4.2.1 示例代碼的獲取和集成 20
4.2.2 目錄和文件創建 21
4.2.3 CA端代碼的修改 22
4.2.4 TA端代碼的修改 22
4.2.5 TA和CA在OP-TEE的集成 22
4.3 OP-TEE源代碼結構 24
4.4 OP-TEE編譯 25
4.4.1 編譯目標的依賴關系 25
4.4.2 bios.bin鏡像的生成過程 27
4.4.3 run-only目標的執行 28
4.5 小結 32
第二篇 系統集成篇
第5章 QEMU運行OP-TEE的啟動過程 34
5.1 bios.bin的入口函數 34
5.2 OP-TEE鏡像的加載和啟動 36
5.3 Linux內核鏡像的加載和啟動 37
5.4 rootfs的掛載 38
5.5 OP-TEE驅動的啟動 38
5.6 tee_supplicant的啟動 39
5.7 小結 39
第6章 安全引導功能及ATF的啟動過程 40
6.1 安全引導的作用 40
6.2 安全引導的原理 40
6.2.1 ARMv7安全引導的過程 41
6.2.2 ARMv8安全引導的過程 42
6.3 ATF的啟動過程 43
6.3.1 ATF中bl1的啟動 44
6.3.2 ATF中bl2的啟動 49
6.3.3 ATF中bl31的啟動 54
6.3.4 ATF中bl32的啟動 57
6.3.5 ATF啟動過程小結 59
6.4 小結 59
第7章 OP-TEE OS的啟動過程 60
7.1 OP-TEE鏡像啟動過程 60
7.1.1 OP-TEE OS的入口函數 60
7.1.2 OP-TEE的內核初始化過程 60
7.1.3 OP-TEE服務項的啟動 67
7.1.4 OP-TEE驅動的掛載 69
7.2 ARM64位與ARM32位OP-TEE啟動過程的差異 69
7.3 小結 71
第8章 OP-TEE在REE側的上層軟件 72
8.1 OP-TEE的軟件框架 72
8.2 REE側libteec庫提供的接口 73
8.2.1 libteec庫提供的接口說明 73
8.2.2 CA調用libteec庫中接口的流程 84
8.3 REE側的守護進程—tee_supplicant 84
8.3.1 tee_supplicant編譯生成和自啟動 84
8.3.2 tee_supplicant入口函數 85
8.3.3 tee_supplicant存放RPC請求的結構體 87
8.3.4 tee_supplicant中的無限循環 87
8.3.5 tee_supplicant獲取TA的RPC請求 89
8.3.6 TA RPC請求的解析 89
8.3.7 RPC請求的處理 90
8.3.8 回復RPC請求 90
8.4 各種RPC請求的處理 91
8.4.1 加載TA鏡像 91
8.4.2 操作REE側的文件系統 92
8.4.3 操作RPMB 93
8.4.4 分配共享內存 93
8.4.5 釋放共享內存 94
8.4.6 記錄程序執行效率 95
8.4.7 網絡套接字操作 97
8.5 小結 97
第9章 REE側OP-TEE的驅動 98
9.1 OP-TEE驅動模塊的編譯保存 98
9.2 REE側OP-TEE驅動的加載 99
9.2.1 設備號和class的初始化 100
9.2.2 optee_driver_init函數 101
9.2.3 掛載驅動的probe操作 101
9.2.4 獲取切換到Monitor模式或EL3的接口 103
9.2.5 驅動版本和API版本校驗 105
9.2.6 判定OP-TEE是否預留共享內存空間 106
9.2.7 配置驅動與OP-TEE之間的共享內存 106
9.2.8 分配和設置tee0和teepriv0的設備信息結構體變量 109
9.2.9 tee0和teepriv0設備的注冊 111
9.2.10 請求隊列的初始化 112
9.2.11 使能TEE中共享內存的緩存 112
9.2.12 OP-TEE驅動掛載的總結 113
9.3 REE側用戶空間對驅動的調用過程 113
9.4 OP-TEE驅動中重要的結構體變量 114
9.4.1 OP-TEE驅動的file_operation結構體變量tee_fops 114
9.4.2 tee0設備的tee_driver_ops結構體變量optee_ops 114
9.4.3 teepriv0設備的操作結構體變量optee_supp_ops 115
9.4.4 共享驅動緩存操作變量tee_shm_dma_buf_ops 115
9.5 OP-TEE驅動與OP-TEE之間共享內存的注冊和分配 116
9.6 libteec庫中的接口在驅動中的實現 117
9.6.1 libteec庫中的open操作 117
9.6.2 libteec庫中的release操作 118
9.6.3 libteec執行get_version操作 120
9.6.4 libteec庫中的open session操作 120
9.6.5 libteec庫中的invoke操作 122
9.7 tee_supplicant接口在驅動中的實現 123
9.7.1 接收OP-TEE的RPC請求 124
9.7.2 獲取OP-TEE的RPC請求 126
9.7.3 OP-TEE的RPC請求的返回 127
9.8 小結 128
第三篇 OP-TEE內核篇
第10章 ARM核安全態和非安全態間的切換 130
10.1 ARMv7基本知識 130
10.1.1 ARMv7運行模式擴展 130
10.1.2 安全狀態位擴展 130
10.1.3 重要寄存器 131
10.1.4 安全監控模式調用的匯編指令 132
10.2 Monitor模式下的處理過程 132
10.2.1 Monitor模式對安全監控模式調用的處理 133
10.2.2 正常世界狀態中觸發安全監控模式調用的處理過程 134
10.2.3 安全世界狀態中觸發安全監控模式調用的處理過程 136
10.3 ARMv8基本知識 136
10.3.1 ARM核運行模式的新定義 137
10.3.2 ARMv8 安全狀態位擴展 137
10.3.3 寄存器資源 137
10.3.4 安全監控模式調用匯編指令 138
10.4 EL3的處理過程 140
10.4.1 ATF中EL3異常向量表的注冊 140
10.4.2 EL3處理安全監控模式調用的流程 140
10.4.3 安全世界狀態中觸發安全監控模式調用的處理過程 141
10.4.4 正常世界狀態中觸發安全監控模式調用的處理過程 142
10.4.5 opteed_smc_handler函數 143
10.5 小結 145
第11章 OP-TEE對安全監控模式調用的處理 146
11.1 OP-TEE的線程向量表 146
11.2 ARMv7中Monitor模式對安全監控模式調用的處理 146
11.3 ARMv8中EL3處理安全監控模式調用的實現 147
11.4 OP-TEE對快速安全監控模式調用的處理 148
11.5 OP-TEE對標準安全監控模式調用的處理 150
11.5.1 OP-TEE對RPC請求返回操作的處理 152
11.5.2 OP-TEE對libteec庫觸發的安全監控模式調用的處理 152
11.6 小結 157
第12章 OP-TEE對中斷的處理 158
12.1 系統的中斷處理 158
12.2 中斷控制器 158
12.2.1 GIC 寄存器 159
12.2.2 ARMv7 SCR寄存器的設定 160
12.2.3 ARMv8 SCR寄存器的設定 160
12.2.4 GICv2架構 163
12.2.5 GICv3架構 163
12.3 異常向量表配置 164
12.3.1 ARMv7中Monitor模式的異常向量表 165
12.3.2 ARMv8中EL3階段的異常向量表 165
12.3.3 OP-TEE異常向量的配置 167
12.4 OP-TEE的線程向量表 170
12.5 全局handle變量的初始化 170
12.6 ARMv7 Monitor對FIQ事件的處理 172
12.7 ARMv8 EL3階段對FIQ事件的處理 173
12.8 OP-TEE對FIQ事件的處理 176
12.9 OP-TEE對IRQ事件的處理 177
12.10 小結 180
第13章 OP-TEE對TA操作的各種實現 181
13.1 創建會話在OP-TEE中的實現 181
13.1.1 靜態TA的創建會話操作 182
13.1.2 動態TA的創建會話操作 186
13.2 調用TA命令操作在OP-TEE中的實現 191
13.2.1 靜態TA的調用命令操作的實現 193
13.2.2 動態TA的調用命令操作實現 194
13.3 關閉會話操作在OP-TEE中的實現 195
13.3.1 靜態TA的關閉會話操作 197
13.3.2 動態TA的關閉會話操作 197
13.4 小結 197
第14章 OP-TEE的內存和緩存管理 198
14.1 物理內存和緩存數據的硬件安全保護 198
14.1.1 內存設備安全區域的隔離 198
14.1.2 MMU和緩存中數據的安全隔離 199
14.2 ARM核對內存的訪問 200
14.2.1 ARM核獲取內存數據的過程 200
14.2.2 獲取緩存數據的過程 201
14.2.3 緩存和TLB中條目的一致性 203
14.3 OP-TEE對內存區域的管理 204
14.3.1 OP-TEE中內存區域的類型 204
14.3.2 內存區域編譯設置 205
14.4 MMU的初始化和映射頁表 206
14.4.1 MMU的初始化入口函數 206
14.4.2 物理地址到虛擬地址表的建立 208
14.4.3 MMU轉換頁表的創建 211
14.4.4 MMU寄存器配置 212
14.5 OP-TEE內存安全權限檢查 213
14.6 系統的共享內存 214
14.6.1 共享內存的配置 215
14.6.2 OP-TEE驅動與OP-TEE之間的共享內存 215
14.6.3 OP-TEE內核空間與用戶空間之間的共享內存 216
14.7 數據是否需要寫入Cache 217
14.8 小結 218
第15章 OP-TEE中的線程管理 219
15.1 OP-TEE中的線程 219
15.2 線程狀態切換 220
15.2.1 Free態到Active態的實現 220
15.2.2 Active態到Suspend態的實現 221
15.2.3 Suspend態到Active態的實現 222
15.2.4 Active態到Free態的實現 222
15.3 線程運行時的資源 223
15.3.1 線程數據結構體 223
15.3.2 OP-TEE分配的內核棧 224
15.3.3 線程運行于用戶空間的資源 225
15.3.4 tee_ta_session結構體 226
15.4 線程運行時資源的使用關系 227
15.5 OP-TEE中線程的調度 228
15.6 線程的死鎖 228
15.6.1 死鎖的原理 229
15.6.2 防止死鎖 229
15.7 小結 229
第16章 OP-TEE的系統調用 230
16.1 OP-TEE系統調用的作用 230
16.2 OP-TEE系統調用的實現 230
16.2.1 系統調用的整體流程 230
16.2.2 系統調用的定義 232
16.2.3 系統調用表tee_sv_syacall_table 232
16.3 小結 233
第17章 OP-TEE的IPC機制 234
17.1 IPC機制的作用 234
17.2 IPC機制的原理 234
17.3 IPC的實現 234
17.3.1 TA調用其他TA的實現 235
17.3.2 TA調用系統服務和安全驅動的實現 240
17.3.3 TA對密碼學系統服務的調用實現 242
17.3.4 對SE功能模塊進行操作的系統服務 246
17.3.5 加載TA鏡像的系統服務 247
17.4 小結 247
第四篇 應用開發篇
第18章 TA鏡像的簽名和加載 250
18.1 TA鏡像文件的編譯和簽名 250
18.1.1 TA鏡像文件的編譯 250
18.1.2 對TA鏡像文件的簽名 251
18.2 TA鏡像的加載 253
18.2.1 REE側獲取TA鏡像文件的內容 253
18.2.2 加載TA鏡像的RPC請求 255
18.2.3 RPC請求的發送 256
18.2.4 讀取TA鏡像文件內容到共享內存 257
18.3 TA鏡像合法性的驗證 258
18.3.1 驗證TA鏡像合法性使用的RSA公鑰的產生和獲取 258
18.3.2 TA鏡像文件合法性的檢查 260
18.4 加載TA鏡像到OP-TEE的用戶空間 261
18.5 TA運行上下文的初始化 262
18.6 小結 263
第19章 OP-TEE中的密碼學算法 264
19.1 算法使用示例 264
19.1.1 示例代碼獲取和集成 264
19.1.2 板級編譯文件的修改 265
19.1.3 通用編譯文件的修改 266
19.1.4 編譯運行 267
19.2 OP-TEE中的SHA算法 267
19.2.1 TA中使用SHA算法的實現 267
19.2.2 SHA算法實現接口說明 268
19.3 OP-TEE中的AES算法 269
19.3.1 TA中使用AES算法的實現 269
19.3.2 AES算法實現接口說明 270
19.4 OP-TEE中的RSA算法 273
19.4.1 TA中使用RSA算法的實現 273
19.4.2 RSA算法實現接口說明 274
19.5 小結 277
第20章 OP-TEE的安全存儲 278
20.1 安全存儲簡介 278
20.2 安全存儲使用示例 278
20.2.1 示例代碼獲取和集成 279
20.2.2 板級編譯文件的修改 280
20.2.3 通用編譯文件的修改 280
20.2.4 編譯運行 281
20.3 安全存儲功能使用的密鑰 281
20.3.1 安全存儲密鑰 282
20.3.2 可信應用的存儲密鑰 282
20.3.3 文件加密密鑰 283
20.4 安全文件、dirf.db文件的數據格式和操作過程 284
20.4.1 dirf.db文件和安全文件的格式 285
20.4.2 安全存儲功能中使用的重要結構體 286
20.4.3 安全存儲中的文件節點組成 287
20.4.4 查詢安全文件中的特定數據塊 287
20.5 安全存儲文件的創建 288
20.5.1 安全存儲軟件框架 288
20.5.2 dirf.db文件的創建 289
20.5.3 安全文件的創建 290
20.6 安全文件的打開操作 291
20.6.1 安全文件的打開 291
20.6.2 打開dirf.db文件并建立節點樹 292
20.6.3 安全文件在/data/tee目錄下的文件編號 294
20.6.4 打開特定安全文件 295
20.7 安全文件的讀寫操作 295
20.7.1 安全文件中數據的讀取 295
20.7.2 安全文件中數據的寫入 297
20.8 安全文件中數據的加解密 298
20.8.1 各種類型數據的組成及作用 298
20.8.2 元數據的加密 298
20.8.3 數據塊區域的加密策略 299
20.9 小結 300
第21章 可信應用及客戶端應用的開發 301
21.1 TA及CA的基本概念 301
21.2 GP標準 302
21.3 GP標準對TA屬性的定義 302
21.4 GP標準定義的接口 303
21.4.1 GP定義的客戶端接口 303
21.4.2 GP定義的內部接口 304
21.5 TA和CA的實現 308
21.5.1 建立CA和TA的目錄結構 308
21.5.2 CA代碼的實現 308
21.5.3 TA代碼的實現 309
21.6 TA和CA的集成 309
21.6.1 CA和TA的Makefile的修改 309
21.6.2 OP-TEE中comm.mk和xxx.mk文件的修改 310
21.7 TA和CA的調試 310
21.8 TA和CA的使用 310
21.9 小結 311
第22章 安全驅動的開發 312
22.1 安全設備的硬件安全隔離 312
22.2 OP-TEE中安全驅動的框架 313
22.2.1 系統服務層 314
22.2.2 驅動層 314
22.2.3 驅動文件在源代碼中的位置 314
22.3 安全驅動的開發過程和示例 315
22.3.1 示例代碼獲取和集成 315
22.3.2 驅動實現 316
22.3.3 添加系統服務 317
22.3.4 添加系統調用 317
22.3.5 測試使用的TA和CA 318
22.4 安全驅動示例的測試 319
22.5 小結 321
第23章 終端密鑰在線下發系統 322
23.1 密鑰在線下發系統的框架 322
23.2 密鑰在線下發的數據包格式 323
23.3 密鑰在線下發系統示例 324
23.3.1 示例代碼獲取和集成 324
23.3.2 板級編譯文件的修改 325
23.3.3 通用編譯文件的修改 325
23.3.4 編譯運行 326
23.4 離線工具的使用 327
23.5 小結 327
第24章 基于OP-TEE的在線支付系統 328
24.1 在線支付系統的基本框架 328
24.2 可信通信通道 329
24.3 數據交互協議 329
24.3.1 數據頭部區域 330
24.3.2 數據區域 330
24.3.3 電子簽名區域 331
24.3.4 交互數據包的格式 331
24.4 在線支付系統示例的實現 331
24.4.1 第一次握手請求 332
24.4.2 第二次握手數據的解析 333
24.4.3 第三次握手請求 334
24.4.4 支付請求 334
24.4.5 支付反饋 335
24.5 示例的集成 336
24.5.1 示例代碼的獲取和集成 336
24.5.2 板級編譯文件的修改 338
24.5.3 通用編譯文件的修改 338
24.5.4 編譯運行 339
24.5.5 示例支持的命令說明 339
24.5.6 服務器端工具 340
24.6 組包操作嵌入內核 340
24.7 支付系統與生物特征的結合 340
24.8 小結 341
第25章 TEE可信應用的使用領域 342
25.1 在線支付 342
25.2 數字版權保護 342
25.3 身份驗證 343
25.4 其他領域 343
術語表 345
序: