trustzone

系統範圍的安全方法

ARM TrustZone® 技術是系統範圍的安全方法,針對高性能計算平台上的大量應用,包括安全支付、數字版權管理 (DRM)、企業服務和基於 Web 的服務。

TrustZone 技術與 Cortex™-A 處理器緊密集成,並通過 AMBA® AXI 匯流排和特定的 TrustZone 系統 IP 塊在系統中進行擴展。此系統方法意味著可以保護安全內存、加密塊、鍵盤和屏幕等外設,從而可確保它們免遭軟體攻擊。

按照 TrustZone Ready Program 建議開發並利用 TrustZone 技術的設備提供了能夠支持完全可信執行環境 (TEE) 以及安全感知應用程序和安全服務的平台。

選擇意義


移動設備已發展為能夠從 Internet 下載各種大型應用程序的開放軟體平台。這些應用程序通常由設備 OEM 進行驗證以確保質量,但並非可對所有功能進行測試,並且攻擊者正在不斷創建越來越多以此類設備為目標的惡意代碼。
同時,移動設備處理重要服務的需求日益增加。從能夠支付、下載和觀看某一特定時段的最新好萊塢大片,到能夠通過手機遠程支付帳單和管理銀行帳戶,這一切都表明,新的商業模式已開始出現。
這些發展趨勢已使手機有可能成為惡意軟體、木馬rootkit 等病毒的下一軟體攻擊目標。但是,通過應用基於 ARM TrustZone 技術的高級安全技術並整合SecurCore™防篡改元素,可開發出能夠提供功能豐富的開放式操作環境和強大安全解決方案的設備。

應用示例


- 實現安全 PIN 輸入,在移動支付和銀行業務中加強用戶身份驗證
- 防惡意軟體,可防止軟體攻擊
- 數字許可權管理
- 軟體許可證管理
- 基於忠誠度的應用
- 基於雲的文檔的訪問控制
- 電子售票移動電視
可信應用程序採用基於 TrustZone 技術的 SoC(運行可信執行環境),與主 OS 分開,可防止軟體/惡意軟體攻擊。TrustZone 可切換到安全模式,提供硬體支持的隔離。可信應用程序通常是可集裝箱化的,如允許不同支付公司的可信應用程序共存於一台設備上。處理器支持
ARM TrustZone 技術是所有Cortex-A 類處理器的基本功能,是通過 ARM 架構安全擴展引入的。這些擴展可在供應商、平台和應用程序中提供一致的程序員模型,同時提供真實的硬體支持的安全環境。
支持 TrustZone 的 ARM 處理器包括:
• ARM Cortex-A9
• ARM Cortex-A8
• ARM Cortex-A7
• ARM Cortex-A5
• ARM1176
GlobalPlatform
API 支持
ARM 已將其 TrustZone API 提供給 GlobalPlatform,該 API 已發展為 TEE 客戶端 API。ARM 還與其他一流公司合作開發在可信 OS 與可信應用程序之間進行交互的 TEE 內部 API。有關詳細信息,請訪問 GlobalPlatform 網站。預計 TEE 的標準化將會促使可信應用程序部署的快速增長

硬體架構


