TrustZone 基本信息介绍大全

以前关注过trustzone一段时间,也做了一些尝试,分享一下我知道的trustzone吧,有什么不对的地方欢迎拍砖:

目前已知的解决方案

OpenVirtualization

http://www.openvirtualization.org

SafeG

http://www.toppers.jp/en/safeg.html

Genode

http://genode.org/documentation/articles/trustzone

sysgo

http://www.sysgo.com/


ARM官方关于TrustZone的文档

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.prd29-genc-009492c/CACCICDE.html

Open vritualization for ARM TrustZone

http://openvirtualization.org/open-source-arm-trustzone.html

TEE

http://www.globalplatform.org/specificationsdevice.asp

http://www.globalplatform.org/mediaguidetee.asp

http://www.trustonic.com/

mobicore

http://mobidough.com/solution/mobicore/

 

TrustZone介绍

http://www.arm.com/zh/products/processors/technologies/trustzone.php

http://www.360doc.com/content/13/0902/14/7324690_311596832.shtml

http://news.mydrivers.com/1/237/237700.htm

http://blog.csdn.net/forestcell/article/category/1733559

http://www.doc88.com/p-29237291235.html

http://www.arm.com/zh/products/system-ip/controllers/trustzone-controllers.php

arm fast models

http://www.arm.com/zh/products/tools/models/fast-models/

android系统关于bootloader的分析,有关TZ部分的验证

http://security.tencent.com/index.php/blog/msg/38

 

TrustZone组成和原理

TrustZone 基本信息介绍大全_第1张图片

TrustZone有两种工作模式,一种是正常工作模式,可以执行富指令集,称为REE环境(richexecution environment)

一种是安全模式,只能执行受信任指令,称为TEE环境(Trusted executionenviroment)

TrustZone 基本信息介绍大全_第2张图片

这两种模式都是集成在一个内核中的,很容易让人联想起类似IntelHT超线程技术,而实际上TrustZone并不是双线程并行或者同步运行,它只有一个线程,只是根据不同的需要在两种模式中简单切换而已,情况跟单核同时运行多任务相似,上网的同时也可以看视频,就是这个样子。

TrustZone 基本信息介绍大全_第3张图片

 

TrustZone 基本信息介绍大全_第4张图片

TEE执行环境

TrustZone 基本信息介绍大全_第5张图片

 

Secure Boot requires the device boot loader, kernel, and systemsoftware to be cryptographically signed 

by a key verified by the hardware

众所周知ARM具有七种模式,其实这是昨日黄花了,ARM在armV6中引入了的SecurityExternsions 带来Monitor模式在armV7中引入的Virtualization Externsions 带来了Hyp模式

TrustZone 基本信息介绍大全_第6张图片

 

实现trustzone的要素,硬件上支持trustzone外,软件主要有3点

1. secure boot from the device

2. platform software to manage the secure andnormal world

3. security application to provide service to theuser

关于TZ的IP理解

TZASC地址空间控制器,用于动态内存的分配。

TrustZone 基本信息介绍大全_第7张图片

两个salve接口:

APB接口:用于TZASC寄存器的读写,只能在安全模式下进行

AXI接口:用于配置region,区分是否是安全区域,NS不能访问S,可配置多达16个region

一个master接口:

用于接DMC

 

 

 

TZMA内存适配器,用于非动态内存的分配

TrustZone 基本信息介绍大全_第8张图片

 

TrustZone 基本信息介绍大全_第9张图片

一个slave一个master接口:接总线,接需要的存储设备

主要用于分配存储空间为安全和非安全模式,如SRAM,EEPROM等非动态存储设备

最多可以分配2MB空间,其中低部分为secure,搞部分为non-secure。

关于到底分配多大的空间为安全区域和非安全区域由R0SIZE决定,这个信号可以通过TZPC配置输出TZPCR0SIZE来动态控制。

图上TZPC就是用于动态控制分配存储空间大小用的。

TZMA不能用于动态内存的分区,而且它最多只能分配出一个安全区域。

 

 

TZPC

TrustZone 基本信息介绍大全_第10张图片

 TZPCDECPROT{2:0}三组寄存器,每组8个,用来配置24个地址作为安全或者非安全区域,用软件的方式来控制安全标志位

 TZPCR0SIZE用来为TZMA提供分区大小信息

关于MMU和cache在secure和non-secure模式下的如何区分:

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0333h/Chdfjdgi.html

TrustZone 基本信息介绍大全_第11张图片

 

TrustZone 基本信息介绍大全_第12张图片

 


你可能感兴趣的:(ARM,trustzone)