嵌入式开发中,TEE镜像是什么东西?
在u-boot中,如果执行默认的自动加载命令集 ,此时如果设置了tee的相关环境变量,那么u-boot会去加载TEE镜像,详情见我的另一篇博文 https://blog.csdn.net/wenhao_ir/article/details/146051313
那么问题来了,TEE镜像是什么东西呢?
在ARM嵌入式系统平台上,TEE(Trusted Execution Environment)镜像指的是在受信任执行环境(TEE)中运行的固件或操作系统映像。TEE是一种安全区域,与通常运行Linux等操作系统的非安全世界(Normal World)不同,TEE运行在安全世界(Secure World),用于执行安全敏感的操作,比如加密、密钥管理和身份认证。
TEE 主要由以下部分组成:
-
Normal World(非安全世界):
- 非安全世界中运行Linux、RTOS等操作系统,甚至是裸机代码(通常是Cortex-A应用处理器上的EL1)。
- 通过**Secure Monitor Call(SMC)**指令与安全世界通信。
-
Secure World(安全世界):
- 运行TEE OS(例如OP-TEE、QSEE、Trusty等)。
- 运行在ARM的EL3或EL1(Secure)模式。
- 提供安全服务,如密码学操作、DRM、身份认证等。
TEE 镜像的作用:
TEE 镜像通常包含TEE OS的内核和用户空间组件,主要用于:
- 提供安全存储(Secure Storage)
- 运行加密算法(如AES、RSA、HMAC)
- 支持硬件安全模块(HSM)
- 执行可信应用(TA, Trusted Applications)
- 管理设备身份认证和密钥
TEE 镜像的典型组成:
- TEE OS 内核:负责安全应用的调度、内存管理、权限管理等。
- TA(Trusted Applications):运行在TEE中的可信应用。
- 驱动和接口:用于与Normal World通信,比如
optee
Linux内核驱动。
TEE 镜像的格式:
TEE 镜像通常是二进制文件,可以是:
.bin
(裸二进制).elf
(带符号信息的可执行格式).img
(可烧录镜像)
例如,在OP-TEE中,TEE镜像可能是:
tee.bin
:裸TEE OS镜像tee.elf
:调试用的TEE OS ELF文件tee.img
:可用于烧写的镜像
应用实例
安全级别要求较高的指纹识别系统(Touch ID) 以及 面部识别系统(Face ID)就运行在TEE环境中。比如苹果手机的指纹识别系统(Touch ID) 以及 面部识别系统(Face ID) 确实利用了 TEE(Trusted Execution Environment) 的概念,并通过苹果专有的 Secure Enclave(安全隔区) 来实现。