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有两种工作模式,一种是正常工作模式,可以执行富指令集,称为REE环境(richexecution environment)

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


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


 


TEE执行环境


 

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的要素,硬件上支持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地址空间控制器,用于动态内存的分配。


两个salve接口:

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

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

一个master接口:

用于接DMC

 

 

 

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


 


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

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

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

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

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

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

 

 

TZPC


 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


 


 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值