这个图展示了一个典型的**可信执行环境(Trusted Execution Environment, TEE)**与**常规执行环境(Rich Execution Environment, REE)**的架构关系,同时也涉及了**虚拟化环境**。以下是对图中各个部分的详细解释,包括中英文对应关系:
### **图的结构**
图中展示了不同执行环境和模式之间的层次关系,从上到下分为多个层级,每个层级有不同的执行模式和组件。
### **层级和组件解释**
#### **1. 用户模式(User Mode)**
- **App(应用层)**:
- **REE**(Rich Execution Environment,常规执行环境):
- 这是普通应用程序运行的环境,通常由操作系统(如Windows、Linux等)管理。
- 用户模式的应用程序运行在这个环境中。
- **TEE**(Trusted Execution Environment,可信执行环境):
- 这是一个安全的执行环境,用于运行需要高安全性的应用程序(如加密操作、身份验证等)。
- TEE环境与REE隔离,提供更高的安全性。
- **TEEApp**(可信应用):运行在TEE中的应用程序。
#### **2. 内核模式(Kernel Mode)**
- **REE**:
- **EL1**(Exception Level 1,异常级别1):
- 这是操作系统内核运行的模式,负责管理用户模式的应用程序。
- 在REE中,EL1是操作系统内核的执行模式。
- **TEE**:
- **S-EL1**(Secure Exception Level 1,安全异常级别1):
- 这是TEE内核的执行模式,负责管理TEE中的可信应用。
- TEE内核与REE内核隔离,提供更高的安全性。
#### **3. 虚拟化模式(Hypervisor Mode)**
- **EL2**(Exception Level 2,异常级别2):
- 这是虚拟化模式,通常用于运行虚拟机管理程序(如Hypervisor)。
- 在虚拟化环境中,EL2是Hypervisor的执行模式。
- **Hypervisor**:负责管理虚拟机(VM)的运行。
#### **4. 安全监控模式(Secure Monitor Mode)**
- **S-EL3**(Secure Exception Level 3,安全异常级别3):
- 这是安全监控模式,用于管理从REE到TEE的切换。
- 它是TEE和REE之间的桥梁,负责处理安全相关的异常和切换。
- **S-ELO**(Secure EL3 Handler,安全EL3处理器):
- 负责处理从REE到TEE的切换请求(如通过SMC指令)。
- **ELO**(EL3 Handler,EL3处理器):
- 负责处理从REE到TEE的切换请求,通常由操作系统或Hypervisor调用。
### **关键概念解释**
1. **异常级别(Exception Level)**:
- 这是ARM架构中定义的执行模式,用于区分不同层次的执行权限。
- **EL0**:用户模式(User Mode)。
- **EL1**:内核模式(Kernel Mode)。
- **EL2**:虚拟化模式(Hypervisor Mode)。
- **EL3**:安全监控模式(Secure Monitor Mode)。
2. **SMC(Secure Monitor Call)**:
- 这是一个指令,用于从REE切换到TEE。
- 当应用程序需要执行安全相关的操作时,它会通过SMC指令请求切换到TEE。
3. **TEE(Trusted Execution Environment)**:
- 这是一个安全的执行环境,用于运行需要高安全性的应用程序。
- 它与REE隔离,提供更高的安全性。
4. **REE(Rich Execution Environment)**:
- 这是普通应用程序运行的环境,通常由操作系统管理。
- 它是TEE的“常规”对应物,用于运行大多数应用程序。
### **总结**
这个图展示了TEE和REE之间的层次关系以及它们在不同执行模式中的角色。通过这种架构,TEE提供了更高的安全性,而REE则用于运行普通应用程序。虚拟化环境(如Hypervisor)和安全监控模式(S-EL3)则用于管理和切换这些执行环境。