optee环境基本组成

本文介绍optee 全部环境的各部分组成,及其相互之间的关系

Tee linux driver

这是Linux内核中的一个驱动程序,负责与OP-TEE操作系统进行通信。它提供了用户空间与安全世界(即OP-TEE OS)之间的接口。
他会 在Linux创建一些节点 如

  • /dev/teepriv0
  • /dev/tee0
  • /sys/class/tee_info/sys_boot_complete

Tee_Supplicant

Tee_Supplicant是一个用户空间守护进程,它与OP-TEE OS通信,处理来自OP-TEE OS的请求,例如访问文件系统,RPMB或网络资源。它还负责管理安全存储(Secure Storage),用户TA,即ree side TA , 就是经过tee-supplicant load 进 bl32 的。

Optee_Client

Optee_Client是一组用户空间库和工具,它们提供了与OP-TEE OS交互的API。这些库和工具允许普通应用程序(CA,Client Applications)调用受信任的应用程序(TAs)。编译最终的文件名为 libteec.so 。

Optee Os

OP-TEE OS是运行在安全世界中的操作系统,也叫(BL32),它提供了安全的执行环境,用于运行受信任的应用程序(TAs)。OP-TEE OS负责处理来自普通应用程序的请求,并在安全环境中执行相应的操作。
BL32 由 bl31 所启动, 遵循ATF启动框架流程,同属于uboot的一部分。

CA & TA

  • CA (Client Application): 这是运行在普通操作系统(如Linux)上的应用程序,它通过调用OP-TEE提供的API来请求安全服务。
  • TA (Trusted Application): 这是运行在OP-TEE OS中的安全应用程序,它执行敏感操作,如加密、解密、认证等,并且这些操作是在硬件保护的安全环境中进行的。

我们可以在github optee仓库中找到对应的资源, 其中还有tts 这样的库,这些是optee 封装的测试库,用于测试当前optee 环境是否支持这些测试项, 比如测试 storage, rpmb, 加解密 等等。

对于不同的vendor 厂商, 还会有 一些storage 专门定制的分区,用来存放 tee的持久化文件, 这些不同的厂商实现方式不同,比如 /storage/ 分区, rpmb分区, 通常用来存放一些 KEY文件等

RPMB分区是EMMC flash的特性, 通常在rpmb分区存放key文件,以及保存TA文件的版本信息,在每次加载ta的时候,bl32 都会去 /uuid/ta_version 下去检查版本信息,进行比对,如果当前的版本小于rpmb存放的version, 那就禁止ta加载,这也是一种anti-rollback 机制

另外这里单独提一下BL31 , 虽然他不属于OPTEE的范畴,但BL31确是Normal World 切换到 Secure World 的根基, SMCCALL 会经过bl31 的解析 来判断是否切换到bl32 ,所以 bl31 运行在EL3 模式, bl32 运行在EL2模式

  • 22
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值