PSA平台安全架构简介
扫描二维码
随时随地手机看文章
1. 导言
物联网(IoT)转型的进程正如火如荼,并有可能改变企业和消费者体验。互联网的这个新阶段能否取得成功,很大程度上取决于数十亿各种互联设备的信任和安全性能。企业需要依靠来自边缘计算的数据才能做出商业决策,而消费者需要确保他们的互联家居和数字生活不会被黑客攻击。近期的攻击和安全研究表明,在极端情况下,设计不佳的连接设备有可能被攻陷并导致互联网基础架构的关键部件被破坏,甚至影响到我们的安全。因此,我们需要能够应对这些威胁并且适用于各种成本点的设备安全。平台安全架构(PSA)的使命就是克服这一挑战。它能够服务于任何设计合理的 Arm 处理器,包括低成本微控制器。
安全并非可有可无
Arm宣布将推出平台安全架构(PSA)和配套的开源软件计划Trusted Firmware-M。该项目能够提供由硬件支持的可扩展安全性,可应用于成本从低到高的各类设备。其目的是通过共享的最佳实践方法提高整个生态系统的安全性。为此,我们需要转变安全经济学,降低实施强大安全措施的风险、成本、低层次碎片化和复杂性。
基于微控制器(MCU)的设备数量急速增长将导致:
l 数十亿种物联网设备和嵌入式连接设备设计,全部基于各种 Arm 解决方案
l 种类繁杂的使用案例和安全健壮性要求
l 来自多家供应商的系统组件集成:硬件、软件和固件
l 各种组件的多样化实施
l 不同项目之间可能无法复用的集成工作
本白皮书概述了全新架构——PSA。这种架构将为日益增加的基于MCU的连接设备奠定基于硬件和固件的安全基础。PSA不限定CPU架构,但以基于MCU的设备为优先服务对象,同时也可应用于全面可信执行环境(TEE)太过庞大、太过复杂的其他平台。
运行 Linux 等复杂操作系统、Arm TrustZone® 等现有基于硬件的安全产品以及可信执行环境(TEE)的 Arm 应用处理器(即Cortex-A系列)也同样适用。
1.1 行业挑战
行业面临如下挑战:
1. 在设备的整个生命周期内实施安全可能代价不菲
2. 安全设备很难实现规模化管理
3. 行业对传感器和执行器接收和发送的数据缺乏信心,因此无法全面发掘物联网的经济效益
1.2 Arm 对更安全物联网的愿景
Arm的安全愿景侧重于三个主要领域:
1. 转变安全经济学
设备的整个生命周期都应当提供用户负担得起的安全性。
2. 实现规模化安全性
物联网的云运营商需要相应的设施来安全、有效地管理海量设备,无论何种设备类型和芯片类型。
3. 整个价值链的安全
物联网的一个主要优点就在于它生成和交换的数据,以及从这些数据中分析提取的信息。企业必须能够判断数据的可靠性,进而实现整个生态系统共享的经济效益。
1.3 IP支持
Arm现有的安全产品和技术能够帮助移动和上网本市场的硅芯片合作伙伴提高安全性和质量并加快产品的上市速度。Arm现有的安全产品包括:
l Armv8-A等包含TrustZone的Cortex-A系列
l Arm可信固件(针对Cortex-A系列),一种开源参考实施,包括可信 启动和TEE加载组件
l 将TrustZone引入微控制器市场的Armv8-M架构
l Arm SecurCore,防篡改处理器系列
l TrustZone CryptoCell,提供平台级安全服务的安全模块
l TrustZone CryptoIsland,高度集成式安全子系统,旨在提供片上智能卡级别的安全性
l Arm Mbed IoT Device Platform,提供相应的操作系统、云服务、工具和开发者生态系统,以实现基于标准的商业物联网解决方案的规模化开发和部署。
接下来我们将介绍平台安全架构,为制造更安全连接设备提供方法。
2. 平台安全架构
2.1 目标
平台安全架构(PSA)是一个由威胁模型、安全分析以及硬件和固件规范组成的整体。它与开源参考实施共同帮助您在最低的安全层面为所有互联设备实现统一的安全设计。PSA吸收并整合了整个行业的最佳实践。它的服务对象是整个物联网生态系统,从芯片设计师和设备开发者到云和网络基础架构提供商以及软件供应商。
PSA 提供了一种无需自行开发所有元件就能构建安全系统的方法。Arm是这个生态系统的领导者,其目标是保护整个互联世界。
下列目标概述了确保数十亿设备安全的框架:
l 简化按照安全标准评估物联网设备的过程
l 促进重复利用、提高互操作性和最大程度减少API碎片,进而降低生态系统合作伙伴开发软件的成本和复杂性
l 利用PSA提供的原始资源实现设备安全模型,进而降低SoC设计者的成本和复杂性
为了实现上述目标,下列要求必须得到满足:
l 为认证/评估基于Arm的SoC或设备建立基础
l 定义核心安全功能
l 定义沙箱安全模型
l 为第三方软件提供商实施的安全功能定义框架
l 定义基础物联网安全硬件平台
l 为物联网提供健壮的开源参考实施(类似于上网本和移动市场的Arm可信固件)
2.2 构建模块
PSA 由三个部分组成:
1. 威胁模型和安全分析,来自各种典型的物联网使用案例
2. 架构的固件和硬件规范
3. 固件架构规范的开源参考实施
PSA的基础是设备的威胁模型,它们将安全要求延伸至其他各大构件,如图 1所示。威胁模型与CPU架构无关,而另外两大构件的作用是为统一的实施提供支持。
三大构件之间的关系如图 1 所示。
图 1 – PSA 的组成
2.3 威胁模型与安全分析
设计安全系统时,我们需要结合关键问题进行风险分析并建立威胁模型。这些关键问题包括:
l 我们要保护的资产
l 潜在的威胁
l 潜在攻击的范围和强度
l 潜在攻击者的类型以及攻击方式
通过这些研究可以确定安全目标,随后制定减轻此类威胁的安全功能要求。
Arm 对相关的物联网使用案例和情境进行了分析。通过分析得出普遍适用的安全原则,然后用它来指导架构规范文件的制定。
Arm 使用英语语言保护范围(PP)方法来为评估目标(TOE)制定一系列安全功能要求(SFR)。每一个轮廓都考虑了功能描述、TOE 和必要的安全要求。这些文件要让并非安全专家的工程师能够使用。
各种PSA架构规范描述的硬件和软件安全构件提供了满足威胁模型所凸显的安全要求所需的原语。
图 2 显示了高层次分析示例。
图 2 – 一个仪表的安全分析示例
2.4 架构规范文件
PSA架构规范包括一系列彼此关联的文件,如下所列:
1. 设备安全模型 – 基础的信任模型和模式
2. 可信设备初始化 – 初始安全设备编程和配置要求
3. 可信基础系统架构 [TBSA-M] – v8-M的硬件平台要求
4. 可信启动与固件更新
5. PSA固件框架M [PSA FF] – 受限物联网平台安全处理环境(SPE)的固件接口定义
6. PSA可信功能 – SPE内标准可信设备的定义
2.4.1 设备安全模型
设备安全模型(DSM)定义了在生态系统内设计和部署 PSA兼容可信设备的总体安全架构。它是其他PSA规范的顶层文件,为它们规定了通用语言、高阶鲁棒性规则和模型。
DSM的基础是威胁模型和安全分析针对使用案例提出的建议。虽然DSM与使用案例无关,但其最初侧重于几个选定的物联网使用案例。
DSM 包括三个主要方面:
1. 信任根和相关安全服务
2. 根秘密及其存储、保护和初始化
3. 设备生命周期及其对信任根的影响
2.4.2 可信设备初始化
只有在根秘密和设备固件在安全生产过程的背景下初始化时,安全和信任模型才有效。
生产过程延伸到设备管理,以便向服务提供商和设备所有者分配设备属性和固件更新等。
这是一份资料性文件,它指出并讨论了对基础架构和通用框架的一般需求,以促进设备安全架构中的这些过程并以及它们对信任根的依赖性。配置实际的工厂供应和设备管理架构应当由行业利益相关方负责,或者使用类似 Arm Mbed Cloud 的设备来完成。
2.4.3 可信基础系统架构(TBSA)
Armv8-M的Arm可信基础系统架构((TBSA-M)是一系列SoC硬件要求。它适用于基于 Armv8-M的设计,有助于研发更安全的设备。TBSA-M文件也能为计划使用Armv7-M架构实施安全设计的硅芯片制造商提供参考。
TBSA-M包含围绕Armv8-M处理单元(PE)进行系统设计时适用的最佳实践安全原则。这些原则为设计和集成下列植根于硬件的功能特点提供支持:
l 信任根
l 受保护的密钥库
l 可信和不可信软件组件的隔离
l 安全的固件更新机制
l 生命周期管理机制和安全的调试
l 高熵随机数发生器;它对可靠的密码必不可少
l 密码编译加速器,其作用是为适当的安全功能保持实时功能性
固件框架(PSA-FF)实现最好能在TBSA-M兼容设计的顶层进行,以便实现安全关键功能性和数据与应用固件数据隔离的安全处理环境。这样可以提高设备的可信度,即便出现可能被利用的软件漏洞。
2.4.4 可信启动与固件更新
可信启动和固件更新规定了确保MCU启动的完整性所必须满足的系统和固件技术要求。规范包括以下内容:
l 经过验证的启动过程以建立安全运行时服务
l 安全的固件更新代理
l 固件更新的认证和授权说明,包含密码证书和设备密钥
l 有助于实现健壮性的建议和最佳实践说明
规范的范围与A系列客户端设备的可信主板引导要求(TBBR)类似。
2.4.5 固件框架(PSA-FF)
固件框架(FF)基于设备安全模型的要求,规定了用于在受限物联网设备中隔离可信功能的标准接口和框架。框架提供:
l 为可信和不可信固件描述隔离运行环境(分区)的架构
l 描述各个分区的功能和资源的标准模型
l 用于向其他分区请求服务的安全 IPC 接口
l 描述分区如何彼此进行互动的模型,以及硬件和固件框架实施本身
该规范能够实现安全固件功能性的开发,可复用于符合固件框架实施的不同设备。
图 3 显示了这个框架的概况。
图 3 – PSA 固件框架概况
2.4.5.1 安全分区与隔离
平台安全架构固件框架(PSA-FF)定义了三个许可的固件运行隔离层级。这样可以允许在高度受限的设备中减少隔离。与此同时,还能在拥有充足的资源的平台上增加安全性和鲁棒性,并且为安全功能提供一致的固件接口。
PSA-FF将系统内的执行划分为两个分区——非安全处理环境(NSPE)和安全处理环境(SPE)。NSPE包含应用固件、操作系统内核和库,通常控制着大部分输入/输出外围设备。SPE包含安全固件和硬件资源,与 NSPE固件和非安全硬件资源隔离。
PSA-FF将SPE进一步划分为安全分区管理器(SPM)和安全分区。安全分区为安全功能提供执行环境。SPM运用隔离逻辑来分隔不同的分区,由平台硬件使用主侧和/或从侧过滤器执行。例如,安全属性单元(SAU)和存储保护单元(MPU)可以在新的 Armv8-M平台中使用。其他平台可以使用其他机制来提供类似的分区隔离。
2.4.5.2 安全IPC
固件框架定义了基于安全会话的IPC机制,可以让彼此隔离的分区中的固件进行互动。具体说来,IPC框架让一个分区内的固件可以通过标准接口向另一分区内的固件请求服务。API要求由分区之间的框架来复制消息,进而消除直接共享内存带来的脆弱性风险。
2.4.5.3 安全功能
PSA-FF 将安全性功能显示为一系列安全功能。每一项安全功能都是安全分区中实施的一系列相关安全操作。每一个安全分区能够支持多项安全功能。
不同的芯片合作伙伴可以为标准安全功能(SF)提供他们自己的插件实现。固件框架通过预定义的API和调用语义将SF实施抽离。芯片和其他合作伙伴也可以定义他们自己的安全功能实现,以便提供针对平台的服务或更高水平的安全服务。
有关固件框架的更多详情见 PSA 固件框架-M [PSA-FF] 规范。
2.4.6 可信功能
有些安全功能提供信任根服务(例如身份认证),或者是信任根的使能(例如加密操作);这些安全功能被称为“可信功能”。可信功能的标准接口将由PSA定义,例如:
l 安全认证
l 安全存储/数据封装
l 加密操作
l RNG 和安全时间服务
l 安全的固件更新
2.5 Trusted Firmware-M(TF-M)参考实现
Trusted Firmware-M是一个开源计划,其作用是为基于M系列平台的物联网设备提供 PSA 固件规范的参考实现。TF-M 将公开托管在 GitHub 上,与目前针对 Cortex-A 驱动的移动和翻盖设备的 A 计划 Arm Trusted Firmware 类似。其他生态系统合作伙伴可能提供其他实现。
TF-M将在 Armv8-M主线(Cortex M33)上处理PSA固件运行隔离层级1,并将为更高层级的隔离类型提供更多支持。其他内核将在今后进行处理。
初始版本旨在提供:
l SSE-200的受限PSA运行隔离层级1的实施(Arm Musca-A1 测试芯片主板)
l 操作系统支持
- 初始版本主要针对Mbed操作系统
- RTX 被用于原型创建工作,发布时将提供有限支持
l 启动加载程序,为安全和非安全镜像提供认证启动
l 基于cmake和GNU工具链的跨平台构建系统
l 从一开始就支持的GCC和ARMCLANG编译器
l 固件更新例子
2.6 生态系统使能
下面是开发中的生态系统使能支持工具:
l Arm Cortex-M原型系统(MPS2和MPS3)以及Arm Musca-A1测试芯片主板,用于实现开发
l Trusted Firmware-M:Armv8-M 平台安全架构的开源参考实施
l Mbed操作系统:基于MCU的物联网设备的开源平台操作系统,针对所有Arm Cortex-M目标提供PSA的优化实施
l Arm KEIL开发系统,用于安全和非安全的软件开发、调试和验证
图 4 – 工具支持