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