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

帥峰雲、黃騰、宋洋

  • 出版商: 機械工業
  • 出版日期: 2018-09-30
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • 裝訂: 平裝
  • ISBN: 7111609565
  • ISBN-13: 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