2.3.1什么是TrustZone,它有什么作用
TrustZone是Arm開發(fā)的一項核心技術(shù),作為Armv8-M架構(gòu)的一部分,通過強制硬件隔離提供系統(tǒng)級安全措施。TrustZone要求在軟件中劃分安全和非安全MCU區(qū)域?qū)?yīng)的邏輯分區(qū),從而創(chuàng)建受保護的環(huán)境。該技術(shù)通常在搭載ArmCortex-M33內(nèi)核的器件上實現(xiàn),個別情況下也在搭載ArmCortex-M23內(nèi)核的器件上實現(xiàn)。
內(nèi)存區(qū)域劃分為三個不同的分區(qū):
一個安全分區(qū),用于密鑰存儲和數(shù)據(jù)解密等受信任或受保護的IP;
一個非安全分區(qū),用于常規(guī)應(yīng)用;
以及一個非安全可調(diào)用分區(qū),用作其他兩個分區(qū)之間的網(wǎng)關(guān)。
通過最后一個非安全可調(diào)用分區(qū),位于非安全分區(qū)中的代碼可以調(diào)用安全分區(qū)中的服務(wù)。此功能可以通過跳板(veneer)實現(xiàn),支持隔離安全分區(qū)和非安全分區(qū)。
如上圖所示:TrustZone支持對安全區(qū)域和非安全區(qū)域進行隔離。在安全和非安全狀態(tài)下都可以訪問非安全環(huán)境中的函數(shù)和數(shù)據(jù),而非安全環(huán)境中的例程只能通過調(diào)用位于非安全可調(diào)用環(huán)境(NSC)的跳板來訪問安全環(huán)境中的服務(wù)。通過此方式提供一個進入安全環(huán)境的確定入口點。
2.3.2安全環(huán)境和非安全環(huán)境的劃分
現(xiàn)在我們已經(jīng)清楚,程序需要劃分為安全和非安全環(huán)境,我們該如何相應(yīng)地對軟件進行分區(qū)?為此,基于TrustZone的系統(tǒng)始終包含兩個不同的項目:一個安全項目,另一個是非安全項目。二者都可以利用SRAM以及代碼和數(shù)據(jù)閃存,但只有安全代碼可以直接訪問兩個(安全和非安全)分區(qū)。
可借助e2studio中的項目配置器設(shè)置這些項目。創(chuàng)建新項目后,系統(tǒng)將提示您選擇項目應(yīng)具有的類型。
Flat扁平化(非TrustZone)項目
TrustZone安全項目
TrustZone非安全項目
注解:
關(guān)于TrustZone的具體應(yīng)用方法請參考本教程的最后章節(jié)的TrustZone應(yīng)用示例。與安全環(huán)境和非安全環(huán)境的劃分相關(guān)的內(nèi)容包括:跨邊界的函數(shù)調(diào)用、從安全代碼到非安全代碼的回調(diào)、保護函數(shù)等。
2.3.3器件生命周期管理(DLM)
器件生命周期(DLM)定義了器件壽命的不同階段,并控制調(diào)試接口、串行編程接口和瑞薩測試模式的功能。出于安全原因,這樣便可將位于安全環(huán)境中的代碼的編寫與在非安全環(huán)境中運行的應(yīng)用程序的編寫分開,并且可以由兩個獨立的團隊來開發(fā)產(chǎn)品:由安全開發(fā)人員團隊創(chuàng)建信任根(RoT)或孤立的子系統(tǒng),并由非安全環(huán)境的設(shè)計人員創(chuàng)建使用該RoT或子系統(tǒng)的應(yīng)用程序。靈活配置軟件包(FSP)和e2studio支持這種設(shè)計劃分。
安全環(huán)境的代碼準(zhǔn)備就緒后,可將其預(yù)先燒錄到器件中,并將生命周期設(shè)置為NSECSD,從而鎖定安全環(huán)境,或者作為捆綁包由非安全項目引用。應(yīng)用程序設(shè)計人員將以此作為起點,在非安全環(huán)境中編寫應(yīng)用程序,對其進行調(diào)試,然后將其燒錄到器件中。如果需要,他們還可以禁用所使用的閃存模塊的編程和擦除功能。最后一步,將生命周期的狀態(tài)設(shè)置為已部署、調(diào)試鎖定或引導(dǎo)鎖定。這樣一來,整個器件可獲得保護,并且不能對編程接口和器件進行調(diào)試、讀取或編程。如下圖顯示了器件生命周期可能的狀態(tài)和轉(zhuǎn)換。
器件生命周期管理的不同狀態(tài):
有三種不同的調(diào)試訪問級別,它們視生命周期的狀態(tài)而變化:
DBG2:允許調(diào)試器連接,訪問存儲器和外設(shè)沒有任何限制。
DBG1:允許調(diào)試器連接,但訪問只限于非安全內(nèi)存區(qū)域和外設(shè)。
DBG0:不允許進行調(diào)試連接。
下面的表格提供了對每個生命周期的解釋:
可以使用瑞薩閃存編程器(RenesasFlashProgrammer(RFP))或瑞薩器件分區(qū)管理器(DevicePartition Manager)執(zhí)行從一種狀態(tài)到另一種狀態(tài)的轉(zhuǎn)換,但后者可選擇的狀態(tài)有限??梢酝ㄟ^使用身份驗證密鑰來保護狀態(tài)之間的轉(zhuǎn)換。有關(guān)不同DLM狀態(tài)和器件特定轉(zhuǎn)換的更多信息,請參見相應(yīng)微控制器的用戶手冊。
-
mcu
+關(guān)注
關(guān)注
146文章
17718瀏覽量
358209 -
ARM
+關(guān)注
關(guān)注
134文章
9270瀏覽量
373521 -
瑞薩
+關(guān)注
關(guān)注
36文章
22356瀏覽量
87579 -
生命周期
+關(guān)注
關(guān)注
0文章
16瀏覽量
7496 -
trustzone
+關(guān)注
關(guān)注
0文章
21瀏覽量
12621
原文標(biāo)題:TrustZone介紹及用途與器件生命周期管理(DLM)——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南連載(05)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
embOS如何支持Arm TrustZone

TrustZone結(jié)構(gòu)化消息是什么?
關(guān)于Arm的動態(tài)TrustZone技術(shù)知識介紹
介紹Cortex-A和Cortex-M的TrustZone之間的差異
了解體系結(jié)構(gòu)-適用于AArch64的TrustZone介紹
ARMv8-A TrustZone軟件對實施SVE的系統(tǒng)的影響
STM32 MCU TrustZone開發(fā)調(diào)試技巧分享
ARM TrustZone技術(shù)對Zynq SoC的作用

Arm? TrustZone? 技術(shù)簡介

STM32 MCU TrustZone開發(fā)調(diào)試技巧分享

STM32L5中如何關(guān)閉TrustZone

armv9-動態(tài)Trustzone技術(shù)的介紹

STM32 TrustZone 開發(fā)調(diào)試技巧

評論