ARMv8 TrustZone技术

来源:互联网 发布:大数据市场规模2016 编辑:程序博客网 时间:2024/05/16 05:16

Overview

ARM TrustZone技术为可信软件提供了系统硬件隔离。在过去几年里,这个技术仅仅出现在Cortex-A系列处理器上。随着ARMv8-M架构的释放,为了满足市场对嵌入式安全解决方案的需求,Cotext-M微处理器系列引入了TrustZone技术。


Background

TrustZone创建了一个隔离的Secure world,用来为系统提供机密性和完整性。数十亿的应用处理器使用TrustZone保护它们的高价值代码和数据,应用场景包括:认证,支付,内容保护等。 在应用处理器上,TrustZone为平台可信执行环境提供了一个安全边界,也就是安全世界。

下图展示了Secure world和non-secure world


Hardware

TrustZone硬件架构提供了安全框架使得设备可以应对各种特定的安全威胁。TrustZone技术并没有提供一个固定的安全解决方案,而是提供了一个基础构架允许SoC设计者选择一些部件,在安全环境中满足特定的功能。

这个框架的主要目标是非常简单的:通过构造可编程的环境,保护资产的机密性和完整性不被特定攻击破坏。拥有这些特点的平台自然可以构造各种安全解决方案,相对传统方式,代价更小。

通过把SoC's的硬件和软件资源分区,使得他们存在于两个世界:secure world, non-secure world, secure world 用来运行安全子系统,而non-secure world则可以运行其他任何系统。使能TrustZone后,硬件逻辑确保non-secure world部件可以访问non-secure world资源,敏感资源则保存在secure world中,如果运行在secure world的软件足够健壮,那么可以保护大部分可能的攻击,包括那些很难保证的安全:比如使用keyboard或者touch-scree输入密码。

TrustZone硬件架构的另外一个好处就是,它已经扩展到一些ARM processor cores上了。这使得某些单核处理器使用时分调度方式,安全有效的在Normal world和Secure world间切换,无需增加一个安全处理器核,既节省了硅片位置,又节电。没一个物理处理器核提供了两个虚拟核,一个用作non-secure, 另外一个用作secure, 并且提供一个机制在二者之间切换。安全访问通过系统总线实现,Non-secure 虚拟处理器只能访问 non-secure系统资源,而secure处理器则可以访问所有资源。

TrustZone硬件框架也是一个secure-aware调试架构,Normal world 可以使能对Normal world 的调试,而且不会影响到Normal world的调试效果。

Non-secure world和normal world的转换是通过 Monitor Call实现的, Secure Monitor运行在最高优先级Exception level 3(EL3)。对于支持Trust zone的微处理器,world切换是由硬件实现的。下图是ARMv8-A和ARMv8-M的区别



Software

对于基于ARMv8-A应用处理器,ARM提供了一个开源参考实现BL31,BL31是认证过的可信启动流和安全runtime。ARM Trusted Firmware(BL31)可以很容易的集成到开源Trusted OS创建Trusted Execution Environment(TEE)。 ARM Trusted Firmware包括runtime,称为Secure monitor, 中断路由,以及Power State co-ordination Interface(PSCI)


Trusted Execution Environment

GlobalPlatform是一个跨行业的标准定义组织, GlobalPlatform为Trusted Execution Environment提供了软件APIs, 兼容以及鉴定标准。TEE包含了三部分: 隔离技术的硬件(比如TrustZone),可信启动,以及可信OS。TEE可以用来运行多个可信app,和其他安全技术相比TEE提供了更高的性能,并且可以访问更大数量的内存。

TEE的典型应用包括:可信boot, 完整性管理,认证,支付,内容保护,加密以及移动设备管理。secure world设备驱动提供了访问外设的安全访问接口。

GlobalPlatform TEE可以和其他安全技术一起使用,比如hypervisor

TEE profile提供了应该拒绝的攻击的详细信息。

ARMv8-M TrustZone

ARMv8-M架构扩展了TrustZone技术到Cotex-M系统,在所有的关键点都提供了可靠的保护。

防止Secure资源被non-secure world访问使得系统开发者可以划分他们的设计。通过使用Secure Attribute Unit(SAU 类似于MPU). 因为两个世界的转换是基于硬件的,几乎在瞬间完成,这就保证了实时系统的性能,并且减少了软件的工作量。

在正常世界写代码和以往一样:应用程序可以访问特权,非特权空间以及中断。在安全世界调用库,函数入口点被链接到项目中。这个设计简化了集成有TrustZone技术Cortex-M处理器

一般来说,系统供应商会提供一些安全代码在系统范围内设置和运行安全属性。在一个典型的实现中,安全代码尽可能小,以便减少攻击面和漏洞,类似与Cotext-A处理器的TrustZone,运行在secure态的程序可以访问secure和non-secure信息,而normal world的程序只能访问non-secure资源。


本文来源: http://blog.csdn.net/kickxxx/article/details/53939948

原创粉丝点击