今天痞子衡给大家介绍的是 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 物理安全特性:具备抵御各种物理攻击的设计,能够透过嵌入式安全机制协助开发者防御物理窜改攻击,让产品取得更高层级的安全认证。