ARMv8-M平臺(tái)開(kāi)發(fā)安全軟件的建議
ARM® TrustZone® 是針對(duì)片上系統(tǒng)(SoC)設(shè)計(jì)的系統(tǒng)級(jí)安全技術(shù),它基于硬件,內(nèi)置于CPU和系統(tǒng)內(nèi)核,為半導(dǎo)體芯片設(shè)計(jì)師設(shè)計(jì)設(shè)備安全性能(如可信根)量身打造。TrustZone可用于任何基于A(yíng)RM Cortex®-A的系統(tǒng),隨著全新Cortex-M23和Cortex-M33處理器的發(fā)布與升級(jí),Cortex-M也已經(jīng)支持該技術(shù)。從尺寸最小的微控制器(搭載針對(duì)Cortex-M處理器優(yōu)化的TrustZone技術(shù)),到高性能處理器(搭載針對(duì)Cortex-A處理器優(yōu)化的TrustZone技術(shù)),設(shè)計(jì)師們終于可以從設(shè)計(jì)初始就著手打造出色的安全性能了。
TrustZone安全技術(shù)將非可信資源和可信資源隔離
TrustZone技術(shù)的核心理念是將可信資源與非可信資源在硬件上實(shí)現(xiàn)隔離。在處理器內(nèi)部,軟件只能安裝于安全或非安全域其中一處;在兩個(gè)域間切換則必須經(jīng)過(guò)Cortex-A處理器的軟件(后文稱(chēng)安全監(jiān)視器)和Cortex-M處理器的硬件(核心邏輯)處理才能執(zhí)行。這種將安全(可信)域和非安全(非可信)域隔離理念的實(shí)現(xiàn)不僅涉及CPU,還涵蓋存儲(chǔ)、片上總線(xiàn)系統(tǒng)、中斷、周邊設(shè)備接口和SoC上的軟件。
針對(duì)ARMv8-M處理器(Cortex-M)的TrustZone技術(shù)
ARMv8-M架構(gòu)將TrustZone技術(shù)拓展至Cortex-M級(jí)系統(tǒng),實(shí)現(xiàn)了對(duì)所有成本點(diǎn)的安全防護(hù)。為Cortex-M度身設(shè)計(jì)的TrustZone技術(shù)可以保護(hù)固件和周邊設(shè)備,并為安全啟動(dòng)、可信更新以及可信根執(zhí)行實(shí)現(xiàn)隔離。該架構(gòu)具備嵌入式解決方案應(yīng)有的確定性實(shí)時(shí)響應(yīng)能力。同時(shí),因?yàn)榘踩c非安全域間的上下文切換在硬件中完成,所以更快實(shí)現(xiàn)轉(zhuǎn)換及更高的電源效率。該架構(gòu)無(wú)需安裝任何安全監(jiān)視器軟件,因?yàn)樘幚砥鞅旧砭湍芡瓿汕袚Q任務(wù),不僅可以減少存儲(chǔ)足跡,還能降低代碼執(zhí)行的動(dòng)態(tài)功率。
在繼續(xù)討論編程之前,我們先介紹以下幾個(gè)概念:
1. 地址定義安全
2. 新增執(zhí)行狀態(tài)
3. 跨域調(diào)用
概念1:地址定義安全
第一個(gè)需要了解的概念是:地址定義安全,即每一個(gè)地址都與一個(gè)特定的安全狀態(tài)相關(guān)。Cortex-M處理器采用全新引入的安全屬性單元來(lái)檢查地址的安全狀態(tài)。根據(jù)整體SoC設(shè)計(jì),系統(tǒng)級(jí)接口可以重寫(xiě)該屬性。選擇此狀態(tài)后,該地址還會(huì)通過(guò)一個(gè)存儲(chǔ)保護(hù)單元(視系統(tǒng)配置而定)。
地址定義安全圖解
概念2:新增執(zhí)行狀態(tài)
第二個(gè)概念是“新增執(zhí)行狀態(tài)”。ARMv7-M和ARMv6-M架構(gòu)定義了兩種執(zhí)行模式:管理者模式(handler mode)和線(xiàn)程模式(thread mode)。管理者模式是特權(quán)模式,可以接入SoC的所有資源;而線(xiàn)程模式則可以設(shè)定為特權(quán)或非特權(quán)兩種。憑借TrustZone安全拓展技術(shù),我們可以對(duì)處理器模式進(jìn)行鏡像處理,構(gòu)造安全和非安全兩種狀態(tài),每種狀態(tài)都各自包含管理者模式和線(xiàn)程模式。安全狀態(tài)和處理器模式是正交的,因此可形成4種狀態(tài)和模式的組合。在安全的存儲(chǔ)器中運(yùn)行軟件時(shí),處理器自動(dòng)設(shè)定為安全狀態(tài);反之,在非安全存儲(chǔ)器中運(yùn)行軟件時(shí),處理器自動(dòng)設(shè)定為非安全狀態(tài)。這種設(shè)計(jì)消除了本來(lái)用于管理狀態(tài)切換的安全監(jiān)控軟件的必要性,從而實(shí)現(xiàn)減少存儲(chǔ)足跡和功耗的目的。
新增正交態(tài)





