STM32Trust

导语:STM32Trust是一项关注设备安全性的多级综合策略,将安全知识、工具和ST原厂开箱可用软件包相结合,融合以往的行业实践经验,通过一整套软硬件解决方案,为新兴的物联网设备构建强大的信息安全保护。

我们都知道,信息安全是非常广义的概念,而物联网也有“网络杀手“之称,虽然大家对物联网安全的必要性早已达成共识,但要在万物互联的广义范畴中找到适当的解决方案和恰当的工具并非易事。此外,开发人员在安全保护实施过程中,需要获得越来越多的认证,使开发面临重重困难。意法半导体正试图通过STM32Trust 为嵌入式系统的安全性提供一个简单易行的解决方案。

STM32Trust是一个安全保护框架,结合信息安全知识、生态系统和安全服务的所有可用资源,为开发者提供了一套完整的工具集,用来以保护其设计的宝贵资产,例如软件 IP 和数据,并确保安全连接和系统完整性。

STM32Trust的12项安全功能

STM32Trust 拥有12 项安全功能,提供来自 ST 和第三方的硬件、软件和设计服务,符合主要物联网认证方案的要求。

“STM32Trust:助你一站式完成安全设计"

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 安全,而任何被盗的固件都是无用的。此外,还可以使用这种技术来跟踪固件烧录的数量以监控任何产品盗窃的发生。

“▲
▲ 图示:安全固件安装

智能卡和STM32CubeProgrammer

SFI 主要依赖于两种工具。开发人员使用 STM32CubeProgrammer软件中提供的 Trusted Package Creator 工具加密他们的固件,并将他们的密钥放置在以智能卡形式呈现的安全硬件模块中。

然后开发者将加密的二进制文件和智能卡发送到电子制造服务商(EMS)。装配线通过 UART、I2C、USB 或 JTAG 经由 STM32CubeProgrammer 加载密文固件。 然后,智能卡对MCU进行验证 并获取其唯一ID。该卡还为每个产品生成一个单独的许可证,许可证中包含用来解密二进制文件的密钥。 许可证使安全烧录系统能够跟踪固件烧录的精确数量。近期,ST 发布了这个智能卡的新版本,允许用户定义他们的目标设备。以往 MCU 的模型是预先设置好的。使用新版本,用户可以使用更灵活的系统。

来源:STM32
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 56

物联网时代,因为要联网就牵涉到一个重要的问题,那就是安全,你会发现近两三年各MCU厂商都在推自己的安全芯片。

学习STM32的朋友,多少都听过STM32Trust,但有多少人知道STM32Trust究竟是什么呢?

本文就带你认识STM32Trust,以及在STM32上支持的一种SMI技术。

1、STM32Trust介绍

STM32Trust官方网址:www.st.com/stm32trust

STM32Trust是基于STM32,在带有STSAFE安全组件的微处理器,提供了一种强大的多级策略来增强产品设计时的安全性。

STM32Trust是一套STM32解决方案(可以理解为是STM32的一套工具),提供完整的代码保护和执行保护工具套件。

STM32Trust提供了12种安全功能,如下图:

“STM32Trust介绍及代码执行保护方法"

12种功能大概可以分为 代码保护 和 执行保护 两大类:

“STM32Trust介绍及代码执行保护方法"

1)代码保护

STM32Trust.CodeProtection一套解决方案,以确保烧写STM32时,客户代码的机密性和完整性。

某些STM32 单片机型号已嵌入硬件安全保护功能,还额外实现了篡改检测、防火墙代码隔离机制和Arm TrustZone®技术,来保护最敏感的代码。

代码保护方案支持的STM32列表:

“STM32Trust介绍及代码执行保护方法"

几个概念:

①SBSFU:Secure Boot and Secure Firmware Update,安全启动和安全固件更新。
②CRYPTOLIB:cryptographic firmware library,加密固件库。
③SFI:Secure Firmware Installation,安全固件安装解决方案。

2)执行保护

设备成为商业产品就易成为受攻击的目标,需要对信息安全攻击具有免疫力。因而需要采取信息安全防护措施,以确保固件IP受到保护,机密凭证和数据受应用程序保护,而不会被破坏。

执行保护方案支持的STM32列表:

