TEE(Trust Execution Environment)
可信执行环境,是和REE(Rich Execution Environment)相对应的,是ARM的一种模式。我们一般也称TEE和REE为Secure World和Normal World。Linux都跑在Normal World上,但是有些安全性要求比较高的行为,例如指纹的比对,支付时候用私钥签名的动作等,就要放到Secure World里面去。
TEE操作系统
TEE环境下也要有一个操作系统,海思有自己的Trustzone的操作系统,此外还有Trustonic、高通的QSEE、国内的豆荚,还有开源的OPTEE等。这些都是TEE环境下的操作系统。
TEE应用
在操作系统之上自然要有应用程序,在Trustzone里面我们一般叫TrustApp,当然TEE里面每个TrustApp都在一个沙盒里,互相之间是隔离的。比如说支付,就可以做成一个App(需要注意的是,和Normal World里面的App是两个概念),这个App简单来说就负责用私钥把网上发来的Challenge签个名,而这个签名的动作是需要在Secure World里面做的,避免恶意程序窃取到私钥来伪造签名。
以支付宝为例,其实支付宝也是只支持几个Trust OS的。同时,支付宝还定义了一系列标准,用来完成他的行为。
TEE规范
多说一句,现在的Trust OS大都会遵循GlobalPlatform的规范,这个组织致力于制定统一的Trust OS的API的接口规范,这样一个TrustApp只要用GP API,就可以方便移植到各个不同的TEE操作系统上了。