目录
[2.1 CCA 系统安全域](#2.1 CCA 系统安全域)
[2.2 监控安全域](#2.2 监控安全域)
[2.3 领域管理安全域](#2.3 领域管理安全域)
[3.1 安全配置](#3.1 安全配置)
[3.2 平台认证](#3.2 平台认证)
1、CCA的要素
高层次的 CCA 架构如下图中概述。
在硬件层面,CCA 系统安全域包括可能影响 CCA 安全保证交付的所有系统硬件组件。
**[R0001]**未直接参与交付 CCA 安全保证的硬件代理不能直接影响 CCA 系统安全域中的组件。
应用处理元件(PE)上的固件和软件被分为四个世界,由世界保护边界隔开。一个"世界"代表一种系统安全状态及其相关的私有资源------如内存、寄存器和设备------这些资源仅在请求者处于该状态时才可访问。
- 根世界(Root world)------负责执行世界之间的保护边界。
- 安全世界(Secure world)------包含所有 TrustZone 固件。
- 领域世界(Realm world)------包含所有领域(Realms)。
- 普通世界(Normal world)------包含所有其他托管环境的软件和固件。
**[R0002]**领域世界(Realm world)的内存和执行上下文不能被普通世界(Normal world)或安全世界(Secure world)影响。 安全世界的内存和执行上下文不能被普通世界或领域世界影响。 根世界的内存和执行上下文不能被任何其他世界影响。 普通世界的内存和执行上下文不受 CCA 的任何安全保证。
监控安全域(Monitor Security Domain, MSD) 代表了在启用 CCA 的系统上具有最高权限的应用处理元件(PE)固件。
**[R0003]**只有监控固件(Monitor firmware)可以直接访问 CCA 系统安全域中的硬件。 监控固件负责执行世界隔离保护边界。
领域管理安全域(Realm Management Security Domain, RMSD) 代表领域世界中最高权限的固件,负责在领域世界中执行领域之间的 CCA 安全保证。
2、CCA平台
CCA 平台是一个集合术语,用于识别所有参与提供 CCA 安全保证的硬件和固件组件。因此,领域(Realm)需要信任的所有硬件和固件组件都位于启用了 CCA 的系统中。这包括:
- CCA 系统安全域
- 监控安全域
- 领域管理安全域
2.1 CCA 系统安全域
CCA 系统安全域包含所有可能影响 CCA 安全保证的系统架构元素。包括:
- 应用处理元件(PE)初始启动代码------例如,启动 ROM
- 受保护的存储位置------例如,存储 CCA 硬件配置资产的防篡改保险丝
- 隔离硬件------参与执行 CCA 隔离策略的所有系统硬件代理,例如 MMU 或 MPU
- 可信子系统------与应用 PE 分离的、独立的执行环境,具有其自身的固件,例如 CCA 硬件强制安全(CCA HES)主机(参见硬件强制安全)或电源管理子系统
- 侵入性子系统------例如,调试或诊断接口
2.2 监控安全域
监控安全域代表在应用 PE 上的根世界中执行的所有固件。它在不同的世界之间实施 CCA 安全保证。监控安全域必须被领域世界和安全世界所信任。
2.3 领域管理安全域
领域管理安全域代表在应用 PE 上的领域世界中执行的所有固件,它在领域世界内的不同领域之间实施 CCA 安全保证。
领域管理安全域必须受Realm信任。
3、与系统平台安全服务的关系
系统可能会提供与 CCA 无关的平台安全服务,例如:
- 身份管理,例如订阅者身份
- 与 CCA 无关的密钥存储和密钥管理
- 平台测量和认证
- 生物识别和用户身份验证
CCA 不依赖任何此类服务来确保其自身的安全,因此本文件未讨论它们。根据实现的不同,有两个特定的平台安全服务可能与 CCA 相交,仅在此提供背景信息:
- 安全配置(Security provisioning)
- 平台认证(Platform attestation)
平台安全和平台认证通常在专用的可信子系统中实现,包括诸如 [Titan] 和 [Cerberus] 等标准。
3.1 安全配置
安全配置代理指任何支持配置机密信息的功能,例如配置 SIM 或 TPM 身份。
CCA 也需要硬件配置的资产来提供 CCA 安全保证,详见 CCA 身份管理。
安全配置过程预计是依赖于特定生态系统的,可能发生在设备供应链的任何阶段或多个阶段的组合中。例如:
- 在硅片制造阶段
- 作为设备制造结束时设备激活的一部分
- 作为设备所有者的在线激活过程的一部分
CCA 不定义或限制使用何种安全配置过程或其设计方式。
3.2 平台认证
平台认证是现代复杂设备中常见的功能,涉及多个平台安全子系统。每个独立的平台安全子系统可能实施自己的安全启动过程,但自身并不提供整个平台的安全启动状态。
通常,平台认证由一个专用的可信子系统组成,该子系统能够独立测量所有平台安全组件的关键启动阶段,并提供整体平台的安全认证。平台认证对它所测量的平台安全子系统是透明的。
平台认证的结果可以通过多种方式使用,例如:
- 强制执行本地设备政策
- 向远程平台验证者提供系统整体安全状态的独立证明。例如,允许云托管提供商在数据中心中执行政策。
在平台启动过程中所进行的测量也可以用于密钥派生。例如,它可以用于保护用户数据不受未经授权的固件影响。
平台认证不会取代各个平台安全子系统中的本地安全过程,而是试图在多个互不信任的平台安全子系统之间强制执行全局政策。
CCA 不定义或限制平台认证过程,也不依赖平台认证来执行自身的安全过程。