“STM32Trust介绍及代码执行保护方法"

2、STM32Trust代码保护

从上面可以看得出来,官方针对STM32做了多种代码保护方案,这里挑选几个进行讲述。

代码保护包含:

  • X-CUBE-SBSFU解决方案
  • X-CUBE-CRYPTOLIB解决方案
  • SFI安全固件安装解决方案
  • STM32CubeProgrammer
  • STM32HSM
  • FASTROM编程服务

1)X-CUBE-SBSFU解决方案

SBSFU:Secure Boot and Secure Firmware Update,安全启动和安全固件更新。

网址:

SBSFU主要体现安全启动和安全固件更新:

安全启动是不可变的代码,通常在系统重置后执行,该代码检查STM32静态保护,激活STM32运行时保护,然后在每次执行之前验证用户应用程序代码的真实性和完整性,以确保无效或恶意代码无法运行。

安全固件更新应用程序通过具有Ymodem协议的UART接口接收固件映像,检查其真实性,并在安装代码之前检查代码的完整性。

SBSFU主要特征:

①安全启动以在执行之前检查固件映像。

②具有防回滚和部分映像更新功能的安全固件更新,用于无线或本地固件映像更新。

③通过PKCS#11 API提供加密服务的安全密钥管理服务。

④独立的STM32系统解决方案示例,展示了STM32保护的最佳用法,可保护资产免遭未经授权的外部或内部访问。

⑤结合STM32和STSAFE-A100系统解决方案示例,展示了用于安全身份验证服务和安全数据存储的硬件安全元素保护。

2)X-CUBE-CRYPTOLIB解决方案

CRYPTOLIB:cryptographic firmware library,加密固件库。

网址:
https://www.st.com/en/embedded-software/x-cube-cryptolib.html

STM32加密库软件包(X-CUBE-CRYPTOLIB)基于STM32Cube体系结构软件包,并包括一组基于固件实现的加密算法,可以在所有STM32微控制器中使用。

“STM32Trust介绍及代码执行保护方法"

3)SFI安全固件安装解决方案

SFI:Secure Firmware Installation,安全固件安装解决方案。

SFI安全固件安装解决方案可用于STM32L4和STM32H7单片机,并且很快将扩展到其他STM32平台, 为设备的首次编程提供保护。

该解决方案提供一套完整的工具集,包含用于加密OEM二进制文件的软件(Trusted Package Creator),用于安全烧写STM32的软件(CUBE Programmer),以及用于将OEM机密凭证安全地交付给芯片烧录厂家的STM32HSM。

“STM32Trust介绍及代码执行保护方法"

4)STM32CubeProgrammer

“STM32Trust介绍及代码执行保护方法"

这是一个大家熟知的对STM32编程的免费工具,包含STM32TrustedPackage Creator工具,通过该工具可以为支持SFI功能的STM32生成SFI和SMI加密映像。

SFI映像的格式是由ST定义的固件加密格式,它使用AES算法将Elf、Hex、Bin或Srec格式的固件转换为SFI格式的加密和认证固件。

SFI映像由一个头部区域和多个其他区域组成,这些区域通常为连续固件区域,最后一个区域为配置区域,其中包含SFI完成时需要设置的选项字节值。

5)STM32HSM

STM32HSM-V1硬件安全模块(HSM)用于确保STM32产品的编程安全,并避免在合同制造商的住所制造假冒产品。

“STM32Trust介绍及代码执行保护方法"

SFI功能允许将客户固件安全地加载到嵌入了安全引导程序的STM32产品中。

定义固件加密密钥并对其固件进行加密后,原始设备制造商(OEM)将加密密钥存储到一个或多个STM32HSM-V1 HSM,并使用STM32CubeProgrammer和STM32 Trusted Package Creator设置授权的SFI操作数(计数器值)软件工具。合同制造商必须利用STM32HSM-V1 HSM将加密的固件加载到STM32设备:每个HSM仅允许OEM定义数量的编程操作,然后不可撤销地将其停用。

STM32HSM-V1主要特征:

①正版固件标识(固件标识符)
②识别具有安全固件安装(SFI)功能的STM32产品
③管理与支持的STM32产品关联的ST公钥
④使用客户定义的固件加密密钥生成许可证
⑤安全计数器,可生成预定义数量的许可证
⑥直接支持STM32CubeProgrammer软件(STM32CubeProg),包括STM32 Trusted Package Creator工具。

