使用STM32Trust探索嵌入式系统安全的所有方面

描述

  是否有可能将嵌入式系统的安全性从负担转变为祝福?这是 ST 试图通过STM32Trust回答的问题,该计划专注于我们为提高设备安全性而带来的所有软件和硬件解决方案。信息安全或信息安全可能是一个负担,因为它是一个如此广阔的领域。因此,帮助工程师意味着让 ST 工具更易于使用。事实上,利用系统提供的所有功能并不总是显而易见的。此外,获得严格认证的需求可能会增加成本并延迟产品发布。因此,开发人员需要解决方案来更快地实施重要保护。

  使用 STM32Trust 探索嵌入式系统安全的所有方面

  它是如何开始的以及进展如何

  STM32Trust 是一个随着 ST 发布更多软件工具和产品而不断发展的程序。该计划于 2019 年开始,还帮助教育开发人员确保他们的知识是最新的。因此,ST 举办培训、发表论文、撰写文档并与合作伙伴合作以促进获得认证。换句话说,在一篇博文中详尽地解释 STM32Trust 的所有方面是徒劳的,这就是为什么ST 博客决定专注于一些核心解决方案,以帮助读者更好地了解他们如何在系统中实施安全性。

  STM32Trust 的核心解决方案之一是X-CUBE-SBSFU(安全启动和安全固件更新)。简而言之,软件扩展包使开发人员能够实现安全启动并提供安全的固件更新系统。它是 STM32Trust 的重要支柱之一,同时也是我们的安全固件安装 (SFI)流程。后者可以将加密固件上传到微控制器中,以防止 IP 盗窃等。虽然 SBSFU 和 SFI 在 ST 推出 STM32Trust 时占据主导地位,但我们在产品组合中添加了新的解决方案。例如,可信固件-M (TF-M)有助于在我们的 STM32L5 微控制器上实现安全环境。同样,可信固件-A (TF-A)适用于 Cortex-A 设备,例如STM32MP1。因此,让我们深入研究这些产品,看看它们为 STM32Trust 带来了什么。

  STM32Trust 和 X-CUBE-SBSFU:打造安全启动和安全固件更新

  从头到尾保护用户

  Secure Boot 是一个在启动或重置时运行的程序,通过检查文件大小或签名以确定是否有任何更改来验证引导文件的完整性。因此,它可以保护系统免受在引导序列期间想要破坏固件的攻击。另一种保护类型是安全固件更新。这种方法可以保护用户免受远程修改现有系统的攻击。实际上,当服务器发送部分或完整的加密固件映像更新时,嵌入式系统会通过 UART 将其传输到 MCU,系统会检查其真实性,然后在安装之前对其进行解密。

  更容易实现

  像 X-CUBE-SBSFU 这样的包允许开发人员更轻松地实现这些功能。例如,在我们的 STM32L4 上运行的 X-CUBE-SBSFU 代码获得了PSA 1 级认证。因此,工程师可以使用它更快地获得相同的认证。此外,ST 继续提供其源代码。因此,开发人员可以从我们的实施中学习并优化他们的应用程序。例如,我们的库可以生成大约 60 KB 的二进制文件,这对于一些小型嵌入式系统来说可能有点大。但是,优化操作使开发人员能够修剪代码并仅使用相关功能以适合他们的 MCU。

  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 但具有标准隔离方案的机制。随着时间的推移,我们还将继续改进我们的参考实现,以利用更多功能。至于 TF-A,由于 MPU 的情况明显不同,ST 创建了一个Wiki 来指导工程师。它引导用户了解主要概念和软件工具,以快速实施参考环境。此外,开发人员还可以使用 OP-TEE,这是一种开放式可移植可信执行环境,可作为非安全 Linux 内核的配套解决方案。

  STM32Trust 和 SFI:带来安全的固件安装

  保护知识产权和防止盗窃

  安全固件安装是一种保护客户二进制文件免受恶意活动影响的机制。很多时候,公司必须依靠第三方来组装他们的最终产品。问题是它会引起很大的焦虑和不确定性。装配线上的流氓员工或黑客可能会窃取固件,从而导致灾难性后果。安全固件安装通过在将固件运送给 OEM 之前对其进行加密来防止它。由于解密发生在代码在 MCU 内部时,IP 仍然是安全的,任何被盗的固件都是无用的。此外,公司甚至可以使用这种技术来跟踪固件安装的数量,以监控任何产品盗窃。

  一张智能卡和 STM32CubeProgrammer

  SFI 主要依赖于两个工具。开发人员使用STM32CubeProgrammer软件中提供的 Trusted Package Creator 实用程序加密他们的固件,并将他们的私钥和证书放置在采用智能卡形式的安全硬件模块中。

  然后,团队将加密的二进制和智能卡运送到 EMS。装配线通过 UART、I《sup》2《/sup》C、USB 或 JTAG 通过 STM32CubeProgrammer 上传固件和密钥。然后,智能卡通过验证 MCU 并获取其唯一密钥来验证所有内容。该卡还发送一个私钥来解密二进制文件并为每个产品生成一个单独的许可证。该许可证使上传系统能够跟踪精确的安装次数。最后,ST 最近发布了新版本的智能卡,允许公司定义他们的目标设备。以前,MCU的型号是预先设置好的。使用新版本,公司可以加载它以享受更灵活的系统。

  审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • S

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分