导语:STM32Trust是一项关注设备安全性的多级综合策略,将安全知识、工具和ST原厂开箱可用软件包相结合,融合以往的行业实践经验,通过一整套软硬件解决方案,为新兴的物联网设备构建强大的信息安全保护。
我们都知道,信息安全是非常广义的概念,而物联网也有“网络杀手“之称,虽然大家对物联网安全的必要性早已达成共识,但要在万物互联的广义范畴中找到适当的解决方案和恰当的工具并非易事。此外,开发人员在安全保护实施过程中,需要获得越来越多的认证,使开发面临重重困难。意法半导体正试图通过STM32Trust 为嵌入式系统的安全性提供一个简单易行的解决方案。
STM32Trust是一个安全保护框架,结合信息安全知识、生态系统和安全服务的所有可用资源,为开发者提供了一套完整的工具集,用来以保护其设计的宝贵资产,例如软件 IP 和数据,并确保安全连接和系统完整性。
STM32Trust的12项安全功能
STM32Trust 拥有12 项安全功能,提供来自 ST 和第三方的硬件、软件和设计服务,符合主要物联网认证方案的要求。
1.安全启动:确保设备中运行的应用程序的真实性和完整性。这个功能提供了信任的基础,是大多数嵌入式系统安全设计的基本要求。
2.安全固件安装与更新:安装或更新固件,在编程前对完整性和真实性进行初步检查。
3. 安全存储:能够安全地存储数据或密钥,并在外部不可见的情况下访问它们。
4. 隔离:即将系统分为两个不同区域,可信区和不可信区,不可信区的代码不能访问可信区,起到安全隔离的作用。
5. 异常情况处理:能够检测异常情况(硬件和软件)并采取适当的决策,如擦除关键数据或恢复系统配置等。
6. 加密引擎:能够按照安全保证级别的建议处理加密算法。
7. 审计/日志:以不变的方式跟踪安全事件。
8。 身份标识/认证/证明:身份标识指设备或软件包需要有唯一标识,能够让通信的对方识别设备,认证指身份识别后能够确认是合法设备。
9. 芯片生命周期管理:通过受限路径安全地控制管理芯片,从而保护设备。
10. 软件 IP 保护:能够保护部分或整个软件包免受外部或内部读取。
11. 安全生产:在生产线上的可能出现数据盗取、修改、超量生产等不安全环境下,对设备进行初始烧录,也可用于设备个人化配置。
12. 应用生命周期管理:定义不可更改的增量状态,以安全地保护应用程序状态和资产。
基于 PSA 和 SESIP 认证的安全功能,简化安全保护实施过程
为了确保一流的安全性,ST 为 MCU 和 MPU 提供了基于 PSA 和 SESIP 认证的相关安全功能。这些安全认证允许设计人员使用可靠的安全框架来构建其应用程序并满足其预定义的安全保证级别的要求,例如 PCI、UL-2900、IEC 62443、ETSI EN 303 645、FIPS-140-2 和很多其他认证。
为了提高安全保障级别,STM32Trust 还支持与 STSAFE 系列安全芯片产品的集成。经过通用标准 EAL5+认证的STSAFE产品组合中涵盖多款可用于安全连接的芯片,它们对于云通信、安全存储和身份验证以及系统完整性至关重要。
STM32Trust是如何发起并发展的?
STM32Trust 是意法半导体为提高设备安全性、简化终端产品安全功能开发的、并将持续完善的多级安全框架系统。这个安全框架于 2019 年发起,最初是帮助开发者更新迭代信息安全知识;在开发者达成了万物互联场景下,系统设备的安全特性不可缺少的必要认知后,意法半导体基于STM32Trust框架提供一些核心安全解决方案,以帮助用户更好地了解如何在系统中实施安全性。
比如,X-CUBE-SBSFU (安全启动和安全固件更新)解决方案,可以帮助开发人员实现安全启动并提供安全固件更新的软件包,它与安全固件安装 (SFI)一起,成为STM32Trust 的重要组成部分。SFI可以将加密固件加载到微控制器中,以防止 IP 盗取等。随着新产品系列的推出,STM32Trust也不断增加其安全解决方案组合,比如,可信固件-M (TF-M)有助于在STM32L5 微控制器上实现安全环境;可信固件-A (TF-A)适用于 Cortex-A 设备,例如STM32MP1。
STM32Trust + X-CUBE-SBSFU:
安全启动和安全固件更新的全新打开方式
从始至终保护用户信息安全
安全启动是一个在电子设备启动或重置时运行的程序,通过检查文件大小及签名来验证启动文件的完整性。因此,它可以保护系统在启动过程中,免受破坏固件的攻击。另一种类型的保护是安全固件更新,它可以保护用户免受远程篡改现有系统的攻击,当服务器发送部分或完整的加密固件映像更新时,嵌入式系统通过 UART 将其传输到 MCU,系统检查其真实性,然后在安装之前对其进行解密。
更易部署实施
X-CUBE-SBSFU软件包可帮助开发人员更轻松地实现安全启动和安全固件更新。例如,在STM32L4 上运行的X-CUBE-SBSFU 代码已经具备了 PSA 1 级认证,工程师在开发系统时,无需再在通过 PSA 1级认证方面花费时间。此外,ST 开放源代码给用户,开发人员可以从中学习并优化其应用程序。对于小型嵌入式系统开发,这一点非常友好,X-CUBE-SBSFU库可以生成大约 60 KB 的二进制文件,对小型嵌入式系统来说文件有点大。但是,开放源代码后,开发人员可以对代码进行剪裁,只选用必要功能优化代码。
X-CUBE-SBSFU 还可以帮助开发团队应用不同的 STM32Trust 工具。例如,应用X-CUBE-CRYPTOLIB 库来优化加密操作。ST 最近对该软件包进行了大幅优化,以提供模块化方法和经过认证的代码。此外,X-CUBE-CRYPTOLIB现在从 MCU 库中分离出来,形成独立的软件包选项,更加直观。X-CUBE-SBSFU 新增对 STSAFE-A110的支持,STSAFE-A110 是 STEVAL-STWINKT1B 上的防篡改安全元件,可存储各种密钥和证书。
STM32Trust + TF-M/TF-A: 创建可信安全环境
通过加密、验证和隔离来实现信息安全
TF-M 和 TF-A 都是可信执行环境 (TEE) 的参考实现,分别适用于特定的 Cortex-M 和 Cortex-A 内核。顾名思义,可信执行环境的关键是通过隔离和保护系统的各个方面来建立信任。例如,TF-M 和 TF-A 利用安全存储和加密操作来保护启动和更新过程,从而提供了一种方法来保证安全启动机制和固件的完整性。它们还实现运行时的沙箱隔离机制,使整个系统免受个别问题影响,同时提供诸如密钥存储、证明及安全加密之类的服务。
在Cortex-M 和 Cortex-A 器件上建立信任
开发者如果希望在兼容的 STM32 微控制器上使用 TF-M,在相应的软件包中可以找到。例如,在 STM32L5 上实现 TF-M,可以从 STM32CubeL5 开始。该软件包包含重要功能的参考实现,例如安全启动、安全存储、安全隔离等。因此,开发团队可以创建类似于 SFU 的机制,但具有标准的隔离方案。随着时间的推移,STM32还将持续改进参考实现,以兼顾更多功能。
由于MPU的情况于MCU有很大区别,开发者可以通过STM32 MPU Wiki 页面 来获得使用TF-A的指导。 它引导用户了解主要概念和软件工具,以快速搭建参考环境。此外,开发人员还可以使用 OP-TEE(Open Portable Trusted Execution Environment ),这是一种开放的便携式可信执行环境,可作为非安全 Linux 内核的配套解决方案。
STM32Trust + SFI: 带来安全的固件安装
保护IP和防篡改
安全固件安装是一种保护用户二进制文件免受恶意攻击的机制。很多情况下,用户必须依靠第三方来组装他们的最终产品,这将带来极大的不确定性。装配线上的不守法员工或黑客极有可能会窃取固件,从而导致灾难性后果。安全固件安装可以通过在将固件发送给 OEM 之前对其进行加密,来预防此类事件的发生。由于代码的解密过程是在 MCU 内部进行,可保护 IP 安全,而任何被盗的固件都是无用的。此外,还可以使用这种技术来跟踪固件烧录的数量以监控任何产品盗窃的发生。
SFI 主要依赖于两种工具。开发人员使用 STM32CubeProgrammer软件中提供的 Trusted Package Creator 工具加密他们的固件,并将他们的密钥放置在以智能卡形式呈现的安全硬件模块中。
然后开发者将加密的二进制文件和智能卡发送到电子制造服务商(EMS)。装配线通过 UART、I2C、USB 或 JTAG 经由 STM32CubeProgrammer 加载密文固件。 然后,智能卡对MCU进行验证 并获取其唯一ID。该卡还为每个产品生成一个单独的许可证,许可证中包含用来解密二进制文件的密钥。 许可证使安全烧录系统能够跟踪固件烧录的精确数量。近期,ST 发布了这个智能卡的新版本,允许用户定义他们的目标设备。以往 MCU 的模型是预先设置好的。使用新版本,用户可以使用更灵活的系统。