6)FASTROM编程服务的

FASTROM:Factory Advanced Service Technique Read Only Memory。

MCU出厂时就把程序给你写进去。

MCU是预编程了客户代码和选项字节的Flash工艺MCU器件,FASTROM MCU可提高大批量(10,000+)编程效率,相比ROM,具有交期更短、并允许对器件重新编程的优势。

3、STM32Trust执行保护

STM32Trust.ExecutionProtection是一组STM32功能,用于确保所有者代码运行期的适当隔离、正确执行和易用性,以保证所收集数据的机密性和真实性。STM32提供不同的架构和隔离方案用于实现执行保护。

执行保护包含:

  • 调试

  • 安全启动

  • MPU

  • 双核架构

  • TrustZone

  • 防火墙

执行保护的内容不难理解,下面引用官方的内容。

1)调试

通过调试端口可从外部访问所有设备资源。调试端口用于应用程序开发,是攻击者对设备进行攻击时可能会最先利用的薄弱环节。为确保用户代码的机密性和真实性,应锁定STM32调试功能。

2)安全启动

如X-CUBE-SBSFU软件包中所示,安全启动在每次复位时执行,检查STM32平台配置的完整性,并验证每个嵌入式固件的签名,以确保其真实性。

3)MPU

存储器保护单元机制可保护进程,防止不同进程间的相互访问,并允许这些进程独立运行。MPU所带来的软件隔离效果可确保各个进程彼此之间的代码和数据安全性。STM32提供受多种操作系统支持的MPU解决方案。

4)双核架构

双核架构允许两个应用程序在同一MCU设备中同时运行,两者通过内核ID隔离。

5)TrustZone

TrustZone是一套完整的硬件机制,用来定义和隔离两个主要的应用程序区:一个是所谓的可信区(用于保护关键应用程序及其相关资源),另一个是不可信区,运行主应用程序。

6)防火墙

防火墙是一种硬件保护外设,它控制着总线访问,并过滤对代码区(闪存)、非易失性数据区域(SRAM)以及易失性数据区域(闪存)这三个特殊区域的访问。它允许用户轻松地将关键代码的执行与主应用程序分开。

4、固件和软件工具

1)安全启动和安全固件更新(SBSFU)

当应用程序代码被转移到引导存储器或在现场更新时,它们最容易受到攻击。

安全启动和安全固件更新是用于安全固件和升级的一组软件,可确保以安全的方式执行更新过程,以防止未经授权的更新和对机密设备上数据的访问。

ST提供了两种不同的实现作为STM32微控制器上的参考源代码:

1.X-CUBE-SBSFU:实现了SBSFU机制,并展示了如何设置所有STM32内存保护机制,以将安全启动和固件更新功能与主应用程序隔离。

https://www.st.com/en/embedded-software/x-cube-sbsfu.html

2.TFM_SBSFU:在TFM(Trusted Firmware-M)随附的设备上实现相同的机制,并在STM32Cube软件包中提供有。

https://www.st.com/en/embedded-software/stm32cubel5.html

2)TFM

所包含的Trusted Firmware-M软件实现旨在为Cortex-M、ARMv7-M和Armv8-M的平台安全体系结构(PSA)的参考实现。TFM是一个开源软件项目,为STM32微控制器提供:

a.安全固件,在Armv8-M上支持PSA 1级和2级隔离;

b.安全固件向非安全侧公开的接口。

c.具有非安全应用示例的安全fw模型。

d.在安全环境中运行的安全服务:

  • 安全存储服务

  • 证明书

  • 加密服务

  • 审核日志

  • ····

5、SMI

SMI:Secure Module Install,安全模块安装。

ST在2019年基于STM32H7推出首款兼容SMI的STM32,那就是。

地址:

https://blog.st.com/stm32h7-secure-module-install-smi/

安全固件安装(SFI)现在是一种相对流行的技术,它使系统制造商能够将其固件的加密版本发送给OEM。

