可信執行環境(TEE)技術介紹(Trusted Execution Environment)

本文對當前流行的移動終端TEE技術做簡要概述,並對一些細節展開討論。


1. 當前移動安全背景


當前移動終端面臨這嚴重的安全威脅,威脅點如下圖所示:



因此移動廠商、用戶、服務提供商等各方都對移動安全提出了強烈的需求。



2. REE介紹(Rich Execution Environment)


REE簡介

所有移動設備都支持REE

運行通用OS:Android、iOS、Linux

爲上層App提供設備的所有功能

開放的、可擴展的且通用的

在互聯互通的網絡世界中運轉



REE存在安全隱患

基於OS實現的App隔離極易被繞過;

OS代碼龐大,漏洞頻發;

OS很難被檢驗和認證;

OS可以看到App內部的所有數據;

大量的惡意代碼和高級的攻擊技術;

缺乏隔離意味着App無法安全存儲密鑰;

需要一個隔離環境操作密鑰和敏感數據.


虛擬化技術實現的隔離

多個OS執行在虛擬的處理器上

基於軟件的隔離,缺乏硬件安全性

Hypervisor可以訪問所有OS的數據:進而可以訪問所有App的數據

Hypervisor存在bugs

Malware通過控制hypervisor 竊取各種密鑰

運行性能損耗大



SE實現的安全平臺

SE具備極強的安全等級

SE向外提供的接口和功能極其有限:緩慢的串口連接、性能極低的CPU、無法處理大量數據、無UI能力

SE主要關注於保護內部密鑰

TEE+SE的方案更加有強大:強於單獨使用某一技術


3.TEE(Trusted Execution Environment)的提出


GlobalPlatform TEE 架構



TEE具備的特性

受硬件機制保護:TEE隔離於REE、只能通過特定的入口與TEE通信、並不規定某一種硬件實現方法

高性能:TEE運行時使用CPU的全部性能(獨佔)

快速通信機制:TEE可以訪問REE的內存、REE無法訪問受硬件保護的TEE內存

TEE中可以同時運行多個Trusted Application(TA)

由GlobalPlatform(GP)標準化:可在多種平臺上移植

TEE中的所有組件模塊先定義安全,再考慮性能

TEE中的可執行代碼在執行前先要被驗證(validate)

對於密鑰使用安全存儲機制:認證性、完整性和機密性

GP定義了TEE的保護輪廓(Protection Profile):定義了所需的硬件保護強度

TA間相互隔離


TEE的安全設計

基本目標:
1.保護敏感數據免受REE和其他環境的惡意行爲
2.必須使用硬件機制進行保護,且該機制僅能受控於TEE

保護強度:
1.對於密碼學算法,當前採用128bit的安全強度

可抵禦某些基於硬件的攻擊:
1.抵禦能力不如SE
2.SoC內部無安全防護措施

TEE必須被安全啓動:
1.使用片上(on-chip)資源實現完全的安全啓動流程
2.在控制權轉移過程中完成完整性的傳遞

TEE提供可信存儲:
1.
保護數據的認證性、機密性和完整性
2.安全防護能力等同於TEE
3.可以被存儲於非安全區域
4.必須提供某種回滾保護機制


TEE軟件架構



TEE Internal APIs

 TEE Internal Core API:向上提供TrustedOS的功能、與CA通信、TA與TA通信、安全存儲、密碼學功能、時間

其他APIs:構建於Internal Core API之上,共享錯誤處理和API定義規則

私有APIs:GP未定義,無法通用,允許產品的特定差異化


啓動流程

GP標準:啓動流程只在系統啓動時執行一次、要求啓動流程至少建立一個信任根(RoT)、需要一些機制和方法去實現

一般情況下啓動基於ROM代碼:允許其他實現、依次驗證加載的代碼

一般情況下TEE首先啓動:阻止REE接口生效

系統可以實現一個啓動時的TEE(完全TEE的子集)

啓動流程1:Trusted OS首先啓動,如下圖:


啓動流程2:Trusted OS按需啓動,如下圖:


4.TEE實現:ARM TrustZone




TrustZone

爲TA提供系統硬件隔離

嵌入式安全解決方案

ARM Cortex-A系列處理器及Cortex-M微處理器

創建了一個隔離的Secure World

REE與TEE通過SMC實現切換

應用場景包括:認證,支付,內容保護

目前實現和應用TEE的主要方式


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