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