隔离到底解决什么问题,有什么用处? -首先,隔离主要针对逻辑攻击,它的一个假设前提是软件可能存在漏洞,软件漏洞可能被利用,进而导致关键信息收到损害,如被盗取,被修改等等 -隔离的思想首先是区分资源不同的访问属性,软件运行在不同状态时对资源的访问权限是不同的,这里的资源可能是memory,可能是外设,甚至是内核的中断和寄存器等等,这样就可以把片上运行的软件进行区分,关键资源只允许关键的一小部分代码访问,其他应用程序的部分即使存在漏洞,比如说有buffer overflow的问题,可能导致恶意代码的注入和执行,即使有这样的情况,那些关键资源也还是处在一个安全的状态,不能够被恶意代码获取。这样隔离就可以降低软件漏洞可能带来的风险 STM32MCU具有哪些隔离机制?
-绝大部分的STM32 MCU(除了M0内核的MCU以外)内核本身都带有的MPU单元,这个单元可以划分出几个region,每个region可以设置不同的访问属性,配合内核的User和Privilege模式,能够实现对关键资源的访问控制 -除了MPU以外,某些STM32系列还有一些特别的硬件单元,可以起到隔离的作用,比如 -L0、L4的Firewall,Firewall可以保护Flash和RAM中的一部分,CPU和DMA都无法直接访问Firewall保护区域里面的内容,只能通过唯一的入口函数地址以函数调用的方式使用Firewall里的代码提供的服务 -部分系列(例如G0, G4, H7, L5和U5)还带有一个叫做安全用户存储区、或者隐藏Flash区的功能,这段特殊Flash区的大小可以由Option Byte进行配置,运行期间可以通过寄存器打开对这段Flash区域的保护,保护使能后在复位前将无法再次访问其中的任何内容 -还有一类是双核隔离机制,例如WB和WL -M0+和M4两个内核核对Flash, SRAM,选项字节以及Crypto等外设具有不同的访问权限。WB的CKS就是基于双核隔离实现的密钥存储服务。 -最新的CM33内核系列的STM32 MCU采用的是TrustZone的隔离技术 -TrustZone技术将所有系统资源,从内核到memory到外设都可以区分为安全和非安全两种属性,代码在运行的时候有安全和非安全两种状态,对不同安全属性的资源也有着不同的访问权限 -STM32基于TrustZone的系统级隔离机制有着非常大的灵活性,不仅仅可以实现简单的秘钥存储以及crypto操作,还可以在安全区中运行更复杂的逻辑,比如一段指纹比对或者身份认证的算法等等
|