一、Cortex-M33 TrustZone
Cortex M33内置了Arm设计的TrustZone技术,可以实现安全(Secure/S)与非安全(Non-Secure/NS)之间的隔离,提高系统的安全等级。
TrustZone是内置在Cortex M33内核中的一个功能。安全是一个系统工程,可是,MCU也是一个麻雀虽小但五脏俱全的SoC(System on Chip),内核具备安全的隔离能力,是否能够满足我们对于整个SoC系统的安全隔离要求呢?
本文以LPC55S69(CPU0为Cortex M33且支持TrustZone)为例,为大家简要介绍安全AHB控制器。
二、解剖总线上的主从设备
我们可以简单地把MCU理解为由内核+多种外设构成的芯片,软件工程师编写的代码最终运行在内核中,通过操作外设实现各种各样的功能。
毫无疑问,内核是总线上的一种主设备,它不仅具有自己的寄存器,还会在运行中主动地向总线上的其他设备(例如内存,flash等)发起访问。
而大部分外设,都是从设备,例如USART和SPI等外设,只能被动地等待内核或其他主设备的配置,然后实现相应的功能。在运行中,从设备并不具备操作其他设备的能力。
有一些特殊的外设,例如DMA,USB等外设,与内核类似,它们具有自己的寄存器,并且在运行中,会主动地访问内存、flash甚至是其他外设的寄存器。
三、只有TrustZone就够了吗?
那么,在MCU中,通过TrustZone功能,内核可以在运行中从安全状态切换至非安全状态。转移至非安全状态后,内核是无法访问安全区域的资源的。
如上节所述,总线上有很多主设备和从设备。但是,由于TrustZone是集成在内核中的,TrustZone不能限制内核之外的其他主设备的行为,总线上的其他主设备仍然可以访问安全区和非安全区的所有资源。
因此,DMA等其他总线上的主设备,仍然可以访问整个地址空间,即使Cortex M33内核被转移至非安全状态,此时Cortex M33内核没有安全区资源的访问权限,仍然可以通过利用其他主设备(例如DMA),访问任意资源。那么此时,DMA等其他主设备就像是一个可以被利用的“漏洞”,这是安全系统不能接受的。
这时的系统如下图所示,即使Cortex M33被TrustZone的SAU和IDAU严格限制,但其他主设备在总线上仍然是畅通无阻。
四、安全AHB控制器
安全AHB控制器的英文名称是Secure AHB Controller。
其实,产生前文所述问题的原因有两个:
总线上,只有Cortex M33内核CPU0具有TrustZone功能,而其他的主设备没有此功能。站在总线的角度看,只能判断出CPU0 Cortex M33发出的请求和访问是否是安全,却无法判断出其他主设备的访问请求是安全或非安全。
对于总线上的从设备来说,从设备无法判断来自总线的访问是安全还是非安全的,因此也就无法通过以设置访问规则的方式,拒绝违背访问规则的非法请求和访问。
安全AHB控制器是NXP LPC55Sxx系列MCU的一个特殊外设。
安全AHB控制器提供了MSW(Master Security Wrapper),MSW为总线上除CPU0之外的其他主设备,提供了一种简易的类似于TrustZone的功能。总线上除CPU0外的每一个主设备都有一个MSW。
例如,我们可以通过MSW,将某个主设备DMA0配置为安全主设备,那么在运行中,DMA0发出的所有访问请求,都是安全请求;我们也可以将另一个主设备DMA1配置为非安全主设备,在运行中,DMA1发出的所有访问请求,都是非安全请求。
有了MSW,从总线的角度看,我们就可以分辨出每一个主设备发出的请求是安全还是非安全。
安全AHB控制器还为每一个从设备(外设)提供了一个“保安”PPC(Peripheral Protection Checkers),PPC将会恪尽职守,严格检查访问请求是否符合设置的规定章程,并拒绝非法的访问。
例如,我们可以将位于USART之前的PPC检查规则设置为仅允许安全访问,那么所有非安全访问都被视为非法,并被PPC拒之门外,上文所述被配置为非安全主设备的DMA1也就无法访问和操作USART。
同时,安全AHB控制器也为内部存储介质(包括RAM,Flash和ROM)提供了类似PPC的“保安”-MPC(Memory Protection Checkers),MPC可以分块地保护各种内部存储介质。
有了安全AHB控制器的MSW,总线上的所有主设备不仅支持安全侧带信号HNONSEC(安全访问)作为给定访问的安全属性的指示,也支持HPRIV(特权)信号作为特权与非特权属性的指示。(注:本文重点介绍了HNONSEC信号相关的安全与非安全属性,并未详细介绍与HPRIV相关的特权与非特权,这与Cortex M3/M4等内核中的特权与非特权相同)。
安全AHB总线处理HNONSEC信号,并将其与安全AHB控制器中为从设备的PPC/MPC所设置的安全属性进行比较。如果请求访问的安全属性不违反被访问从设备的安全属性,则允许访问。如果在访问中违反规则发生冲突,则会引发安全冲突中断。CPU0切换到安全模式以处理违规。安全是个系统工程,有了安全AHB控制器这个安全守卫,我们的SoC系统才能被滴水不漏地划分为安全世界和非安全世界。
上一篇:太阳诱电推出气味传感器
下一篇:变频器正常工作注意事项及日常维护
在线留言询价
型号 | 品牌 | 询价 |
---|---|---|
MC33074DR2G | onsemi | |
BD71847AMWV-E2 | ROHM Semiconductor | |
RB751G-40T2R | ROHM Semiconductor | |
TL431ACLPR | Texas Instruments | |
CDZVT2R20B | ROHM Semiconductor |
型号 | 品牌 | 抢购 |
---|---|---|
ESR03EZPJ151 | ROHM Semiconductor | |
IPZ40N04S5L4R8ATMA1 | Infineon Technologies | |
TPS63050YFFR | Texas Instruments | |
BP3621 | ROHM Semiconductor | |
STM32F429IGT6 | STMicroelectronics | |
BU33JA2MNVX-CTL | ROHM Semiconductor |
AMEYA360公众号二维码
识别二维码,即可关注