trustzone
trustzone
TrustZone 硬體架構旨在提供安全框架,從而使設備能夠抵禦將遇到的眾多特定威脅。TrustZone 技術可提供允許 SoC 設計人員從大量可在安全環境中實現特定功能的組件中進行選擇的基礎結構,而不提供固定且一成不變的安全解決方案。
架構的主要安全目標是支持構建可編程環境,以防止資產的機密性和完整性受到特定攻擊。具備這些特性的平台可用於構建一組範圍廣泛的安全解決方案,而使用傳統方法構建這些解決方案將費時費力。
可通過以下方式確保系統安全:隔離所有 SoC 硬體和軟體資源,使它們分別位於兩個區域(用於安全子系統的安全區域以及用於存儲其他所有內容的普通區域)中。支持 TrustZone 的 AMBA3 AXI™ 匯流排構造中的硬體邏輯可確保普通區域組件無法訪問安全區域資源,從而在這兩個區域之間構建強大邊界。將敏感資源放入安全區域的設計,以及在安全的處理器內核中可靠運行軟體可確保資產能夠抵禦眾多潛在攻擊,包括那些通常難以防護的攻擊(例如,使用鍵盤或觸摸屏輸入密碼)。通過在硬體中隔離安全敏感的外設,設計人員可限制需要通過安全評估的子系統的數目,從而在提交安全認證設備時節省成本。
TrustZone 硬體架構的第二個方面是在一些ARM 處理器內核中實現的擴展。通過這些額外增加的擴展,單個物理處理器內核能夠以時間片的方式安全有效地同時從普通區域和安全區域執行代碼。這樣,便無需使用專用安全處理器內核,從而節省了晶元面積和能源,並且允許高性能安全軟體與普通區域操作環境一起運行。
更改當前運行的虛擬處理器后,這兩個虛擬處理器通過新處理器模式(稱為監視模式)來進行上下文切換。
物理處理器用於從普通區域進入監視模式的機制受到密切控制,並且這些機制始終被視為監視模式軟體的異常。要監視的項可由執行專用指令(安全監視調用 (SMC) 指令)的軟體觸發,或由硬體異常機制的子集觸發。可對 IRQ、FIQ、外部數據中止和外部預取中止異常進行配置,以使處理器切換到監視模式。
在監視模式中執行的軟體是實現定義的,但它通常保存當前區域的狀態,並還原將切換到的區域位置的狀態。然後,它會執行從異常返回的操作,以在已還原區域中重新啟動處理過程。TrustZone 硬體架構的最後一個方面是安全感知調試基礎結構,它可控制對安全區域調試的訪問,而不會削弱普通區域的調試可視化。

軟體架構


trustzone
trustzone
在 SoC 硬體中實現安全區域要求在其中運行某些安全軟體,並利用存儲在其中的敏感資產。

安全軟體架構

可能有許多支持 TrustZone 的處理器內核上的安全區域軟體堆棧可實現的軟體架構。最高級的軟體架構是專用安全區域操作系統;最簡單的是放置在安全區域中的同步代碼庫。這兩個極端架構之間有許多中間選項。

安全內核

專用安全內核可能是一種複雜但強大的設計。它可模擬多個獨立安全區域應用程序的併發執行、新安全應用程序的運行時下載以及完全與普通區域環境獨立的安全區域任務。
這些設計與將在 SoC 中看到的軟體堆棧非常類似,它們在非對稱多處理 (AMP)(或下載 TrustZone 安全白皮書,685 KB)配置中使用兩個單獨的物理處理器。在每個虛擬處理器上運行的軟體是獨立的操作系統,並且每個區域使用硬體中斷來搶佔當前運行的區域和獲得處理器時間。
使用將安全區域任務與請求這些任務的普通區域威脅相關聯的通信協議的緊密集成設計可提供對稱多處理 (SMP)設計的許多優點。例如,在這些設計中,安全區域應用程序可繼承它支持的普通區域任務的優先順序。這將導致對媒體應用程序做出某些形式的軟實時響應。
安全擴展是 ARM 架構的開放式組件,因此任何開發人員都可創建自定義安全區域軟體環境,以滿足其要求。
由於實現完全安全操作系統實際上非常複雜,並且可能需要驗證其功能和性能,因此許多合作夥伴傾向於與此領域中的專業公司(如 Gieseke & Devrient 或Trusted Logic)進行合作。

系統示例


可採用多種方法實現支持 TrustZone 的設備,但根據目標應用以及對性能、功耗和成本的工程權衡,可將這些方法細分為三個主要的組或解決方案層。

第一層

