19. OP-TEE中TA與CA執行流程詳解-------軟件架構篇

    歷經一年多時間的系統整理合補充,《手機安全和可信應用開發指南:TrustZone與OP-TEE技術詳解 》一書得以出版,書中詳細介紹了TEE以及系統安全中的所有內容,全書按照從硬件到軟件,從用戶空間到內核空間的順序對TEE技術詳細闡述,讀者可從用戶空間到TEE內核一步一步瞭解系統安全的所有內容,同時書中也提供了相關的示例代碼,讀者可根據自身實際需求開發TA。目前該書已在天貓、京東、噹噹同步上線,鏈接如下(麻煩書友購書時能給予評論,多謝多謝)

京東購買地址

噹噹購買地址

天貓購買地址

非常感謝在此期間大家的支持以及各位友人的支持和幫助!!!。

爲方便和及時的回覆讀者對書中或者TEE相關的問題的疑惑,也爲了大家能有一個統一的交流平臺。我搭建了一個簡單的論壇,網址如下:

https://www.huangtengxq.com/discuz/forum.php

關於您的疑問可在“相關技術討論“”中發帖,我會逐一回復。也歡迎大家發帖,一起討論TEE相關的一些有意思的feature。共同交流。同時該論壇中也會添加關於移動端虛擬化的相關技術的板塊,歡迎各位共同交流學習

  

要使用OP-TEE來實現特定的安全功能就需要開發者根據自己的實際需求開發特定的CA和TA程序,並將TA集成到OP-TEE中。CA端負責實現在RTOS端userspace層面的對外接口,而TA端的代碼則是在OP-TEE OS的userspace層面負責實現具體的安全功能,例如使用何種算法組合來對數據進行安全處理,對處理後的數據的安全保存,解密加密數據等等功能。接下來的章節將詳細介紹CA到TA之間的所有流程以及相關結構體設置,接口調用等等,關於如何在OP-TEE中添加自有的TA和CA程序請參考文檔《2. OP-TEE中添加自己的TA和CA》。關於OP-TEE的中斷處理的流程請查閱《OP-TEE中的中斷處理》相關文章,接下來的章節將介紹不考慮中斷的情況下,一個完整的TA和CA之間進行調用的完整過程分析。下圖爲系統中CA與TA之間執行的軟件框圖。

  藉助OP-TEE來實現特定安全需求時,一次完整的功能調用一般都是起源於CA,TA做具體功能實現並返回數據到CA,而整個過程需要經過OP-TEE的client端接口,OP-TEE在Linux kernel端的驅動,Monitor模式下的SMC處理,OP-TEE OS的thread處理,OP-TEE中的TA程序運行,OP-TEE端底層庫或者硬件資源支持等幾個階段。當TA執行完具體請求之後會按照原路徑將得到的數據返回給CA。

  由於每家對具體API的具體實現不一樣,但是其功能和對外接口都是遵循GP的標準來做的,筆者就遇見海思和mstar在實現CA端的API的時就各有各的方式,其中海思的實現方便更加複雜一點,因爲海思在添加TA和CA的時候,在驅動層和TEE端都會對調用TEE服務的process或者thread做權限檢查,建立了類似白名單機制,在海思的TEE中添加TA和CA的時候必須要注意CA端調用的process的註冊。

  由於當前所有廠商的TEE方案都會遵循GP標準,OP-TEE也遵循GP(Global Platform)標準,本文中牽扯到的API的實際實現則以OP-TEE中的source code爲準。

  在《OP-TEE中TA與CA執行流程介紹》系列文章中,筆者將以實際的CA和TA例子爲例,分別按照如下章節對整個過程做詳細的介紹:

1. CA部分的代碼介紹

2. TEE_Client_API(libteec)的實現

3. tee_supplicant服務介紹

4. OP-TEE在linux端的驅動

5. Monitor mode中的處理

6. OP-TEE OS中thread的handle

7. TA部分的代碼介紹

開擼代碼~~~~~~~~~~~~~~~~~~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章