天天看點

ARMv8 TrustZone技術OverviewBackgroundHardwareSoftware Trusted Execution EnvironmentARMv8-M TrustZone

Overview

ARM TrustZone技術為可信軟體提供了系統硬體隔離。在過去幾年裡,這個技術僅僅出現在Cortex-A系列處理器上。随着ARMv8-M架構的釋放,為了滿足市場對嵌入式安全解決方案的需求,Cotext-M微處理器系列引入了TrustZone技術。

Background

TrustZone建立了一個隔離的Secure world,用來為系統提供機密性和完整性。數十億的應用處理器使用TrustZone保護它們的高價值代碼和資料,應用場景包括:認證,支付,内容保護等。 在應用處理器上,TrustZone為平台可信執行環境提供了一個安全邊界,也就是安全世界。

下圖展示了Secure world和non-secure world

ARMv8 TrustZone技術OverviewBackgroundHardwareSoftware Trusted Execution EnvironmentARMv8-M TrustZone

Hardware

TrustZone硬體架構提供了安全架構使得裝置可以應對各種特定的安全威脅。TrustZone技術并沒有提供一個固定的安全解決方案,而是提供了一個基礎構架允許SoC設計者選擇一些部件,在安全環境中滿足特定的功能。

這個架構的主要目标是非常簡單的:通過構造可程式設計的環境,保護資産的機密性和完整性不被特定攻擊破壞。擁有這些特點的平台自然可以構造各種安全解決方案,相對傳統方式,代價更小。

通過把SoC's的硬體和軟體資源分區,使得他們存在于兩個世界:secure world, non-secure world, secure world 用來運作本機安全性授權,而non-secure world則可以運作其他任何系統。使能TrustZone後,硬體邏輯確定non-secure world部件可以通路non-secure world資源,敏感資源則儲存在secure world中,如果運作在secure world的軟體足夠健壯,那麼可以保護大部分可能的攻擊,包括那些很難保證的安全:比如使用keyboard或者touch-scree輸入密碼。

TrustZone硬體架構的另外一個好處就是,它已經擴充到一些ARM processor cores上了。這使得某些單核處理器使用時分排程方式,安全有效的在Normal world和Secure world間切換,無需增加一個安全處理器核,既節省了矽片位置,又節電。沒一個實體處理器核提供了兩個虛拟核,一個用作non-secure, 另外一個用作secure, 并且提供一個機制在二者之間切換。安全通路通過系統總線實作,Non-secure 虛拟處理器隻能通路 non-secure系統資源,而secure處理器則可以通路所有資源。

TrustZone硬體架構也是一個secure-aware調試架構,Normal world 可以使能對Normal world 的調試,而且不會影響到Normal world的調試效果。

Non-secure world和normal world的轉換是通過 Monitor Call實作的, Secure Monitor運作在最高優先級Exception level 3(EL3)。對于支援Trust zone的微處理器,world切換是由硬體實作的。下圖是ARMv8-A和ARMv8-M的差別

ARMv8 TrustZone技術OverviewBackgroundHardwareSoftware Trusted Execution EnvironmentARMv8-M TrustZone

Software

對于基于ARMv8-A應用處理器,ARM提供了一個開源參考實作BL31,BL31是認證過的可信啟動流和安全runtime。ARM Trusted Firmware(BL31)可以很容易的內建到開源Trusted OS建立Trusted Execution Environment(TEE)。 ARM Trusted Firmware包括runtime,稱為Secure monitor, 中斷路由,以及Power State co-ordination Interface(PSCI)

ARMv8 TrustZone技術OverviewBackgroundHardwareSoftware Trusted Execution EnvironmentARMv8-M TrustZone

Trusted Execution Environment

GlobalPlatform是一個跨行業的标準定義組織, GlobalPlatform為Trusted Execution Environment提供了軟體APIs, 相容以及鑒定标準。TEE包含了三部分: 隔離技術的硬體(比如TrustZone),可信啟動,以及可信OS。TEE可以用來運作多個可信app,和其他安全技術相比TEE提供了更高的性能,并且可以通路更大數量的記憶體。

TEE的典型應用包括:可信boot, 完整性管理,認證,支付,内容保護,加密以及移動裝置管理。secure world裝置驅動提供了通路外設的安全通路接口。

GlobalPlatform TEE可以和其他安全技術一起使用,比如hypervisor

TEE profile提供了應該拒絕的攻擊的詳細資訊。

ARMv8-M TrustZone

ARMv8-M架構擴充了TrustZone技術到Cotex-M系統,在所有的關鍵點都提供了可靠的保護。

防止Secure資源被non-secure world通路使得系統開發者可以劃分他們的設計。通過使用Secure Attribute Unit(SAU 類似于MPU). 因為兩個世界的轉換是基于硬體的,幾乎在瞬間完成,這就保證了實時系統的性能,并且減少了軟體的工作量。

在正常世界寫代碼和以往一樣:應用程式可以通路特權,非特權空間以及中斷。在安全世界調用庫,函數入口點被連結到項目中。這個設計簡化了內建有TrustZone技術Cortex-M處理器

一般來說,系統供應商會提供一些安全代碼在系統範圍内設定和運作安全屬性。在一個典型的實作中,安全代碼盡可能小,以便減少攻擊面和漏洞,類似與Cotext-A處理器的TrustZone,運作在secure态的程式可以通路secure和non-secure資訊,而normal world的程式隻能通路non-secure資源。

本文來源: http://blog.csdn.net/kickxxx/article/details/53939948