X-CUBE-LOGO

X-CUBE-STSE01软件包

X-CUBE-STSE软件包 (4)

介绍

本用户手册介绍了如何开始使用 X-CUBE-STSE01 软件包。
X-CUBE-STSE01 软件包是一个软件组件,它提供了多个演示代码,这些代码使用主机微控制器的 STSAFE-A110 和 STSAFE-A120 设备功能。
这些演示代码利用基于 STM32Cube 软件技术构建的 STSELib(安全元素中间件),简化了不同 STM32 微控制器之间的移植。此外,它与 MCU 无关,可移植到其他 MCU。
这些演示代码说明了以下特点:

  • 验证。
  • 安全的数据存储。
  • 安全使用计数器。
  • 配对。
  • 密钥建立。
  • 本地信封包装。
  • 密钥对生成。

一般信息

  • X-CUBE-STSE01 软件包是将 STSAFE-A110 和 STSAFE-A120 安全元件服务集成到主机 MCU 的操作系统 (OS) 及其应用程序中的参考。
  • 它包含 STSAFE-A110 和 STSAFE-A120 驱动程序和演示代码,可在基于 Arm® Cortex®-M 处理器的 STM32 32 位微控制器上执行。
  • Arm 是 Arm Limited(或其子公司)在美国和/或其他地方的注册商标。
  • X-CUBE-STSE01 软件包采用 ANSI C 开发。然而,独立于平台的架构允许轻松移植到各种不同的平台。
  • 下表列出了与更好地理解本文档相关的首字母缩略词的定义。

STSAFE-A1x0 安全元件

STSAFE-A110 和 STSAFE-A120 是高度安全的解决方案,可作为安全元件,为本地或远程主机提供身份验证和数据管理服务。它是一款完整的交钥匙解决方案,搭载在最新一代安全微控制器上运行的安全操作系统。
STSAFE-A110 和 STSAFE-A120 可集成到物联网 (IoT) 设备、智能家居、智慧城市和工业应用、消费电子设备、消费品及配件中。其主要特性包括:

  • 身份验证(外围设备、物联网和 USB Type-C® 设备)。
  • 与远程主机建立安全通道,包括传输层安全性 (TLS) 握手。
  • 签名验证服务(安全启动和固件升级)。
  • 使用安全计数器进行使用情况监控。
  • 与主机应用处理器配对并建立安全通道。
  • 包装和解开本地或远程主机信封。
  • 片上密钥对生成。

STSecureElement 库 (STSELib) 描述

本节详细介绍STSELib中间件软件包内容及其使用方法。

一般描述

STSELib 中间件是一组软件组件,旨在:

  • 将 STSAFE-A110 和 STSAFE-A120 安全元件设备与 MCU 连接。
  • 实现最通用的 STSAFE-A110 和 STSAFE-A120 用例。
  • STSELib 中间件作为中间件组件完全集成在 ST 软件包中,以添加安全元素功能。
  • STSELib 中间件为嵌入式系统开发人员提供了一整套高级应用程序编程接口 (API) 函数。该中间件抽象化了使用意法半导体 STSAFE-A 安全元件系列确保设备、配件和消费品品牌保护所需的命令的构建和排序。
  • 该中间件允许在各种主机 MCU/MPU 生态系统中无缝集成一个或多个 STSAFE-A。
  • 有关支持的 IDE 版本的信息,请参阅包根文件夹中提供的发行说明。

建筑学
STSELib中间件由三个软件模块组成,如下图所示。每一层都为嵌入式系统开发人员提供不同级别的系统抽象。

X-CUBE-STSE软件包 (2)

下图显示了集成在标准 STM32Cube 应用程序中的 STSELib 中间件,该中间件在安装在 STM32 Nucleo 板上的 X-NUCLEO-SAFEA1 或 X-NUCLEO-ESE01A1 扩展板上运行。

图2. X-CUBE-STSE01应用框图

X-CUBE-STSE软件包 (3)

为了提供最佳的硬件和平台独立性,STSELib 中间件不直接连接到 STM32Cube HAL,而是通过接口 file在应用程序级别实现

  • 应用程序编程接口(API)层
    该软件层是系统应用程序的入口点。它提供了一组高级函数,允许与意法半导体安全元件进行交互。API 层为不同的应用程序(例如安全元件管理、身份验证、数据存储和密钥管理)提供抽象。
  • 服务层
    SERVICE 层提供一组产品服务,用于格式化目标安全元件支持的所有命令,并将响应报告给更高层的 API/应用程序。此层可直接从应用程序(适用于高级用户)使用。
  • 核心层
    包含 ST 安全元件的通用定义和与目标安全元件通信的功能。
    核心层处理消息的框架并为上述层提供平台抽象。

资料夹结构
下图展示了 X-CUBE-STSE01 的文件夹结构。

X-CUBE-STSE软件包 (4)

演示软件

本节介绍基于STSELib中间件的演示软件。

