-
TEE概览
将一个物理处理器分时复用为两个逻辑处理器
一半是Rich Execution Environment , 用来运行不可信的系统和APP
一半是Trusted Execution Environment , 用来运行可信的系统 ,管理 关键硬件, 为 不可信的系统提供接口
TEE是一种环境,可信执行环境。TEE的实现方案需要硬件和软件的参与。
硬件:arm的trustzone,rv的多区域等。
软件:op-tee等
- TEE深入
TEE会独占访问某些硬件资源
TEE会暴露一个接口给不可信的OS(例如linux)
当应用要访问这些硬件的时候,会陷入内核,内核通过接口(SMC陷入下一层)与TEE中的软件交互(一般参数用内存传递),TEE将TEE管理的硬件的数据传递(一般通过内存)给内核,应用从内核返回,从而获取到硬件数据
TEE 与 linux 在 cpu的占用上是分时的,在时间上是天然互斥的
将一个物理处理器分时复用为两个逻辑处理器
一般来说 linux内核中 通过 SMC 陷入 TEE , 然后 TEE 通过 ret 返回 linux内核
假设 时间 "linux 内核 通过 SMC 陷入 TEE , 然后 TEE 通过 ret 返回 linux内核" 为 时间A
linux 对 时间A 的大小有没有要求
因为如果此时看门狗在工作的话,而且 喂狗时机只在 linux内核(tee-os中没有喂狗时机), 时间A长了,肯定会触发看门狗 reset cpu
- TEE 硬件厂商及实现
Arm
TrustZone技术提供了一种高效的、系统范围的安全方法,它将硬件强制隔离内置于CPU中。
Hex-Five
多区域安全是Hex-Five安全创建的第一个RISC-V可信执行环境。
AMD
平台安全处理器(PSP)的正式名称是AMD安全技术,是一个集成在AMD微处理器中的可信执行环境子系统。
Intel
Software Guard Extensions(SGX)是一组与安全相关的指令代码,内置于一些现代Intel CPU中,可用于实现TEE。
苹果
使用了一种专用处理器SEP(Secure Enclave processor)来实现数据保护、触摸ID和人脸识别等功能。SEP负责处理密钥和其他信息,如生物特征识别,这些信息非常敏感,不会被应用处理器处理。
谷歌
也有一个类似的解决方案称为Titan M,这是一些Android Pixel设备上可用的外部芯片,可以实现TEE和处理安全引导、锁屏保护、磁盘加密等功能。
————————————————
版权声明:本文为CSDN博主「奔人之旅」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Thanksgining/article/details/111248666
- TEE软件
对Trust侧系统的实现,国际组织GP对其有一部分规范和要求,可以参考
https://github.com/OP-TEE/optee_os/blob/master/documentation/globalplatform_api.md
当前具有自己TEE解决方案的厂商有:
高通的Qsee(qcomsee)
三星的Trustonic
tee OS
google的trusty
OP-TEE OS
opentee
海思
Mstar
VIA
豆荚科技
ARM Linaro
op-tee
几个TEE的软件实现(提供开源工具或者基于TEE开发的SDK)如下:
商业的TEE实现,如Trustonic的t-base,Solacia的securiTEE不花钱肯定是无法使用的。而T6和SierraTEE貌似都必须购买相应的硬件开发板才能使用其开源的TEE软件,而且硬件开发板也不便宜。OP-TEE、TLK和Open TEE是完全开源实现
(1)Trustonic公司的t-base,是一个商业产品,已经得到GlobalPlatform的授权认可
https://www.trustonic.com/products-services/trusted-execution-environment/
(2)Solacia公司的securiTEE,也是一个商业产品,并且得到了GlobalPlatform的授权认可
http://www.sola-cia.com/en/securiTee/product.asp
(3)OP-TEE,开源实现,来自STMicroelectronics,BSD授权支持下的开源
开源地址:https://github.com/OP-TEE
(4)TLK,开源实现,来自Nvidia,BSD授权支持下的开源
开源地址:http://nv-tegra.nvidia.com/gitweb/?p=3rdparty/ote_partner/tlk.git;a=summary
(6)T6,开源实现,GPL授权下的开源研究,主要是上海交大的,是国内开展TEE研究比较早的
地址:http://www.liwenhaosuper.com/projects/t6/t6_overview.html
(7)Open TEE,开源实现,来自芬兰赫尔辛基大学的一个研究项目,由Intel提供支持,在Apache授权下提供支持
开源地址:https://github.com/Open-TEE/project
(8)SierraTEE,来自Sierraware公司的实现,拥有双重属性,一半开源一半商业性质
地址:http://www.openvirtualization.org/
其他
- 非安全模式到安全模式的切换
armv8
非安全code 跑 arm trust firmware,切换到el3,然后再跑optee
armv7
非安全code 跑 core/arch/arm/sm的子模块 ,然后再跑optee
- 安全模式到非安全模式的切换
armv8
➔ EL3 has platform specific runtime firmware.
➔ EL3 has secure privileges.
➔ ARM64 start from EL3, means in secure world.
➔ Bootloaders(non-secure) uses ARM Trusted
firmware (TF-A) switch normal world EL2 since
system boot from secure EL3.