ARM Trustzone

基本概念:

嵌入式设备要处理具有重要价值的数据,比如你的银行账户。嵌入式设备渐渐的也成为了一个开放的平台,允许用户下载任意的第三方APP。

这也使得它处在一个比较易于受到攻击的位置。ARM Trustzone技术的目的就在于使得用户同时受益于一个健壮安全的解决方案和特性丰富

的操作环境。一个细致设计的硬件体系结构和与之匹配的安全软件设计可以使得重要数据处于安全的位置,而不管外界的环境如何变化。

Trustzone hardware arch 包含以下三个方面

1. 将SOC的软硬件资源分成两大类:Normal, Secure。

2. 一个CPU core 可以通过时间片轮转的方式在Normal 和 Secure之间安全有效地执行。

3. security-aware 的调试框架,在不影响对Normal调试的前提下增加对secure调试的控制。

Trustzone hardware arch 最重要的特点在于对主存储器的读写通道各增加了一个控制信号。

 AWPROT[ 1 ]: Write transaction – low is Secure and high is Non-secure.

 ARPROT[ 1 ]: Read transaction – low is Secure and high is Non-secure.

它们被称为NS bit, 在开始每一次读写之前总线控制设备必须要设置这些信号,总线上的从设备必须要解码这些信号以确保Normal和

Security的区分能够被保证。因此Normal Master 是不能读写Security Slave,如果发生了这样的情况总线或者是从设备就会产生一个错误,

具体的情况会根据外围总线的设计和配置而定。

问题: 一个slave 怎么知道他是 secure 还是 Normal ? 

Trustzone hardware arch最有用的一个特性在于它可以使得SOC的外设安全化,这使得它可以去解决一些更加广泛的安全问题。比如一个

安全的键盘可以确保用户输入密码不被窃取。

以下的处理器实现了Trustzone hardware arch

• ARM1176JZ(F)-S™ processor

• Cortex™-A8 processor

• Cortex-A9 processor

• Cortex-A9 MPCore™ processor

每一个物理核都会提供两个虚拟核,一个用于Secure,一个用于Non-Secure,以及他们之间的上下文切换机制。NS bit 的值就是根据执行指令的虚拟核的类别而设定的,它使得Secure Core可以访问所有资源而Non-Secure Core只能够访问Non-Secure的资源。

(此处需要补充一个文献中的图片)

由Normal 向 Secure 进行切换需要进入 monitor mode, normal 进入 monitor 有下面两种方式:

1. 执行专门的指令 Secure Monitor Call (SMC) instruction

2. 利用ARM的硬件异常机制,IRQ, FIQ, external Data Abort,  external Prefetch Abort异常都可以配置成模式切换的手段

这很像对于异常的处理机制,他也涉及到当前上下文的保存和恢复。处理器的当前状态右CP15  的Secure Configuration Register (SCR) 中的NS-bit进行标示

Figure 3-2

处理器进行存储器相关的操作,例如 data load, adata store,  instruction prefetch。会向遵循如下的处理逻辑

1. 发布一个虚拟地址和NSTID(用于标示处理器的secure state)到TLB

2. TLB 根据 <VA, NSTID> 查找到对应的 <PA, NS>, 到L1 cache 中查找对应的cache Line

3. cache hit 就向处理器返回数据, cache miss 就要到 External memory 中加载数据

在一些多媒体的应用中加密的媒体数据存放在normal world, 解密后输出到secure world 然后在secure word中进行解码。但是为了提高性能,secure world 的应用程序可以映射normal world的memory 到secure world 中去。这只需要将normal world 中的那片memory 对应的 translation table 归属到 secure world 就可以了。这种类型的内存就叫做World-Shared memory。



参考资料:

http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_trustzone_security_whitepaper.pdf点击打开链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值