验证
该演示说明了 STSAFE-A110/STSAFE-A120 安装在向远程主机(物联网设备案例)进行身份验证的设备上时的命令流,本地主机用作到远程服务器的直通。
例如,STSAFE-A110/STSAFE-A120 安装在对本地主机进行身份验证的外设上amp对于游戏、移动配件或消耗品来说,文件是完全相同的。
为了演示目的,这里的本地和远程主机是同一台设备。

  1. 提取、解析并验证存储在设备数据分区区域 0 中的 STSAFE-A110/STSAFE-A120 的公共证书,以获取公钥:
    • 使用 STSELib 中间件通过 STSAFE-A110/STSAFE-A120 的区域 0 读取证书。
    • 使用加密库的解析器解析证书。
    • 读取 CA 证书(可通过代码获取)。
    • 使用加密库的解析器解析 CA 证书。
    • 通过密码库使用CA证书验证证书有效性。
    • 从 STSAFE-A110/STSAFE-A120 X.509 证书获取公钥。
  2. 通过挑战数生成并验证签名:
    • 生成一个挑战数(随机数)。
    • 解决挑战。
    • 通过 STSELib 中间件,使用 STSAFE-A110/STSAFE-A120 私钥槽 0 对散列质询获取签名。
    • 使用加密库解析生成的签名。
    • 通过加密库使用 STSAFE-A110/STSAFE-A120 的公钥验证生成的签名。
    • 当其有效时,主机就知道外围设备或物联网是真实的。

配对(主机密钥配置)
此代码前ample 在设备与其连接的 MCU 之间建立配对。配对允许对设备与 MCU 之间的数据交换进行身份验证(即签名和验证)。STSAFE-A110 设备只有与配对的 MCU 配合使用才能使用。
配对包括主机 MCU 向 STSAFE-A110 发送主机 MAC 密钥和主机密码密钥,这两个密钥都存储到 STSAFE-A110 的受保护 NVM 中,并且应存储到 STM32 设备的闪存中。
默认情况下,在这个例子中amp例如,主机 MCU 向 STSAFE-A110 发送众所周知的密钥(参见下方的命令流程),强烈建议用于演示目的。该代码还允许生成随机密钥。
此外,代码 examp当 STSAFE-A110 中相应的插槽尚未填充时,le 会生成本地信封密钥。当本地信封插槽已填充时,STSAFE-A110 器件允许主机 MCU 包装/解开本地信封,以便在主机 MCU 端安全地存储密钥。
注意:配对代码例如amp在执行以下所有代码之前,必须成功执行 leamp莱斯。

命令流程

  1. 使用 STSELib 中间件在 STSAFE-A110 中生成本地信封密钥。
    默认情况下,此命令处于激活状态
    仅当 STSAFE-A110 的本地信封键槽尚未填充时才会发生此操作。
  2. 定义两个 128 位数字用作主机 MAC 密钥和主机密码密钥。
    默认情况下,使用已知黄金密钥。它们具有以下值:
    • 主机 MAC 密钥
      0x00、0x11、0x22、0x33、0x44、0x55、0x66、0x77、0x88、0x99、0xAA、0xBB、0xCC、0xDD、0xEE、0xFF
    • 主机密钥 0x01、0x23、0x45、0x67、0x89、0xAB、0xCD、0xEF,0x01、0x23、0x45、0x67、0x89、0xAB、0xCD、0xEF
  3. 将主机 MAC 密钥和主机密码密钥存储到 STSAFE-A110/STSAFE-A120 中的相应插槽中。
  4. 将主机 MAC 密钥和主机密码密钥存储到 STM32 的闪存中。

密钥建立(对称密钥 AES-128 CMAC)
该演示说明了 STSAFE-A110 设备安装在与远程服务器通信的设备(例如物联网设备)上的情况,并且需要建立安全通道与其交换数据。
在此例中amp在文件中,STM32 设备既充当远程服务器(远程主机)又充当连接到 STSAFE-A110 设备的本地主机。
本用例的目标是展示如何使用 STSAFE-A110 中的静态 (ECDH) 或临时 (ECDHE) 密钥,在本地主机和远程服务器之间建立共享密钥
共享秘密应进一步派生为一个或多个工作密钥(此处未说明)。然后,这些工作密钥可用于 TLS 等通信协议,例如amp用于保护本地主机和远程服务器之间交换的数据的机密性、完整性和真实性的文件。

命令流程
图 4. 密钥建立命令流说明了命令流:

  • 远程主机的私钥和公钥在代码中硬编码amp勒。
  • 本地主机将生成密钥对命令发送到 STSAFE-A110/STSAFE-A120,以在其临时插槽(插槽 0xFF)上生成密钥对。
  • STSAFE-A110 将公钥(对应插槽 0xFF)发送回 STM32(代表远程主机)。
  • STM32 计算远程主机的秘密(使用 STSAFE 设备的公钥和远程主机的私钥)。
  • STM32 将远程主机的公钥发送到 STSAFE-A110/STSAFE-A120,并要求 STSAFE-A110/STSAFE-A120 使用 API 计算本地主机的密钥。
  • STSAFE-A110/STSAFE-A120 将本地主机的秘密发送回 STM32。
  • STM32 比较两个秘密并打印结果,如果相同,则秘密建立成功。

