[轉] 什麼是OPTEE-OS

1. 爲什麼會出現這種技術?

爲了安全,例如:保護指紋虹膜的生物特徵數據

2. 爲了確保數據安全各家公司都做了些什麼?

Arm公司提出的了trustzone技術,用一根安全總線(稱爲NS位)來判斷當前處於secure world還是non-secure world狀態,狀態的切換由ATF(arm trusted firmware)來完成

3. 有哪些Normal world os

Linux,Android

4. 有哪些secure world os

OP-TEE,Trusty,QSEE,SierraTEE

5. 什麼是TEE?

TEE全稱爲Trusted execute environment,也就是信任執行環境。TEE是基於trustzone技術搭建的安全執行環境

6. TEE需要硬件支持嗎?

是的,硬件軟件缺一不可,兩者相輔相成。所謂的硬件是集成到處理器中的功能

7. TEE硬件視圖

 

8. TEE軟件視圖

 

 

9. TEE OS是統一的嗎?

不是,目前各家廠商和組織都有各自的實現方式,但是所有方案的外部接口都會遵循GP(GlobalPlatform)標準

 

10. 各家廠商和組織的TEE OS到底有何區別?

TA的添加和加載時的校驗有所區別

 

11. OPTEE-OS屬於哪家廠商的?

屬於Trustonic的

12. OPTEE-OS全稱是什麼?

Open-source Portable Trusted Execution Environment OS

13. 到底是如何實現安全的呢?

當處於secure world狀態,那麼就會執行TEE OS部分的代碼,當處於non-secure world狀態時,就執行linux kernel部分的代碼

14. Linux內核能直接訪問TEE部分的資源嗎?

Linux kernel不能直接訪問TEE部分的資源

15. Linux 內核如何才能訪問TEE部分的資源呢?

Linux kernel能通過特定的TA(Trust Appliaction)和CA(Client Application)來訪問TEE部分特定的資源

16. TA都做了些什麼?

處理保密信息,如信用卡pin碼,私有密碼,客戶數據,受DRM (Digital Rights Management,數字版權管理)保護的媒體;

爲正常內核提供服務,以便不用協調正常內核就可以充分利用保密信息

17. OP-TEE都包括些什麼內容?

Secure world OS(optee_os)、normal world client(optee_client)、test suite(optee_test/xtest)以及linux驅動

18. OP-TEE軟件架構

產品開發團隊負責開發一個運行在linux上的client application(CA)和一個運行在OP-TEE上的trusted application(TA),CA使用TEE client API與TA通信,並且從TA獲取安全服務。CA和TA使用共享內存進行通信。

 

19. TEE啓動流程

理論上來說,在啓動過程中,OP-TEE必須儘可能早的啓動(bootloader的運行優先於OP-TEE會帶來一個缺陷,觸碰敏感數據)。在一個典型的linux啓動過程中,rom bootloader加載/執行一個第一階段bootloader(如:SPL,MLO,SBL1,FSBL),這個第一階段bootloader然後執行一個第二階段bootloader(如:U-Boot,LittleKernel),這個第二階段bootloader會執行linux內核,所有的這些過程來自一個安全世界上下文。

在一個基於ARMv7的處理器上,附有TEE的典型啓動流程是SPL加載OP-TEE和U-Boot,然後跳轉到OP-TEE,一旦OP-TEE初始化完畢,OP-TEE就會切換到非安全上下文,並且跳轉到U-Boot中。OP-TEE代碼會繼續放在內存中,以便爲linux內核提供安全服務。

在一個基於ARMv8的處理器上,TEE啓動流程還涉及到一個SPL加載ARM Trusted firmware的步驟。SPL跳轉到arm trusted firmware,這個firmware隨後與OP-TEE共同協作,OP-TEE轉而跳轉到處於非安全上下文的U-Boot中。

在一個ARMv8平臺上,ARM Trusted firmware提供一個監視器代碼去管理安全世界和非安全世界之間的切換,而在ARMv7平臺上這一功能是被嵌入到OP-TEE中的。

 

20. OP-TEE對linux的支持情況是怎樣的?

針對OP-TEE的linux內核驅動出現在內核版本4.12及其以上的版本,如果您運行的內核版本較老,那麼您需要backport 補丁(https://lwn.net/Articles/716737/)。當然您也需要做以下操作來使能此驅動:

  20.1   設置內核配置項:CONFIG_OPTEE=y

  20.2   添加設備樹節點(可以參考這裏https://github.com/nodeax/linux-at91/commit/6f4de47f0265d75a7d3a1335b5191d464d611ebe)

  (可選操作:編譯OP-TEE OS時使能CFG_DT=y,這樣就能在運行時添加必要的節點)

 

 

21. OP-TEE OS爲TA提供了安全數據存儲設備

數據要麼以某種加密/授權的方式存儲在linux文件系統/data/tee中,要麼就是存儲在一個Emmc RPMB(Replay Protected Memory Block,重放保護內存塊)的分區中

22. TEE能減少硬件成本

TEE能替代專用的安全芯片。

 

23. TEE能最小化應用程序的修改

爲了訪問硬件特性,許多安全芯片給用戶空間程序提供OpenSSL引擎接口。一個相同的模型能夠通過開發一個TEE client app作爲OpenSSL引擎與TA之間的接口,因此能夠最小化用戶空間程序的任何修改。Trusted Application將需要實現密鑰管理和加密操作等接口。OP-TEE OS包含libtomcrypt,這個庫提供各種各樣的對稱/非對稱/橢圓曲線加密函數,因此TA 大部分工作是負責輸入校驗和調用合適的OP-TEE 核心API

 

24. TEE加密操作架構示例

 

25. 參考資料

https://www.timesys.com/security/trusted-software-development-op-tee/

 

轉自:https://www.cnblogs.com/dakewei/p/10267774.html

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