trustzone
trustzone
TrustZone 第一層系統架構框圖(1200 像素寬)
第一層解決方案代表基本解決方案,旨在確保能夠在開放軟體平台設備的鍵盤和屏幕上安全輸入個人標識號 (PIN)。在非安全模式下,鍵盤和屏幕操作通常受 OpenOS(如 WindowsCE、Linux 或 Symbian)的控制,但當應用程序請求支付時,這些外設將在安全內核的控制之下。
由於希望此類解決方案儘可能降低成本,因此只需要添加 TrustZone 內存適配器構造組件即可保護片上 SRAM 的連續塊。通過將主密鑰和 SIM 介面塊的 AXI2AHB 橋綁定到安全狀態,可確保其安全無誤。同樣,鍵盤主介面和 LEC 控制器的橋可由處理器進行動態控制;從而將整個區域設置為安全或非安全模式。
建議在啟動設備期間使用完整的“信任根”流程。在許多情形下,應通過集成的啟動 ROM 完成此操作,即先運行基本 OS,然後載入監視器和 SecureOS。完成後,SecureOS 將啟動傳統 OpenOS,以確保惡意代碼無法進入流程。

第二層

trustzone
trustzone
TrustZone 第二層系統架構框圖(1200 像素寬)
第二層解決方案是第一層系統的完整超集,可確保輕鬆整合代碼移植和支付服務。第二層系統為基本數字版權管理 (DRM) 提供性價比高的平台,並且整合了 TrustZone 地址空間控制器 (TZASC) 以保護用於承載重要內容的 RAM 區域。並且,片外解碼程序引擎可用於盡可能降低成本或提供特定解碼技術,同時阻止非安全軟體進行的訪問。
為啟用完整 DRM,通常需要增大片上 SRAM 的大小,以為動態代碼執行提供安全空間。可能需整合 E2PROM,以保存有關可訪問哪些內容,可在哪個時段進行訪問,或剩餘播放次數的詳細信息。
在此類解決方案中,在 TrustZone 保護控制器的控制下,通常還需要動態保護更多外設,以避免非安全代碼和外設停止中間內容或解密內容,或控制媒體。

第三層

trustzone
trustzone
TrustZone 第三層系統架構框圖(1200 像素寬)
第三層解決方案是在現有解決方案的基礎上構建的,可提供高性能 DRM 解決方案,以支持視頻流和即時解壓縮。在此情形下,設備將受到完全保護以提供一個可由內容提供商驗證的平台,從而確保密鑰受到完全保護,並且只有經過授權才能觀看相關材料。這一點在許多方面均相似,但提供具有完全并行的安全和非安全區域的雙核實現的性價比會更高。
除更加安全的動態安全外設外,此解決方案還包括DMA 控制器以及通過加速器一致性埠 (ACP) 連接到多核處理器的媒體加速器。

系統IP支持


安全性是整個系統的屬性,而不僅僅是某個組件的屬性。採用 ARMTrustZone技術可更加輕鬆地對系統進行分區,以確保安全,同時保持對安全子系統的硬體支持保護。使用 TrustZone 技術設計安全子系統不僅需要支持 TrustZone 技術的處理器內核,還需要匯流排構造、安全內存和安全外設。ARM 可提供眾多構造和外設組件,以提供安全子系統的基礎:
TrustZone 系統 IP 所需的組件
高級AMBA 3 互連ARM AMBA3.0 AXI 匯流排可將處理器內核的安全狀態傳播到 SoC 以內和以外的內存和外設NIC-301
TrustZone 地址空間控制器TZ ASC 可用作安全性得到增強的內存保護單元,以確保僅在安全狀態下訪問 DRAM 區域PL380
TrustZone 內存適配器TZ MA 可用作只能在安全模式下訪問的片上內存的單區域 TZ ASCBP141
TrustZone 保護控制器TZ PC 可通過軟體控制充當動態安全外設BP147
TrustZone 中斷控制器如果 GIC(支持 MPCore 的處理器)不存在,則啟用正常和安全中斷優先順序