痞子衡嵌入式:ARM Cortex-M内核那些事(3.2)- 安全模块看特性(M23/33/35P)
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是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物理安全特性:具备抵御各种物理攻击的设计,能够透过嵌入式安全机制协助开发者防御物理窜改攻击,让产品取得更高层级的安全认证。
痞子衡嵌入式:ARM Cortex-M内核那些事(3.2)- 安全模块看特性(M23/33/35P)的更多相关文章
- 痞子衡嵌入式:ARM Cortex-M内核那些事(6)- 系统堆栈机制
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M堆栈机制. 今天给大家分享的这篇依旧是2016年之前痞子衡写的技术文档,花了点时间重新编排了一下格式.前面痞子衡 ...
- 痞子衡嵌入式:ARM Cortex-M内核那些事(9.1)- 存储保护(MPU - PMSAv6/7)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M存储保护模块(MPU). <ARM Cortex-M内核MCU开发那些事>的内核篇连载最早是 201 ...
- 痞子衡嵌入式:ARM Cortex-M调试那些事(1)- 4线协议标准(JTAG)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式调试里的接口标准JTAG. 在结束<ARM Cortex-M文件那些事>系列文章之后,痞子衡休整了一小段时间,但是讲课的 ...
- 痞子衡嵌入式:ARM Cortex-M文件那些事(1)- 源文件(.c/.h/.s)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的source文件. 众所周知,嵌入式开发属于偏底层的开发,主要编程语言是C和汇编.所以本文要讲的source文件主要指的就是 ...
- 痞子衡嵌入式:ARM Cortex-M文件那些事(3)- 工程文件(.ewp)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的project文件. 前面两节课里,痞子衡分别给大家介绍了嵌入式开发中的两种典型input文件:源文件(.c/.h/.s). ...
- 痞子衡嵌入式:Ethos-U55,ARM首款面向Cortex-M的microNPU
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Ethos-U55. ARM 前几天刚发布了 Cortex-M 家族最新一款内核 - Cortex-M55 以及首款面向 Cor ...
- 痞子衡嵌入式:链接函数到8字节对齐地址或可进一步提升i.MXRT内核执行性能
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT上进一步提升代码执行性能的经验. 今天跟大家聊的这个话题还是跟痞子衡最近这段时间参与的一个基于i.MXRT1170的大项目有 ...
- 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记(1) - 执行在不同CM内核下
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记(1)之执行在不同CM内核下. 文接上篇 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计&g ...
- 痞子衡嵌入式:盘点国内RISC-V内核MCU厂商
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是国内RISC-V内核MCU厂商. 虽然RISC-V风潮已经吹了好几年,但2019年才是其真正进入主流市场的元年,最近国内大量芯片公司崛起 ...
随机推荐
- 乐视X3-40S智能电视的简化系统刷机
步骤 USB2.0-U盘一个. 先把letv原厂包里的.bin文件放入U盘刷入电视 (U盘插在电视上方的USB2.0插口处,在电视待机状态下用遥控器依次按下[3].[6].[9].[5].[开机]键, ...
- Linux 内核总线注册
如同我们提过的, 例子源码包含一个虚拟总线实现称为 lddbus. 这个总线建立它的 bus_type 结构, 如下: struct bus_type ldd_bus_type = { .name = ...
- dotnet 数组自动转基类数组提示 Co-variant array conversion 是什么问题
在 C# 的语法,可以提供自动将某个类的数组自动转这个类的基类数组的方法,但是这样的转换在 Resharper 会提示 Co-variant array conversion 这是什么问题? 在 C# ...
- 爬虫工程师的unidbg入门教程
现在很多的app使用了so加密,以后会越来越多.爬虫工程师可能会直接逆向app,看java代码,完成java层的算法破解,但是如果遇到so该怎么办呢?可能你会直接破解so,但是真的会有很多爬虫工程师会 ...
- k8s的网络方案对比
如下图,三台虚拟机k8s-master.k8s-node-1.k8s-node-2组成k8s集群,网络拓扑和节点IP分配如下图: 一.flannel组网方案 https://github.com/co ...
- A non well formed numeric value encountered
在从数据库获取时间戳数据的时候返回的结果是varchar类型 然后在用date("Y-m-d H:i:s", 时间戳)的时候会报错A non well formed numeric ...
- python类中的一些神奇方法
__str__:用于在print(对象)时,直接打印__str__的返回值 class Animal: def __init__(self, name): self.name = name def _ ...
- ML基础——搜索引擎与图书管理,百度与李彦宏
本文始发于个人公众号:TechFlow 谈及机器学习,大家想必会有许多联想,比如最近火热的人工智能,再比如战胜李世石的AlphaGo,甚至还会有人联想起骇客帝国或者是机械公敌等经典机器人电影. 但实际 ...
- 从零开始のcocos2dx生活(八)ParticleSystemQuad
https://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/#_1 写的真的非常好-最近没时间拜读,只看 ...
- selenium爬取驾考宝典题目
要求 [x] Python3+ [x] Chrome驱动并已配置环境变量 [x] Selenium ## 研究页面 发现驾考宝典的科目四页面URL都是以 https://www.jiakaobaodi ...