ARM TrustZone 调研分析

1、TrustZone简介

ARM 的一个硬件架构
同时运行一个安全 OS 及一个非安全 OS
OS 物理隔离
安全 OS 权限更高
OS 分时运行,可以互相通信
系统级别的安全架构
处理器、内存及外设均隔离
遵循 Global Platform TEE 规范

2、TrustZone功能

安全存储:完整、保密
TEE 加密 REE 的明文数据,密文存储在 REE 的文件系统中
每个 文件、 TA 、芯片都有独立的密钥
安全加密
对称 非对称加密
消息摘要、 MAC
密钥、随机数生成
安全启动
基于 OTP 中的根密钥及固化的 Boot 来验证后级程序的完整性
外设安全访问
输入密码时,由 TEE 接管键盘、触摸屏等

 3、TrustZone原理

设计原则:隔离
将单个物理核虚拟化为两个虚拟核:安全核及非安全核
非安全核运行 Rich OS Android Linux QNX 等), 称为 REE
安全核运行 Trusted OS OP-TEE Trusty QSEE 等),称为 TEE
个虚拟核按时间片来占用物理核,通过 Monitor Mode arm-trusted-firmware 切换 类比于 OS 对多进程的处理
AXI 总线进行拓展,增加一个非安全位( Non-Secure bit )。非安全世界寻址时将 NS 位置 1 ,安全世界寻址时将 NS 位置 0
如果 REE 尝试访问 TEE 的内存,则会被总线拦截,触发异常
TEE REE 间通过 Message 机制来通信, API 遵从 Global Platform GP )的规范

 4、TEE应用-业内

Android
华为 Mate 安全支付:在 TEE 中验证指纹及华为账号
支付 宝支付:在 TEE 中验证指纹
车机( NXP 提供):
TEE 中完成授权服务
基于 NXP i.MX Rich OS 为某国产 OS Trusted OP-TEE
阿里云:
利用 TEE 来管理 OTA 证书
提供独立的 AliOS -TEE
虚拟汽车 钥匙
无人机行业

  5、案例:Android指纹登录

利用指纹代替账户密码登录:

1. 应用请求指纹验证,构造 AuthToken
2. AuthToken 发送到 TEE ,激活指纹采集
3. 读取指纹,与已存储的匹配
4. 匹配成功则对其进行签名( HMAC ),并返回到 REE
5. Fingerprintd 发送 AuthToken KeyStore
6. Keystore 转发 AuthToken Keymaster 来请求用户名密码
7. KeyMaster 进行验签,成功则返回用户名密码完成登录

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电气_空空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值