威胁模型和安全分析(TMSA)表示Arm生成的一套文档,为许多目标PSA应用程序提供特定于用例的威胁模型分析。
每个TMSA都包含一组安全目标。安全目标可以减轻TMSA中一个或多个已确定的威胁。
PSA安全模型(本文档)定义了一个安全体系结构,旨在解决TMSA中识别的一组通用威胁,为所有预期的PSA应用程序提供安全基础。
本节展示每个已确定的TMSA安全目标的相应通用PSA安全模型目标。
安全目标 | 说明 | PSA安全要求章节(强制性) | 备注 |
访问控制 | 在授予访问水表配置和日志以及执行固件更新之前,评估对象应该对远程和本地管理实体进行身份验证。 | PSA可信根 初始认证 PSA生命周期管理 | PSA可信根提供了不可变的密钥保护,并加强了组件之间的隔离。 |
安全存储 | 当存储时,评估对象应该保证完整性和机密性,要保护固件证书的完整性,和配置文件、log的完整性 | 存储 密码服务 PSA生命周期管理 | 在应用程序可信根内,基于可信绑定API的PSA可信根和密码服务API可以被用于构建安全存储服务 |
固件真实性判定 | 在启动过程中,以及升级之前,评估对象应该对固件镜像和新固件版本的完整性进行验证。 | 引导 PSA可信根 |
|
通讯 | 该评估对象只能接受来自配置后端服务器的远程连接,并能够对这些服务器进行身份验证。 评估对象还应提供真实性,机密性和重放保护提供给其输出侧。 | 加密服务 PSA安全生命周期管理 初始认证 存储 | PSA没有指定协议,但提供了用于存储密钥和将协议绑定到设备及其状态的安全构建块。 |
审计 | 评估对象应该维护所有重要事件的日志,并且只允许授权用户访问和分析这些日志。 |
| PSA没有指定协议,但提供了用于存储秘密和将协议绑定到设备及其状态的安全构建块。 |
安全状态 | 即使发生故障,如固件完整性验证失败,也应保持安全状态。 | 引导 PSA安全生命周期 PSA可信根 |
|
防篡改 |
| PSA没有指定协议,但提供了用于存储秘密和将协议绑定到设备及其状态的安全构建块。 请参阅Arm的可信基础系统架构(TBSA-M) | 根据健壮性水平和生态系统的要求,预期对防篡改的详细要求会有所不同,本文档中不再进一步讨论。 |
-
- 硬件示例:有密码运算模块的Arm v8-M
下面的参考设计是基于一个简化的Arm Musca-B1测试芯片。体系结构的高层图如下图1所示。
CPU
该设计使用了一个Armv8-M CPU,并实现了安全包(TrustZone支持)。它实现了两个MPUs——一个用于非安全执行状态,另一个用于安全执行状态(MPU_S)。它还实现了一个有8个条目的安全归属单(SAU)。CPU子系统包括一个2KB的指令缓存,一个实现定义的属性单元(IDAU)和一个紧耦合的RAM块专用于CPU。
互联接
互连采用Arm Corelink SSE-200互连,以AMBA AHB5总线矩阵为中心。互连由每个从属端口TrustZone过滤器补充,这些过滤器可以接受或拒绝依赖于其安全属性的事务。
非易失性存储器
芯片上的系统集成了多个嵌入式闪存分区,这些分区可以通过fuse(熔丝位)进行锁定,从而使它们的内容变得不可变。Boot ROM是这样实现的。ROM在制造时写入,并设置了永久保险丝,因此无法进行后续更新。
此外,还有几千位的一次可编程(OTP) efuses(一次可编程熔丝位?)。它们用于存储id、设备密钥和其他机密,以及非易失性设备标志。
加密单元
TrustZone CryptoCell是一个受信任的子系统,提供平台安全服务和一组密码服务。支持以下功能:
- 用于保护传输中的数据(通信协议)和静止数据的加密加速硬件
- 保护属于不同(可选)利益相关者(IC供应商或设备制造商或服务运营商或用户)的各种资产。这些资产保护功能包括:
- 启动时或运行时的映像验证
- 验证调试
- 随机数生成
- 生命周期管理
- 资产配置
系统RAM
这个参考体系结构集成了一个系统RAM块来支持应用程序。RAM位于TrustZone过滤器后面,允许将其划分为安全区域和非安全区域。在安全执行状态下运行的软件只能访问安全区域。
-
-
- PSA隔离的实现
-
PSA隔离强制隔离边界,将设备固件隔离到分区中。
下图中显示了到这个参考体系结构的一个这样的映射。
应用
大多数应用程序在处理器的非安全执行状态的非特权模式下运行。RTOS和设备驱动程序通常也被映射到不安全的执行状态。应用软件及其操作系统和驱动程序都被映射到PSA非安全处理环境中。
可升级的PSA可信根
在PSA系统中有两种类型的可更新信任根—信任的PSA根和应用程序根的信任。参见PSA可信根章节。这两者都会被映射到安全处理环境中,该环境在CPU的安全执行状态下执行。
- 应用程序可信根实现针对应用程序的功能——例如TLS和应用程序级安全存储
- PSA可信根实现所有PSA平台共有的功能,并在设备上形成最受信任的固件
PSA可信根具有对硬件安全系统的独占访问权。CryptoCell和其他信任组件的根互相影响,例如,TrustZone过滤器,只能通过PSA根信任函数来执行。
不可变PSA可信根
某些PSA可信根被定义为不可变的,并且在制造之后不能更新。
本设计中,包括了准备在嵌入式闪存中,并在制造时锁定的Boot ROM,以及OTP保险丝,后者通常在一个安全的环境中准备一组资产,即PSA和应用程序都需要的密钥和标识符。PSA资产在安全模型中进行了描述,并且在Armv8-M中也使用了TBSA-M(可信基础系统架构)。在本设计中,CryptoCell根据访问和它们的生命期保证来管理OTP熔丝位。CryptoCell还使用OTP熔丝位来支持设备生命周期的管理,包括PSA信任根的安全生命周期。
下图为和PSA固件框架的映射:
可信固件的某些根是可更新的。固定在不可变RoT中的信任链度量并验证所有新固件映像。在这个参考架构中,所有的RoT固件都存储在嵌入式flash宏(embeddedflash macro)中。
-
-
- PSA隔离边界的映射
-
所有PSA实现的一个关键方面是为隔离边界提供的硬件支持。在这个示例中,实现了一个级别2的隔离系统,但是在这个硬件体系结构中还可以支持更高级别的隔离。
1级边界
NSPE(不可信的应用)和SPE(应用可信根)之间的第1级边界是使用TrustZone实现的。NSPE对应于非安全状态和SPE对应于安全状态。通过设备的物理设置NS位来实现隔离,必须适当地配置SAU、IDAU 和TrustZone过滤器来实现这个边界隔离。
2级边界
2级边界位于应用程序可信根和PSA信任根之间。对于运行在Armv8-M处理器上的软件,边界由MPU_S实现,MPU_S是专用于在安全状态下执行的进程的内存保护单元。