《瑞薩RA產品家族初學者指南》系列文章已收錄成合集,歡迎點擊上方查看合集并訂閱!
11. 安全性和TrustZone
本章目錄
-
什么是TrustZone,它有什么作用?
-
安全環境和非安全環境的劃分
-
器件生命周期管理
-
TrustZone用例
11.2 安全環境和非安全環境的劃分
現在我們已經清楚,程序需要劃分為安全和非安全環境,我們該如何相應地對軟件進行分區?為此,基于TrustZone的系統始終包含兩個不同的項目:一個安全項目,另一個是非安全項目。二者都可以利用SRAM以及代碼和數據閃存,但只有安全代碼可以直接訪問兩個(安全和非安全)分區。
可借助e2 studio中的項目配置器設置這些項目。創建新項目后,系統將提示您選擇項目應具有的類型:
-
扁平化(非TrustZone)項目
-
TrustZone安全項目
-
TrustZone非安全項目
圖11-4:通過項目配置器的“Type Selector”(類型選擇器)頁面,可以在扁平化、安全和非安全項目之間進行選擇
請注意,如果選擇扁平化(非TrustZone)項目,則微控制器將在引導后保持安全模式。另外,在設置TrustZone項目時需要格外小心,以確保正確管理安全和非安全分區之間的連接。在項目配置器中創建非安全項目時,將非安全項目與安全項目或捆綁包進行關聯以實現此要求。在“Project Type Selection”(項目類型選擇)屏幕上選擇“TrustZone Non-secure Project”(TrustZone非安全項目)并單擊“Next”(下一步)后,e2 studio將要求您為非安全項目指定一個對應的安全項目。
創建安全項目后,即可將安全的堆和驅動程序提供給非安全環境。為此,右鍵單擊最上面的模塊,從彈出的菜單中選擇“Non-secure Callable”(非安全可調用)。選擇該條目后,請注意左側的小箭頭:它指示此模塊現在為非可安全調用模塊(參見圖11-5)。
圖11-5:可以將安全項目中堆棧的最頂層模塊設為非安全可調用模塊
最后一點是,也可以在e2 studio內對內存進行分區:轉到“Run → Renesas Device Partition Manager”(運行 → 瑞薩器件分區管理器),將運行一個實用程序。器件分區管理器可以在開發期間執行生命周期狀態管理,另外還允許設置和查詢IDAU區域,以及解鎖已擦除的閃存模塊。
圖11-6:器件分區管理器可以定義各種內存分區的大小
如果要深入了解用于配置RA產品家族微控制器專用的Arm TrustZone的工具和相關工作流程,您可以識別下方二維碼或復制對應的網址在瀏覽器中打開查看瑞薩網站上提供的RA Arm TrustZone工具入門,介紹有關使用工具和設置項目的基礎知識:
https://www.renesas.cn/cn/zh/document/apn/ra-arm-trustzone-tooling-primer
11.2.1 跨邊界的函數調用
現在,如果位于非安全環境的應用程序的一部分要調用位于安全環境的閃存外設,以對非安全數據閃存進行編程,會發生什么情況?為此,Arm v8M Cortex-M33內核的指令集中添加了一條新指令:SG或安全網關。該指令必須位于內存的安全和非安全部分之間的非安全可調用(NSC)區域。這可確保即使在安全環境的其他位置找到SG操作碼,也不能將其用作入口點。在SG指令之后,可以對安全端的代碼進行調用(參見圖11-7)。
圖11-7:從非安全環境中調用安全函數
將通過BXNS LR(BXNS = 跳轉并交換到非安全狀態)操作碼從安全端返回到非安全端,此操作將跳轉到BL Func_A_Entry分支期間放置在鏈接寄存器(LR)中的地址。在函數返回時,函數的返回狀態被存儲在LR中返回地址的LSB中。這一位的數值將和返回到調用函數時的狀態進行比較,以防止從非安全代碼調用的安全API返回到一個指向安全地址的假返回地址。
在第一條指令不是NSC區域中的SG操作碼的情況下,執行位于非安全環境中的代碼對安全環境中的代碼的調用,則在帶CM33內核的微控制器上會發生安全故障。將在安全狀態下處理該故障。
還可以從安全代碼調用非安全代碼,但不建議這樣做,因為這有可能導致數據泄露,導致安全問題。安全代碼可以通過參數將某些寄存器值傳輸到非安全環境,并且編譯器將從其余寄存器中清除其他安全數據。該機制還隱藏了安全軟件的返回地址,從而確保非安全環境中的代碼不會操縱返回地址(參見圖11-8)。
圖11-8:從安全環境中調用非安全函數
通過BLXNS(通過鏈接跳轉并交換到非安全狀態)指令從安全代碼調用非安全代碼的推薦方法是:在第一次啟動時初始化安全環境中的代碼,然后將程序控制傳遞給非安全環境。此后,從非安全環境到安全環境的任何數據傳輸均應通過FSP回調進行管理。
原文標題:瑞薩RA產品家族初學者指南-第11章(2)
文章出處:【微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
-
mcu
+關注
關注
146文章
17135瀏覽量
351031 -
瑞薩
+關注
關注
35文章
22309瀏覽量
86255
原文標題:瑞薩RA產品家族初學者指南-第11章(2)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論