TEE的由来以及TEE的概念

  • TEE的由来

  • TEE-with-OS启动实例

  • 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.asp3)OP-TEE,开源实现,来自STMicroelectronics,BSD授权支持下的开源

开源地址:https://github.com/OP-TEE4)TLK,开源实现,来自Nvidia,BSD授权支持下的开源

开源地址:http://nv-tegra.nvidia.com/gitweb/?p=3rdparty/ote_partner/tlk.git;a=summary6)T6,开源实现,GPL授权下的开源研究,主要是上海交大的,是国内开展TEE研究比较早的

地址:http://www.liwenhaosuper.com/projects/t6/t6_overview.html7)Open TEE,开源实现,来自芬兰赫尔辛基大学的一个研究项目,由Intel提供支持,在Apache授权下提供支持

开源地址:https://github.com/Open-TEE/project8)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.

你可能感兴趣的:(ARMv8,ARM64,linux)