PSA架构之安全模型1.0(DEN0079)之9:附录

  1. 附录
    1. TMSA安全目标的对应关系

威胁模型和安全分析(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)

根据健壮性水平和生态系统的要求,预期对防篡改的详细要求会有所不同,本文档中不再进一步讨论。

 

    1. 硬件示例:有密码运算模块的Arm v8-M

下面的参考设计是基于一个简化的Arm Musca-B1测试芯片。体系结构的高层图如下图1所示。

PSA架构之安全模型1.0(DEN0079)之9:附录

      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是一个受信任的子系统,提供平台安全服务和一组密码服务。支持以下功能:

  1. 用于保护传输中的数据(通信协议)和静止数据的加密加速硬件
  2. 保护属于不同(可选)利益相关者(IC供应商或设备制造商或服务运营商或用户)的各种资产。这些资产保护功能包括:
  1. 启动时或运行时的映像验证
  2. 验证调试
  3. 随机数生成
  4. 生命周期管理
  5. 资产配置

 

系统RAM

这个参考体系结构集成了一个系统RAM块来支持应用程序。RAM位于TrustZone过滤器后面,允许将其划分为安全区域和非安全区域。在安全执行状态下运行的软件只能访问安全区域。

      1. PSA隔离的实现

PSA隔离强制隔离边界,将设备固件隔离到分区中。

下图中显示了到这个参考体系结构的一个这样的映射。

 

应用

大多数应用程序在处理器的非安全执行状态的非特权模式下运行。RTOS和设备驱动程序通常也被映射到不安全的执行状态。应用软件及其操作系统和驱动程序都被映射到PSA非安全处理环境中。

 

可升级的PSA可信根

在PSA系统中有两种类型的可更新信任根—信任的PSA根和应用程序根的信任。参见PSA可信根章节。这两者都会被映射到安全处理环境中,该环境在CPU的安全执行状态下执行。

  1. 应用程序可信根实现针对应用程序的功能——例如TLS和应用程序级安全存储
  2. PSA可信根实现所有PSA平台共有的功能,并在设备上形成最受信任的固件

PSA可信根具有对硬件安全系统的独占访问权。CryptoCell和其他信任组件的根互相影响,例如,TrustZone过滤器,只能通过PSA根信任函数来执行。

 

不可变PSA可信根

某些PSA可信根被定义为不可变的,并且在制造之后不能更新。

本设计中,包括了准备在嵌入式闪存中,并在制造时锁定的Boot ROM,以及OTP保险丝,后者通常在一个安全的环境中准备一组资产,即PSA和应用程序都需要的**和标识符。PSA资产在安全模型中进行了描述,并且在Armv8-M中也使用了TBSA-M(可信基础系统架构)。在本设计中,CryptoCell根据访问和它们的生命期保证来管理OTP熔丝位。CryptoCell还使用OTP熔丝位来支持设备生命周期的管理,包括PSA信任根的安全生命周期。

下图为和PSA固件框架的映射:

PSA架构之安全模型1.0(DEN0079)之9:附录

可信固件的某些根是可更新的。固定在不可变RoT中的信任链度量并验证所有新固件映像。在这个参考架构中,所有的RoT固件都存储在嵌入式flash宏(embeddedflash macro)中。

      1. PSA隔离边界的映射

所有PSA实现的一个关键方面是为隔离边界提供的硬件支持。在这个示例中,实现了一个级别2的隔离系统,但是在这个硬件体系结构中还可以支持更高级别的隔离。

1级边界

NSPE(不可信的应用)和SPE(应用可信根)之间的第1级边界是使用TrustZone实现的。NSPE对应于非安全状态和SPE对应于安全状态。通过设备的物理设置NS位来实现隔离,必须适当地配置SAU、IDAU 和TrustZone过滤器来实现这个边界隔离。

2级边界

2级边界位于应用程序可信根和PSA信任根之间。对于运行在Armv8-M处理器上的软件,边界由MPU_S实现,MPU_S是专用于在安全状态下执行的进程的内存保护单元。