《瑞薩RA產品家族初學者指南》系列文章已收錄成合集,歡迎點擊上方查看合集并訂閱!
11. 安全性和TrustZone
您將在本章中學到以下內容:
-
什么是TrustZone以及它如何保護器件
-
Renesas的TrustZone可以帶來哪些好處
-
對應用的安全部分和非安全部分進行分隔的原理
-
如何實現器件生命周期管理
安全性至關重要!必須從項目伊始就考慮到安全性,因為無法在后續流程中加入該要素。至少,無法避免費用高昂的重新設計工作,甚至還可能面臨要重建整個應用。安全性可視為建筑物的地基:沒有華麗的外表,而且其所需的設計和建造時間可能超過建造其他功能所需的時間總和。即便完成搭建,也可能感覺不到它的存在。但是,安全性對于互聯環境中的所有應用都至關重要。
什么時候需要確保安全性?產品通過有線或無線接口(如WiFi、藍牙、USB或以太網)進行通信時。存儲十分重要的信息(如密鑰、證書、密碼、個人數據、測量數據或算法)時。產品升級(例如,進行固件更新、功能升級或購買付費服務)時。
因此,安全性涉及各種應用領域。安全性與“智能”世界息息相關,如智能電網、智慧城市、智能樓宇、智能家居、智能照明、智能手表、智能電器或智能服裝等。它還會影響到物聯網或工業應用,因為傳感器、機器人技術、樓宇自動化或農業也需要確保安全性。還有醫療應用,人命關天,必須謹慎對待安全問題。
瑞薩的RA產品家族微控制器支持以多種方式來創建安全應用:通過搭載Arm Cortex-M4、-M23或-M33內核的器件上的安全加密引擎,通過搭載Cortex-M4或-M23內核的器件上的安全內存保護單元,也可以通過搭載Cortex-M33內核的MCU上瑞薩對Arm的TrustZone的自有實現。本章將討論最后一種方式。
最后值得一提的是:大多數RA產品家族MCU均已通過PSA Certified 1級認證,其中RA6M4 MCU系列已通過PSA Certified 2級認證。其中包括對采用Trusted Firmware M (TF-M)的RA產品家族靈活配置軟件包進行PSA功能API認證。多個RA產品家族MCU系列已通過SESIP1認證,無論選擇何種軟件平臺,都能確保實現基本的安全功能。此外,安全加密引擎獲多項NIST CAVP認證,可確保各種加密功能正常發揮作用。從而增強了用戶面向互聯環境開發安全產品時的信心。
本章目錄
-
什么是TrustZone,它有什么作用?
-
安全環境和非安全環境的劃分
-
器件生命周期管理
-
TrustZone用例
11.1 什么是TrustZone,它有什么作用?
TrustZone是Arm開發的一項核心技術,作為Arm v8-M架構的一部分,通過強制硬件隔離提供系統級安全措施。TrustZone要求在軟件中劃分安全和非安全MCU區域對應的邏輯分區,從而創建受保護的環境。該技術通常在搭載Arm Cortex-M33內核的器件上實現,個別情況下也在搭載Arm Cortex-M23內核的器件上實現。
內存區域劃分為三個不同的分區:
-
安全分區,用于密鑰存儲和數據解密等受信任或受保護的IP;
-
非安全分區,用于常規應用;
-
非安全可調用分區,用作其他兩個分區之間的網關。
通過最后一個分區,位于非安全分區中的代碼可以調用安全分區中的服務(參見圖11-2)。此功能可以通過跳板(veneer)實現,支持隔離安全分區和非安全分區。
使用TrustZone時,非安全環境(非安全處理環境(NSPE))中的代碼無法直接訪問安全環境(安全處理環境(SPE))中的內容。舉例來說,這意味著非安全環境不能更改或使用安全環境中的密鑰或證書。只有位于安全環境中的代碼才能進行此操作。這可以實現IP保護和沙盒,并減少關鍵組件的攻擊面,同時還可簡化嵌入式器件的安全評估。因此,如果微控制器中存在需要保護的知識產權(IP),請將其放置在安全環境中!
圖11-2:TrustZone支持對安全區域和非安全區域進行隔離
在安全和非安全狀態下都可以訪問非安全環境中的函數和數據,而非安全環境中的例程只能通過調用位于非安全可調用環境(NSC)的跳板來訪問安全環境中的服務。通過此方式提供一個進入安全環境的確定入口點。
雖然Arm對TrustZone的原始定義適用于閃存、RAM和內置組件(如SysTick定時器或MPU),并要求將應用程序代碼和數據與安全項目分離,但其不包括對DMA控制器或外設分離的保護。
瑞薩擴展了這一概念,并將TrustZone過濾器應用于其他總線以及引腳和外設。總線過濾器可防止非安全代碼通過DMA、DTC和類似機制提取安全代碼和數據。換句話說:它可以防止外設訪問不應該訪問的內存。另一方面,應用于引腳和外設的TrustZone過濾器允許鎖定引腳,使其僅可供安全環境訪問,而不支持從任何位置進行訪問。
這不僅可保護外部接口,而且還能防止非安全代碼竊聽引腳。例如,位于非安全環境中的惡意代碼不能監聽分配給安全環境的引腳狀態,也不能重建通過UART進行的傳輸內容。非安全代碼也不能覆蓋輸出。
瑞薩還確保在啟動時沒有安全漏洞。其他制造商在其實現中使用軟件配置的安全屬性單元(SAU),這導致TrustZone在復位后短時間內處于未配置狀態,瑞薩決定在其RA產品家族中使用實現定義屬性單元(IDAU),通過非易失性寄存器配置。這意味著,在獲取復位向量時,也就是在執行任何應用程序之前,已經配置了TrustZone并且保證器件是安全的。安全屬性通過SCI(片內工廠)引導模式在非易失性內存中設置,應用程序無法修改其內容,只能讀取其內容。
還需要注意:僅通過使用TrustZone不能實現應用的安全。僅使用TrustZone并不意味著該器件已具備安全保護。TrustZone只是安全工具箱中可選擇的一款工具,必須以正確的方式使用才能發揮作用。如果安全應用程序本身存在漏洞(如不合規范的代碼),則TrustZone自身并不能避免被攻擊。安全代碼必須驗證其正確性和可信度。
但TrustZone有助于提供并執行信任根(RoT)。RoT是始終可信賴的源,也是所有安全操作、數據和算法的基礎。它不僅使代碼和數據完整性和隔離、系統驗證、薄膜或身份驗證之類的服務可用于當前或其他受信任的系統或器件,而且還包含密鑰、證書或密碼。但這也意味著,如果信任根遭到破壞,則完全喪失保護功能。
TrustZone通過將敏感數據存儲在安全環境中來對數據和固件提供保護。它還可以將關鍵軟件預裝為安全固件,并將外設配置為僅允許從安全環境訪問,從而提供操作保護。
有關TrustZone的更多信息和更詳細的解釋,您可以識別下方二維碼或復制對應的網址在瀏覽器中打開查看Arm文檔:
https://developer.arm.com/documentation/den0013/d/ARM-Architecture-and-Processors/Architecture-history-and-extensions/Security-Extensions--TrustZone-?lang=en
但請注意,Arm通常采用術語“受信任”和“非受信任”,其定義直接對應于“安全”和“非安全”。
原文標題:瑞薩RA產品家族初學者指南-第11章(1)
文章出處:【微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
-
mcu
+關注
關注
146文章
17135瀏覽量
351031 -
瑞薩
+關注
關注
35文章
22309瀏覽量
86255
原文標題:瑞薩RA產品家族初學者指南-第11章(1)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論