lognbow的专栏

TrustZone是2004年ARM cortex-a5引入的。

TrustZone是ARM对ARM v6指令集的扩展,增加了一条指令,一个配置状态位,以及一个安全态。它的目的是把一些安全性要求较高的代码放到安全区里来执行。

内核态程序要进入安全区,需要执行SMI(secure monitor interrupt,在cp15安全状态寄存器中置s位)指令。用户态程序需要调用api接口,操作系统检查程序是否安全,通过则执行smi进行安全区。

s位还体现在AMBA总线上是什么意思?

安全监控程序的固件是独立与OS的,自足的,不可重入的。它负责保存上下文状态(主要是寄存器),包括把当前处理器配置信息保存到一组分编寄存器中。TrustZone增加了大约350个状态位的开销,上下文切换大约需要200个cycle.

ARM建议把安全监控程序放到单独的一块TCM中。TCM是什么?安全监控程序是自己开发的吗?安全区的缓存,TLB, TCM都是单独配置的,因此切换的性能是有保障的。

对中断处理也有影响。因为中断可以来自外设,也可以来自软件,因此要假定中断是不安全的(why)? ARM可以把中断也定义为安全和非安全的。安全代码只能被安全中断打断。

第一层架构

第二层架构

第三层架构

硬件架构

软件架构

要想完整的实现TrustZone还必须有其他条件配合,首先是TrustZone硬件,也就是类似Cortex-A5这样的处理器,然后就是配套的系统软件,这也是最关键的部分,主要有两家厂商在做。

一家是德国慕尼黑市的Giesecke & Devrient公司的MobiCore,另一家则是荷兰Trusted Logic Mobility公司的Trusted Execution Environment。这两家公司都是在ARM网站上推荐的。

注1:紧致内存是指片上快速存储区,与片上缓存具有同等的性能,,但因为程序可完全控制紧致内存,因而比统计复用的缓存有更好的可预测性

发光并非太阳的专利,你也可以发光

lognbow的专栏

相关文章:

你感兴趣的文章:

标签云: