TEE
TEE
=OP-TEE
名称
TEE
=Trusted Execution Environment
=信任执行环境
=可信任执行环境
OP-TEE
=Open Portable Trusted Execution Environment
=Open-Source Portable Trusted Execution Environment
=开放可移植的可信任执行环境
一句话描述
基于TrustZone技术搭建的安全执行环境
designed as companion to a non-secure Linux kernel running on Arm
注:Cortex-A cores using the TrustZone technology
用途=目的=为什么
历史
最早是ST-Ericsson开发的
2013年,ST-Ericsson实现了兼容GlobalPlatform
2013年之后,ST和Ericsson分开了
现在TEE属于STMicroelectronics
2013年后期,Linaro成立了SWG
=Security Working Group
=安全工作组
在开源TEE之前,花了很多个月去把之前部分私有模块,换成开源实现
2014-06-12,TEE开源了,叫做OP-TEE
目前现状主要是:
项目属于STMicroelectronics
但是Linaro和STMicroelectronics联合在开发
2015年,项目所有权从STMicroelectronics转给Linaro了
资料
官网
GitHub
OP-TEE/optee_os: Trusted side of the TEE
技术文档
OP-TEE Documentation — OP-TEE documentation documentation
主要设计目标
Isolation
the TEE provides isolation from the non-secure OS and protects the loaded Trusted Applications (TAs) from each other using underlying hardware support,
Small footprint
the TEE should remain small enough to reside in a reasonable amount of on-chip memory as found on Arm based systems
Portability
the TEE aims at being easily pluggable to different architectures and available HW and has to support various setups such as multiple client OSes or multiple TEEs.
OP-TEE
包含内容
Secure world
OS=optee_os
现有实现:
OP-TEE OS
, Trusty
, 高通的QSEE
, SierraTEE
注:所有方案的外部接口都会遵循GP
=Global Platform
标准
对比:Normal world os
问:各家厂商和组织的TEE OS
到底有何区别?
系统架构
相关概念
TA
=Trusted Application
=可信应用
CA
=Client Application
=客户端应用
原理
产品开发团队负责开发一个运行在Linux
上的CA
和一个运行在OP-TEE
上的TA
CA
使用TEE client API
与TA
通信,并且从TA
获取安全服务
CA
和TA
使用共享内存
进行通信
运行机制
当处于secure world
状态,那么就会执行TEE OS
部分的代码
当处于non-secure world
状态时,就执行linux kernel
部分的代码
举例
芯来科技和瓶钵信息合作开发基于RISC-V的TEE方案
Normal world
client=optee_client
test suite = optee_test/xtest
linux驱动
常见问题
Linux内核
Linux内核能直接访问TEE部分的资源吗?
Linux kernel不能直接访问TEE部分的资源
Linux 内核如何才能访问TEE部分的资源呢?
Linux kernel能通过特定的TA
和CA
来访问TEE部分特定的资源