安全之安全(security²)博客目录导读
目录
1、引言
2、问题陈述
3、CCA 安全保证
3.1 对领域所有者的安全保证
3.2 对host环境的安全保证
Arm 机密计算架构(CCA)安全模型(SM)定义了 CCA 隔离架构的安全要求和基本安全属性。这些安全属性是部署受该架构保护的应用程序时所需的,并且确保了对其底层实现的信心。
CCA SM 关注的是以稳健性规则(robustness rules)形式表达的必要安全属性。CCA SM 确定的 CCA 硬件和固件组件的技术要求在单独的技术规范中进行了说明。
部署在 Arm CCA 上的应用程序的所有者必须能够:
- 确立对 Arm CCA 底层实现的可信性
- 如果该可信性发生变化,能够保护应用程序资产
本文档为建立这种信任提供了基础,具体方法为:
- 定义 Arm CCA 提供的安全保证
- 定义受 Arm CCA 保护的应用程序可以依赖的底层安全能力
- 为在更广泛的生态系统中部署受 Arm CCA 保护的应用程序提供技术参考
- 确立通用的技术定义和术语
1、引言
Arm 机密计算架构(CCA)是一种提供受保护执行环境(称为“领域”)的架构。“领域”的目的在于为机密计算提供一个环境。
除了标准 Arm 架构提供的基于特权的隔离外,“领域”还获得了反向操作的保护——分配给领域的资源同样受到保护,防止更高特权级别的代理访问。这包括在更高异常级别上执行的软件或固件以及硬件代理(如 DMA 代理)。
2、问题陈述
复杂现代系统上的软件运行在一个互不信任的环境中。例如:
- 在同一系统上托管的应用程序所有者彼此不信任
- 应用程序所有者必须信任host环境
- host环境必须信任应用程序不会试图危害主机或其他应用程序
- 平台安全服务不信任host环境或应用程序
现有的隔离架构,例如虚拟机监控器(hypervisor),通过阻止应用程序访问host环境的私有资源,来保护host环境免受应用程序的威胁。然而,应用程序并未受到host环境的保护。 同样地,TrustZone 可以保护安全服务免受非安全服务的影响,但无法保护应用程序免受安全服务的威胁。
CCA 引入了基于所有权的额外边界,无论特权级别如何,都能保护资源。它的设计旨在满足以下总体安全目标:
-
最小信任链
应用程序只需信任自身以及提供 CCA 安全保证的系统部分。例如,应用程序无需信任host软件(如hypervisor),也无需信任任何非 CCA 的硬件代理,无论其特权级别如何。 -
可证明的信任
部署在启用了 CCA 的系统上的领域应用程序的用户可以证明该应用程序的可信度,以及参与提供 CCA 安全保证的所有 CCA 固件和硬件代理的可信度。 -
可认证
CCA 安全保证的实现仅包含在最小的一组硬件和 CCA 固件组件中,这些组件可以被开发、认证和验证。
3、CCA 安全保证
Arm CCA 旨在为领域(Realms)和host环境提供特定的安全保证。
这些保证当然是基于 CCA 正确实现的假设。为确保 CCA 实现的可信度和领域资产的安全性,系统硬件和固件的功能是本规范的主要讨论内容。
3.1 对领域所有者的安全保证
领域所有者代表领域策略的拥有者。
在 CCA 的上下文中,领域策略包括领域可以在何种条件下代表领域所有者或领域用户访问受领域保护的资产,这包括领域创建策略和认证策略等。
保证 | 描述 | 备注 |
---|---|---|
机密性和完整性 | 领域的内存内容和执行上下文不能被以下主体访问或修改: 1. 其他领域 2. 非 CCA 的软件、固件和硬件 | 例如,领域受到以下保护: • 其他领域 • host环境中的任何软件,例如hypervisor • 在安全状态下运行的 TrustZone 中的所有软件 • 安全或非安全的 DMA 代理 |
最小信任链 | 领域所有者和领域用户只需信任 CCA 的固件和硬件。 | 例如,领域无需信任: • 其他领域 • host环境中的任何软件,例如hypervisor • 在安全状态下运行的 TrustZone 中的任何软件 |
可证明的信任 | 领域用户能够验证领域的可信性,以及 CCA 固件和硬件的可信性。 | |
持久领域资产的保护 | 只有当领域和 CCA 固件及硬件处于可信状态时,持久领域资产才能被领域访问。 | 可信性由领域所有者控制的策略决定。 |
3.2 对host环境的安全保证
此上下文中的host环境表示托管Realm(包括策略)的系统上的非CCA软件、固件和硬件。
保证 | 描述 | 备注 |
---|---|---|
资源的管理和可用性 | 托管环境对资源分配有完全控制权,包括内存分配、调度和非安全设备。 | 包括分配给领域的资源。 |
系统策略 | 例如,托管环境的电源管理策略和其他系统策略。 | CCA 可能强制执行系统策略,以确保其安全性且不危害 CCA 的安全保证。 |
领域创建策略 | 托管环境可以在任何状态下创建领域,包括不可信的状态,如主机调试模式。 | 领域的状态反映在 CCA 的认证中,托管环境无法影响这一认证。 领域创建策略和领域状态不在本博客范围内。 |
系统启动状态 | 系统可以在任何状态下启动,包括可能危害 CCA 安全保证的状态。 |