ARMv8 TrustZone技术
来源:互联网 发布:淘宝返现处罚 编辑:程序博客网 时间:2024/05/29 18:13
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处理器
- ARMv8 TrustZone技术
- ARMv8 TrustZone技术
- trustzone技术
- ARM的TrustZone技术
- TrustZone技术简介
- ARM TrustZone技术简介
- TrustZone技术简介
- ARM TrustZone技术
- TrustZone技术简介
- ARM TrustZone技术简介 -- 1
- ARM TrustZone技术简介 -- 2
- trustzone
- TrustZone技术学习笔记(一)
- ARM TrustZone技术简介 -- 4 (TrustOS)
- ARM TrustZone技术简介(一)
- ARM TrustZone技术简介(二)
- ARM 64位处理器架构ARMv8技术浅析
- ARM 64位处理器架构ARMv8技术浅析
- samba软件安装
- Alexnet中deploy.prototxt与train_val.prototxt的对比
- c++程序代码使用指针调试运行出错分析
- Cliff框架介绍
- Linux 二进制文件调试命令
- ARMv8 TrustZone技术
- Spark运行模式
- C#与C++类型对应关系总结
- $_SERVER
- Junit单元测试主线程退出,子线程也会退出
- C++类型转换-stringstream
- /dev/sda6 contains a file system with errors, check forced
- 空闲时间学一个Linux命令(11)—— nl 命令
- JS实现年月日下拉框的联动