PSA架构规范包括一系列彼此关联的文件,如下所列:
本文引用地址:http://www.eepw.com.cn/article/202203/431843.htm➤ 设备安全模型 – 基础的信任模型和模式
➤ 可信设备初始化 – 初始安全设备编程和配置要求
➤ 可信基础系统架构 [TBSA-M] – v8-M的硬件平台要求
➤ 可信启动与固件更新
➤ PSA固件框架M [PSA FF] – 受限物联网平台安全处理环境(SPE)的固件接口定义
➤ PSA可信功能 – SPE内标准可信设备的定义
设备安全模型
设备安全模型(DSM)定义了在生态系统内设计和部署 PSA兼容可信设备的总体安全架构。它是其他PSA规范的顶层文件,为它们规定了通用语言、高阶鲁棒性规则和模型。
DSM的基础是威胁模型和安全分析针对使用案例提出的建议。虽然DSM与使用案例无关,但其最初侧重于几个选定的物联网使用案例。
DSM 包括三个主要方面:
(1)信任根和相关安全服务
(2)根秘密及其存储、保护和初始化
(3)设备生命周期及其对信任根的影响
可信设备初始化
只有在根秘密和设备固件在安全生产过程的背景下初始化时,安全和信任模型才有效。 生产过程延伸到设备管理,以便向服务提供商和设备所有者分配设备属性和固件更新等。
这是一份资料性文件,它指出并讨论了对基础架构和通用框架的一般需求,以促进设备安全架构中的这些过程并以及它们对信任根的依赖性。配置实际的工厂供应和设备管理架构应当由行业利益相关方负责,或者使用类似 Arm Mbed Cloud 的设备来完成。
可信基础系统架构(TBSA)
Armv8-M的Arm可信基础系统架构(TBSA-M)是一系列SoC硬件要求。它适用于基于 Armv8-M的设计,有助于研发更安全的设备。TBSA-M文件也能为计划使用Armv7-M架构实施安全设计的硅芯片制造商提供参考。
TBSA-M包含围绕Armv8-M处理单元(PE)进行系统设计时适用的最佳实践安全原则。这些原则为设计和集成下列植根于硬件的功能特点提供支持:
● 信任根
● 受保护的密钥库
● 可信和不可信软件组件的隔离
● 安全的固件更新机制
● 生命周期管理机制和安全的调试
● 高熵随机数发生器;它对可靠的密码必不可少
● 密码编译加速器,其作用是为适当的安全功能保持实时功能性
固件框架(PSA-FF)实现最好能在TBSA-M兼容设计的顶层进行,以便实现安全关键功能性和数据与应用固件数据隔离的安全处理环境。这样可以提高设备的可信度,即便出现可能被利用的软件漏洞。
可信启动与固件更新
可信启动和固件更新规定了确保MCU启动的完整性所必须满足的系统和固件技术要求。规范包括以下内容:
● 经过验证的启动过程以建立安全运行时服务
● 安全的固件更新代理
● 固件更新的认证和授权说明,包含密码证书和设备密钥
● 有助于实现健壮性的建议和最佳实践说明
规范的范围与A系列客户端设备的可信主板引导要求(TBBR)类似。
固件框架(PSA-FF)
固件框架(FF)基于设备安全模型的要求,规定了用于在受限物联网设备中隔离可信功能的标准接口和框架。框架提供:
● 为可信和不可信固件描述隔离运行环境(分区)的架构
● 描述各个分区的功能和资源的标准模型
● 用于向其他分区请求服务的安全 IPC 接口
● 描述分区如何彼此进行互动的模型,以及硬件和固件框架实施本身
该规范能够实现安全固件功能性的开发,可复用于符合固件框架实施的不同设备。
PSA 固件框架概况
1、安全分区与隔离
平台安全架构固件框架(PSA-FF)定义了三个许可的固件运行隔离层级。这样可以允许在高度受限的设备中减少隔离。与此同时,还能在拥有充足的资源的平台上增加安全性和鲁棒性,并且为安全功能提供一致的固件接口。
PSA-FF将系统内的执行划分为两个分区——非安全处理环境(NSPE)和安全处理环境(SPE)。NSPE包含应用固件、操作系统内核和库,通常控制着大部分输入/输出外围设备。SPE包含安全固件和硬件资源,与 NSPE固件和非安全硬件资源隔离。
PSA-FF将SPE进一步划分为安全分区管理器(SPM)和安全分区。安全分区为安全功能提供执行环境。SPM运用隔离逻辑来分隔不同的分区,由平台硬件使用主侧和/或从侧过滤器执行。例如,安全属性单元(SAU)和存储保护单元(MPU)可以在新的 Armv8-M平台中使用。其他平台可以使用其他机制来提供类似的分区隔离。
2、安全IPC
固件框架定义了基于安全会话的IPC机制,可以让彼此隔离的分区中的固件进行互动。具体说来,IPC框架让一个分区内的固件可以通过标准接口向另一分区内的固件请求服务。API要求由分区之间的框架来复制消息,进而消除直接共享内存带来的脆弱性风险。
3、安全功能
PSA-FF 将安全性功能显示为一系列安全功能。每一项安全功能都是安全分区中实施的一系列相关安全操作。每一个安全分区能够支持多项安全功能。
不同的芯片合作伙伴可以为标准安全功能(SF)提供他们自己的插件实现。固件框架通过预定义的API和调用语义将SF实施抽离。芯片和其他合作伙伴也可以定义他们自己的安全功能实现,以便提供针对平台的服务或更高水平的安全服务。
有关固件框架的更多详情见 PSA 固件框架-M [PSA-FF] 规范。
可信功能
有些安全功能提供信任根服务(例如身份认证),或者是信任根的使能(例如加密操作);这些安全功能被称为“可信功能”。可信功能的标准接口将由PSA定义,例如:
● 安全认证
● 安全存储/数据封装
● 加密操作
● RNG 和安全时间服务
● 安全的固件更新