《瑞薩RA產(chǎn)品家族初學(xué)者指南》系列文章已收錄成合集,歡迎點擊上方查看合集并訂閱!
11. 安全性和TrustZone
本章目錄
-
什么是TrustZone,它有什么作用?
-
安全環(huán)境和非安全環(huán)境的劃分
-
器件生命周期管理
-
TrustZone用例
11.2.2 從安全代碼到非安全代碼的回調(diào)
外設(shè)位于安全環(huán)境,但提供中斷服務(wù)的回調(diào)函數(shù)位于非安全環(huán)境,我們該如何處理這種情況?通常,在FSP回調(diào)中,回調(diào)結(jié)構(gòu)由ISR在堆棧中分配,然后將由回調(diào)函數(shù)使用。由于中斷服務(wù)程序(ISR)和回調(diào)函數(shù)位于不同的環(huán)境中,如果回調(diào)函數(shù)試圖訪問安全環(huán)境中的回調(diào)結(jié)構(gòu),將發(fā)生安全故障。
FSP通過將回調(diào)結(jié)構(gòu)分配到兩種環(huán)境都可以使用的內(nèi)存區(qū)域解決了這個問題。通過使用callbackSet() API對其進行初始化,這是一個允許訪問安全環(huán)境的保護函數(shù)(有關(guān)保護函數(shù)的介紹,請參見下文第11.2.3章)。該調(diào)用如下所示:

在模塊的配置結(jié)構(gòu)中已經(jīng)提供了回調(diào)函數(shù)指針和上下文指針,但二者必須再次創(chuàng)建,因為安全端的配置結(jié)構(gòu)與非安全端的結(jié)構(gòu)是分開構(gòu)建的。指向易失性回調(diào)內(nèi)存的指針指向某個位置,可在該位置將內(nèi)存分配給可從兩種環(huán)境訪問的結(jié)構(gòu)。這樣便可消除安全故障。
11.2.3 保護函數(shù)
保護函數(shù)的應(yīng)用程序編程接口(API)允許從非安全項目訪問位于安全環(huán)境中的驅(qū)動程序。瑞薩實現(xiàn)的這項功能是獨一無二的,并且正在申請專利。靈活配置軟件包(FSP)將自動為FSP配置器中標記為非安全可調(diào)用的所有堆棧頂部模塊和/或驅(qū)動程序API生成保護函數(shù),并將其添加到NSC區(qū)域的項目中。此外,F(xiàn)SP將為相應(yīng)的NSC實例創(chuàng)建非安全模塊實例。
這些實例的使用方法沒有特別之處,但其p_ctrl和p_cfg成員設(shè)置為FSP_SECURE_ARGUMENT,相當(dāng)于NULL,并且其p_api成員指向保護函數(shù)而不是實際的成員函數(shù)。保護函數(shù)本身將p_ctrl和p_cfg成員硬編碼到安全環(huán)境內(nèi)存中。在安全和非安全內(nèi)存中都存在驅(qū)動程序,并在不同端使用不同通道的情況下,這可消除通過操縱p_ctrl和/或p_cfg結(jié)構(gòu)以直接從非安全代碼訪問安全通道的可能性。保護函數(shù)還會檢查所有輸入指針,以確保調(diào)用方不會覆蓋安全內(nèi)存。

此外,如果設(shè)計人員希望僅向非安全程序員公開有限范圍的API,則可以選擇添加訪問控制的附加級別或刪除保護函數(shù)。繼續(xù)以SCI為例,安全環(huán)境的程序員可以打開一個通道并配置為所需的波特率,但通過刪除g_uart0_write_guard() API之外的所有API,使得只有寫API可供非安全應(yīng)用程序的開發(fā)人員使用。
11.3 器件生命周期管理
器件生命周期定義了器件壽命的不同階段,并控制調(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)和e2 studio支持這種設(shè)計劃分。
安全環(huán)境的代碼準備就緒后,可將其預(yù)先燒錄到器件中,并將生命周期設(shè)置為NSECSD,從而鎖定安全環(huán)境,或者作為捆綁包由非安全項目引用。應(yīng)用程序設(shè)計人員將以此作為起點,在非安全環(huán)境中編寫應(yīng)用程序,對其進行調(diào)試,然后將其燒錄到器件中。如果需要,他們還可以禁用所使用的閃存模塊的編程和擦除功能。最后一步,將生命周期的狀態(tài)設(shè)置為已部署、調(diào)試鎖定或引導(dǎo)鎖定。這樣一來,整個器件可獲得保護,并且不能對編程接口和器件進行調(diào)試、讀取或編程。圖11-9顯示了可能的狀態(tài)和轉(zhuǎn)換,而圖11-10中的表格提供了對每個生命周期的解釋。

圖11-9:器件生命周期管理的不同狀態(tài)
有三種不同的調(diào)試訪問級別,它們視生命周期的狀態(tài)而變化:
-
DBG2:允許調(diào)試器連接,訪問存儲器和外設(shè)沒有任何限制。
-
DBG1:允許調(diào)試器連接,但訪問只限于非安全內(nèi)存區(qū)域和外設(shè)。
-
DBG0:不允許進行調(diào)試連接。

圖11-10:器件周期管理不同階段的描述
可以使用瑞薩閃存編程器或瑞薩器件分區(qū)管理器執(zhí)行從一種狀態(tài)到另一種狀態(tài)的轉(zhuǎn)換,但后者可選擇的狀態(tài)有限??梢酝ㄟ^使用身份驗證密鑰來保護狀態(tài)之間的轉(zhuǎn)換。有關(guān)不同DLM狀態(tài)和器件特定轉(zhuǎn)換的更多信息,請參見相應(yīng)微控制器的用戶手冊。
原文標題:瑞薩RA產(chǎn)品家族初學(xué)者指南-第11章(3)
文章出處:【微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
mcu
+關(guān)注
關(guān)注
146文章
17970瀏覽量
366546 -
瑞薩
+關(guān)注
關(guān)注
36文章
22381瀏覽量
88025
原文標題:瑞薩RA產(chǎn)品家族初學(xué)者指南-第11章(3)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
瑞薩電子RA系列微控制器的可擴展性強的配置軟件包 (FSP)安裝下載與使用指南
【RA-Eco-RA4M2開發(fā)板評測】初學(xué)瑞薩-使用瑞薩flash programmer燒錄程序
瑞薩RA8快速上手指南:Cortex-M85內(nèi)核瑞薩RA8開發(fā)環(huán)境搭建 并點亮一個LED

瑞薩RA4L1產(chǎn)品特色功能及應(yīng)用場景

瑞薩電子RA4L1 MCU的基本特性和應(yīng)用場景

EE-269:以太網(wǎng)802.3初學(xué)者指南

瑞薩電子RZ MPU家族精品RZ/N2L產(chǎn)品介紹

評論