最近安全这个词在MCU中被提及的次数越来越多了,因为各种设备联网需求,人们对于信息安全的需求也越来越高,设备安全的要求也越来越高。另外设备厂商对于自己程序的安全性也越来越重视。现在MCU中一般都会支持一个Secure boot的功能,这个功能简单来说就是支持MCU可以识别设备中的固件是不是一个可以信任的固件,如果是信任的估计,那么MCU就会启动这个固件,否则MCU会拒绝执行这个固件。这个过程...
我的代码我做主
最近安全这个词在MCU中被提及的次数越来越多了,因为各种设备联网需求,人们对于信息安全的需求也越来越高,设备安全的要求也越来越高。另外设备厂商对于自己程序的安全性也越来越重视。现在MCU中一般都会支持一个Secure boot的功能,这个功能简单来说就是支持MCU可以识别设备中的固件是不是一个可以信任的固件,如果是信任的估计,那么MCU就会启动这个固件,否则MCU会拒绝执行这个固件。这个过程...
IDAU模块是用来表示处理器上哪些内存区域是Secure,Non-Secure Callable,Non-Secure的。通过它可以查询某个内存区域的Region Number,它还可以用来划分一个不受Secure Checking的区域,比如ROM table。不同处理器的IDAU是不尽相同的,但是在Cortex-M处理器上它还是有一定的共性的。下图就是一个典型的IDAU的接口:理论上ID...
在安全系统设计中,我们常会有一个问题就是:“这个系统到底有多安全?”而在TrustZone设计中,我们考虑了很多种攻击类型,比如:软件访问控制通过额外的系统组件,系统内存可以划分为Secure和Non-Secure空间,可以保护Secure空间不被Non-Secure模式访问。Secure Address的跳转通过SG指令和NSC空间的定义,可以保证系统只能在有效的Entry Point才能...
Test Target指令设计的主要目的是允许软件获取某个内存地址所属的安全属性(Secure Attribute)。Test Target(TT)指令可以查询内存地址的安全属性和访问权限。Test Target Unprivileged(TTT) 可以查询非特权模式下内存地址的安全属性和访问权限。Test Target Alternate Domain(TTA)和Test Target A...
SAU内部的寄存器都是32位的,下表是SAU相关寄存器的一个列表:地址名称类型复位值处理器状态描述0xE000EDD0SAU_CTRLRW0x00000000SecureNon-SecureSAU控制寄存器RAZ/WI0xE000EDD4SAU_TYPERO0x0000000xSecureNon-SecureSAU类型寄存器,表征可用regions数目RAZ/WI0xE000EDD8SAU_...