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

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

物聯(lián)網(wǎng)安全-基于Cortex-M處理器的TrustZone技術(shù)簡(jiǎn)介(1)

Arm? TrustZone? 技術(shù)簡(jiǎn)介

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

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

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

評(píng)論