確保基于微控制器的物聯(lián)網(wǎng)應(yīng)用的安全性可能會(huì)很棘手。安全性始于硬件層次,然后擴(kuò)展到嵌入式軟件。為了成功保障軟件安全,開(kāi)發(fā)人員要求底層硬件支持以下等關(guān)鍵特性:
安全啟動(dòng)
存儲(chǔ)器保護(hù)
加密引擎加速器
真隨機(jī)數(shù)發(fā)生器 (TRG)
安全引腳復(fù)用
軟件隔離
雖然 Arm? Cortex?-M 處理器(如 M0+、M3/4/7 系列)支持其中一些特性,但要打造成功的解決方案可能既困難又耗時(shí)。
開(kāi)發(fā)人員可以在硬件層次上運(yùn)用一種新解決方案,即使用基于 Armv8-M 架構(gòu)的新型 Cortex-M23/33 系列微控制器。這些處理器在設(shè)計(jì)時(shí)就考慮了安全性,包含許多安全特性,例如前面列出的那些特性,包括用于微控制器的 Arm TrustZone?。通過(guò)本文,我們將更加熟悉 Armv8-M 架構(gòu),并探索如何利用 TrustZone 來(lái)提高嵌入式系統(tǒng)安全性。
Armv8-M 架構(gòu)簡(jiǎn)介
關(guān)于 Armv8-M 架構(gòu),首先要知道的是它是 Arm 的最新微控制器架構(gòu),面向低成本、深度嵌入的實(shí)時(shí)嵌入式系統(tǒng)而推出。該系列中加入了三款新型處理器:M23 是低功耗版本,M33 是高性能版本,最近推出的 M35P 是一款高性能、物理安全(防篡改)處理器(圖 1)。
相對(duì)于以前的幾代架構(gòu),Armv8-M 架構(gòu)改善了性能,值得注意的幾項(xiàng)重要改進(jìn)包括:
指令集增強(qiáng)功能
靈活的斷點(diǎn)配置
動(dòng)態(tài)重設(shè)中斷優(yōu)先級(jí)
增強(qiáng)的跟蹤支持
更簡(jiǎn)單的存儲(chǔ)器保護(hù)單元 (MPU) 設(shè)置
該架構(gòu)最大和最有意義的改進(jìn)是能夠使用 Arm TrustZone。TrustZone 是該架構(gòu)的安全擴(kuò)展,允許開(kāi)發(fā)人員從物理上隔離執(zhí)行代碼與存儲(chǔ)區(qū)域,如 RAM、代碼空間和硬件中的外設(shè)。TrustZone 支持將軟件分拆到安全和不安全的區(qū)域中,然后在安全或非安全的處理器狀態(tài)下執(zhí)行。安全狀態(tài)允許全面訪問(wèn)處理器的存儲(chǔ)器和外設(shè),而非安全狀態(tài)只能訪問(wèn)非安全區(qū)域和故意暴露給非安全代碼的安全功能(圖 2)。
開(kāi)發(fā)人員可以選擇哪些閃存和 RAM 位置屬于安全狀態(tài),哪些屬于非安全狀態(tài)。當(dāng)非安全代碼調(diào)用安全功能時(shí),非安全和安全狀態(tài)之間的切換完全是在硬件中以確定的方式處理,在最壞的情況下,切換時(shí)間開(kāi)銷為三個(gè)時(shí)鐘周期。CPU 中有幾個(gè)寄存器為安全狀態(tài)和非安全狀態(tài)所共享,但每個(gè)狀態(tài)還有自己的堆棧指針、故障和控制寄存器。M33 甚至還有一個(gè)堆棧限值寄存器,可用于檢測(cè)堆棧溢出。
值得注意的是,TrustZone 是一個(gè)處理器擴(kuò)展,這意味著由器件是否包含 TrustZone 支持要由處理器制造商決定。既然 TrustZone 是可選的,下面我們就來(lái)了解目前可用的幾款 Armv8-M 處理器以及它們?nèi)绾翁幚?TrustZone。
選擇支持 TrustZone 的 Armv8-M 處理器
目前有幾款處理器支持 Armv8-M 處理器。有意思的是,這些器件是如此新穎,以至于到 2018 年夏末,只有 Microchip Technology 一家制造商在生產(chǎn)。
其他處理器制造商(如 Nuvoton)已宣布即將推出此類器件。我們預(yù)計(jì)在未來(lái) 12 個(gè)月內(nèi),Armv8-M 器件數(shù)量將大幅增加,包括那些支持 TrustZone 的器件。
Microchip 主要生產(chǎn)兩個(gè)版本的 Armv8-M 架構(gòu),即 SAML10 和 SAML11 系列器件。SAML10 版本不包含 TrustZone,而 SAML11 版本則包含。圖 3 顯示了目前正在生產(chǎn)并供貨的 SAML10 和 SAML11 器件的所有型號(hào)。這些型號(hào)之間的主要區(qū)別在于 RAM、閃存、引腳和外設(shè)的有無(wú)及多少,這些是我們?cè)谶x擇微控制器時(shí)會(huì)考慮的因素。
配置總結(jié)
SAM L10/L11 器件特定特性
對(duì)于希望開(kāi)始使用 Armv8-M 的開(kāi)發(fā)人員,有兩種開(kāi)發(fā)套件可供選擇。Microchip SAML10 Xplained 評(píng)估板包括 SAM L10E14A 微控制器,后者含有 16 KB 閃存、2 KB 數(shù)據(jù)閃存、4 KB SRAM,并采用 32 引腳封裝。Microchip SAML11 Xplained 評(píng)估板包括 SAM L11E16A 微控制器,后者含有 64 KB 閃存、2 KB 數(shù)據(jù)閃存、16 KB SRAM,同樣采用 32 引腳封裝。除了處理器不同之外,開(kāi)發(fā)板是相同的。圖 4 所示為 Xplained 板的圖片。
-
電路設(shè)計(jì)
+關(guān)注
關(guān)注
6673文章
2451瀏覽量
204190 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2909文章
44572瀏覽量
372841
原文標(biāo)題:架構(gòu)在左,安全在右,物聯(lián)網(wǎng)電路設(shè)計(jì)該如何選擇?
文章出處:【微信號(hào):cirmall,微信公眾號(hào):電路設(shè)計(jì)技能】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論