今天痞子衡給大家介紹的是 ARM Cortex-M 功能模塊,不過側(cè)重點是三款安全特性處理器。
ARM Cortex-M 處理器家族發(fā)展至今(2020),已有 8 代產(chǎn)品,除了上一篇 《Cortex-M 功能模塊看差異》 介紹過的 CM0/CM0+、CM1、CM3、CM4、CM7,還有主打安全特性的 CM23、CM33、CM35P。
1.Cortex-M 安全特性
近幾年來, 物聯(lián)網(wǎng)成為了嵌入式系統(tǒng)開發(fā)者們的熱門話題。當你提及物聯(lián)網(wǎng),安全是每個人都十分關注的話題。嵌入式系統(tǒng)產(chǎn)品需要更好的方案來保證系統(tǒng)的安全。鑒于此,ARM 發(fā)布了全新 ARMv8-M 架構,以及基于該架構的三款處理器 ARM Cortex-M23/33/35P,引入了如下安全特性:
1.1 TrustZone
ARMv8-M 架構包含了一個叫做 TrustZone 的安全擴展,這項安全加密技術誕生于 2004 年,之后隨著移動應用的普及在 Cortex-A 系列處理器上發(fā)揚光大。而在物聯(lián)網(wǎng)的嵌入式領域中,一直都使用功耗比更加優(yōu)秀的 Cortex-M 處理器并不具有此功能,直到現(xiàn)在 Cortex-M23/33 的出現(xiàn),才將這種技術帶到了物聯(lián)網(wǎng)底層中。
TrustZone 導入了安全和非安全狀態(tài)的正交劃分,非安全狀態(tài)的軟件只能訪問非安全狀態(tài)的存儲空間和外圍設備,安全軟件可以訪問兩種狀態(tài)下的所有資源。TrustZone 安全機制可以阻止黑客控制整個設備,限制了攻擊的影響,還可以實現(xiàn)系統(tǒng)遠程恢復。此外 ARMv8-M 架構也引入了堆棧邊界檢查和增強的 MPU 設計,促使額外安全措施的采用。
1.2 Anti-tampering
物理攻擊的定義可分為侵入式及非侵入式攻擊等兩大類,侵入式攻擊需要拆除芯片封裝,利用芯片層級的漏洞發(fā)動攻擊,而非侵入式攻擊,則如旁路攻擊(Side-Channel Attacks,簡稱 SCA),在距離芯片很近的情況下,偵測如芯片的耗電或在操作密碼時放射出的電磁場等外洩的信息。這兩種攻擊的目標不外乎在裝置植入惡意程序,或是取得內(nèi)部敏感信息。
ARM 推出的全新 Cortex-M35P,是 Cortex-M 產(chǎn)品線中首款具備防竄改以及防御物理攻擊能力的處理器。Cortex-M35P 搭載與 SC000、SC300 等 SecurCore 處理器相同的防竄改技術,可幫助嵌入式安全開發(fā)人員阻止物理篡改并實現(xiàn)更高級別的安全認證。
2.Cortex-M 功能模塊差異
由于 CM23 是 CM0/CM0+的升級,CM33 是 CM3/CM4 的升級,故我們僅針對性地比較原版與升級版內(nèi)核。
2.1 CM0+ vs CM23
那么 CM23 到底改進了什么?
ARMv8-M Baseline CPU 內(nèi)核:ARM 公司于 2016 年推出的內(nèi)核。相比 ARMv6-M 新增了 32-bit 硬件除法器。
NVIC 嵌套向量中斷控制器:最大支持 240 個外部中斷,但保持 4 級搶占優(yōu)先級(2bit)不變。
AHB5 總線:一條 32bit AMBA-5 標準的高性能 system 總線負責所有 Flash、SRAM 指令和數(shù)據(jù)存取。。
MPU 存儲器保護單元:最大可將內(nèi)存分為 16*8 個 region。
調(diào)試模塊:最大 4 個硬件斷點 Breakpoint 保持不變,數(shù)據(jù)監(jiān)測點 Watchpoint 最大增為 4 個。
ETM 跟蹤單元:ETM 提供實時指令和數(shù)據(jù)跟蹤。
Systick 定時器:定時器個數(shù)增大到 2 個。
那么 CM23 到底增加了什么?
TrustZone 軟件安全特性:,TrustZone 導入了安全和非安全狀態(tài)的正交劃分,非安全狀態(tài)的軟件只能訪問非安全狀態(tài)的存儲空間和外圍設備,安全軟件可以訪問兩種狀態(tài)下的所有資源。
2.2 CM4 vs CM33
前面比較完了 CM0+與 CM23,再來看看 CM33 比 CM4 增強在了哪里:
那么 CM33 到底改進了什么?
ARMv8-M Mainline CPU 內(nèi)核:ARM 公司于 2016 年推出的內(nèi)核。相比 ARMv7E-M 去除了指令分支預測。
NVIC 嵌套向量中斷控制器:最大支持 480 個外部中斷,但保持 8-256 級優(yōu)先級(8bit)不變。
2x AHB5 總線:2 條 AHB5 總線,其中 AHB-P 外設接口完成原來 system 總線功能, AHB-S 從屬接口負責外部總線控制器(如 DMA)功能。
MPU 存儲器保護單元:最大可將內(nèi)存分為 16*8 個 region。
Systick 定時器:定時器個數(shù)增大到 2 個。
那么 CM33 到底增加了什么?
TrustZone 軟件安全特性:TrustZone 導入了安全和非安全狀態(tài)的正交劃分,非安全狀態(tài)的軟件只能訪問非安全狀態(tài)的存儲空間和外圍設備,安全軟件可以訪問兩種狀態(tài)下的所有資源。
2.3 CM33 vs CM35P
前面比較完了 CM33 與 CM4,再來看看 CM35P 比 CM33 增強在了哪里:
那么 CM35P 到底改進了什么?
額,CM35P 相比 CM33 并沒有改進什么現(xiàn)有模塊。
那么 CM35P 到底增加了什么?
I-Cache 緩存區(qū):即是我們通常理解的 L1 Cache,Cache 大小為 2-16KB。
Anti-tampering 物理安全特性:具備抵御各種物理攻擊的設計,能夠透過嵌入式安全機制協(xié)助開發(fā)者防御物理竄改攻擊,讓產(chǎn)品取得更高層級的安全認證。