由于仅在MCU内部对代码进行解密,因此开发人员可以降低IP盗用的风险。同样,OEM可以提供重要的保证,而无需投资大型机器或技术,因为它们唯一需要的是STM32CubeProgrammer和HSM智能卡,其中包含安全证书,可以将固件安全地安装到MCU上。

关于SMI

SMI与其他常规模块一样,运行在MCU上的应用程序也调用该模块,但是系统制造商无法访问源代码,从而大大降低了IP盗用的可能性。

SMI和SFI流程:

“STM32Trust介绍及代码执行保护方法"

细心的读者会注意到SMI流程与SFI相同,但是开发人员不加密整个固件,而是加密模块。此外,SFI和SMI进程使用不同的HSM卡。一个智能卡不能存储所有凭据,但是出于明显的安全原因,每个固件和模块都必须使用其卡。

与SFI不同,SMI需要编译器支持唯一扩展,免费的STM32CubeIDE已经兼容,并且它的最新更新刚刚带来了对STM32H7的支持,使其成为专业人士和发烧友的绝佳工具。同样,Keil和iAR也兼容,并且我们正在与其他IDE制造商合作以确保提供尽可能广泛的支持。

最后,针对安全问题,不但MCU厂商在自己芯片上下功夫,很多软件工具也在考虑安全的问题:

“STM32Trust介绍及代码执行保护方法"

好了,本文就写到这里,希望本文能让你对STM32Trust有进一步的认识。

来源:嵌入式专栏
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 123

资源丰富的工具包为基于STM32微控制器的物联网设备网络提供了有力的保护

横跨多重电子应用领域的全球领先的半导体供应商意法半导体 (STMicroelectronics,简称ST;纽约证券交易所代码:STM)发布了STM32Trust,指导设计人员利用行业最佳实践,为新的物联网设备构建强大的网络安全保护系统。

STM32Trust整合知识、设计工具和意法半导体独创的即用型软件,帮助设计人员利用STM32 *微控制器内置的安全功能,在设备之间建立互信,防止非法访问,防御边信道攻击,避免数据窃取和代码修改。

 “智能传感器和远程执行器等连接设备是基础设施和服务的固有组件,因此,确保这些设备具有有效的安全性变得至关重要,”意法半导体微控制器事业部总经理Ricardo De Sa Earp解释道。 “新发布的强制性安全规定是当今通用微控制器市场的一个新的重大挑战,STM32Trust让开发人员更容易理解和接受新强制性安全规则。”

STM32Trust集成了STM32系列可用的全部网络保护资源,充分利用以安全为中心的芯片功能和软件包,帮助设计人员实现一个强大的多层安全保护策略。

STM32系列是全球领先的Arm®Cortex®CPU架构系统芯片产品组合,全系共有近1000款产品,用于智能设备、远程传感器、可穿戴设备、电子医疗设备、物联网网关、访问权限控制型存储器、支付终端等物联网设备。根据不同的型号,硬件网络保护功能包括定制安全引导、防止黑客观察信号模式的随机数生成器、专用加密协处理器,以及密钥安全存储单元等功能。意法半导体还在芯片上构建了篡改检测、防火墙代码隔离机制,并实现了ArmTorrentZone®安全技术,为最易受攻击的代码提供额外保护。

STM32Trust为产品开发人员使用这些硬件功能,有效保护物联网设备数据安全,提供了所需的全部资源,包括参考资料和免费软件。

在参考软件包中,X-CUBE-SBSFU演示了在应用代码传输到引导存储器或现场更新两种最易受攻击的情况下,如何保护的应用代码的安全。X-CUBE-SBSFU参考包适用STM32F4F7H7L0L1L4G0G4和WB。意法半导体安全单元STSAFE的参考设计可最大限度提升最终应用的安全级别。

此外,STM32L4和STM32H7微控制器的安全固件安装解决方案可在首次烧写代码时保护设备的安全。该解决方案提供了一个完整的应用安全安装工具包,使用Trusted Package Creator软件OEM二进制文件加密通过STM32CUBE烧写器将代码安全地装入STM32闪存使用STM32HSM模块将OEM数字证书交给负责代码安装的合作厂商

STM32Trust资源包括工具审过的参考资料和源代码,可以从www.st.com/stm32trust免费下载。

点击https://blog.st.com/stm32trust/查阅相关博文。

围观 251
订阅 RSS - STM32Trust