X-CUBE-STSE软件包 (1)

包裹/打开本地信封

  • 该演示说明了 STSAFE-A110/STSAFE-A120 包装/解开本地信封以便将秘密安全地存储到任何非易失性存储器 (NVM) 的情况。
  • 加密/解密密钥可以以这种方式安全地存储到额外的存储器中或 STSAFE-A110/STSAFE-A120 的用户数据存储器中。
  • 包装机制用于保护机密或纯文本。包装的输出是一个使用 AES 密钥包装算法加密的信封,其中包含要保护的密钥或纯文本。命令流
  • 这里的本地主机和远程主机是同一台设备。
  1. 生成与本地包络同化的随机数据。
  2. 使用 STSELib 中间件 API 包装本地信封。
  3. 保存好包好的信封。
  4.  使用 STSELIB 中间件打开包装的信封。
  5.  将解开的信封与初始本地信封进行比较。它们应该相等。

密钥对生成
本演示展示了 STSAFE-A110/STSAFE-A120 器件安装在本地主机上的命令流程。远程主机要求本地主机在插槽 1 上生成一对密钥(一个私钥和一个公钥),然后使用生成的私钥对质询(随机数)进行签名。
然后,远程主机能够使用生成的公钥验证签名。
此演示与身份验证演示类似,但有两点不同:

  • 身份验证演示中的密钥对已生成(在插槽 0 上),而在此示例中amp例如,我们在插槽 1 上生成密钥对。STSAFE-A110/STSAFE-A120 设备也可以在插槽 0xFF 上生成密钥对,但仅用于密钥建立目的。
  • 身份验证演示中的公钥是从区域 0 中的证书中提取的。在本例中amp例如,公钥随 STSAFE-A110/STSAFE-A120 对生成密钥对命令的响应一起发回。

命令流程
为了演示目的,这里的本地和远程主机是同一台设备。

  1. 主机将生成密钥对命令发送到 STSAFE-A110/STSAFE-A120,后者将公钥发送回主机 MCU。
  2. 主机使用“生成随机数”API生成一个质询(48字节随机数)。STSAFE-A110将生成的随机数发回。
  3. 主机使用加密库计算生成的数字的哈希值。
  4. 主机要求 STSAFE-A110/STSAFE-A120 使用以下方式生成计算哈希值的签名:
    生成签名 API。STSAFE-A110/STSAFE-A120 发回生成的签名。
  5. 主机使用步骤 1 中 STSAFE-A110/STSAFE-A120 发送的公钥验证生成的签名。
  6. 打印签名验证结果。

词汇表

缩写 意义
高级加密标准 (AES) 高级加密标准
美国国家标准 美国国家标准协会
API 应用程序编程接口
巴西石油公司 董事会支持包
CA 认证机构
CC 通用标准
C-苹果 命令消息认证码
椭圆曲线密码 椭圆曲线密码学
脱氢表雄酮 椭圆曲线 Diffie–Hellman
环己烯基乙基醚 椭圆曲线 Diffie-Hellman – 短暂的
暖暖 适用于 Arm® 的 IAR Embedded Workbench®
哈尔 硬件抽象层
输入/输出 输入/输出
IAR系统® 嵌入式系统开发软件工具和服务领域的全球领导者。
集成开发环境 集成开发环境。一种为计算机程序员提供全面软件开发设施的软件应用程序。
物联网 物联网
I²C 内部集成电路(IIC)
LL 低级驱动程序
苹果 消息认证码
单片机 微控制器单元
MDK-ARM 适用于 Arm® 的 Keil® 微控制器开发套件
微处理器 内存保护单元
非易失性存储器 非易失性存储器
OS 操作系统
SE 安全元件
安全哈希算法
服务水平协议 软件许可协议
ST 意法半导体
TLS 传输层安全性
USB 通用串行总线

修订历史

日期 修订 更改
23 年 2025 月 XNUMX 日 1 初始版本。

重要通知——请仔细阅读

  • STMicroelectronics NV 及其子公司 (“ST”) 保留随时更改、更正、增强、修改和改进 ST 产品和/或本文档的权利,恕不另行通知。购买者应在下订单前获取有关 ST 产品的最新相关信息。ST 产品根据订单确认时有效的 ST 销售条款和条件销售。
  • 购买者对 ST 产品的选择、挑选和使用负全部责任,ST 对应用协助或购买者产品的设计不承担任何责任。
  • ST 在​​此不授予任何明示或暗示的知识产权许可。
  • 如果转售的 ST 产品的规定与此处所述的信息不同,则 ST 对该产品授予的任何保证将失效。
  • ST 和 ST 徽标是 ST 的商标。有关 ST 商标的更多信息,请参阅 www.st.com/trademarks. 所有其他产品或服务名称均属于其各自所有者的财产。
  • 本文档中的信息取代并替换了该文档之前任何版本中提供的信息。
  • © 2025 STMicroelectronics – 保留所有权利

文件/资源

ST X-CUBE-STSE01软件包 [pdf] 用户手册
X-CUBE-STSE01 软件包, 软件包, 软件

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *