X-CUBE-STSE01软件包

介绍
本用户手册介绍了如何开始使用 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中间件由三个软件模块组成,如下图所示。每一层都为嵌入式系统开发人员提供不同级别的系统抽象。

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

为了提供最佳的硬件和平台独立性,STSELib 中间件不直接连接到 STM32Cube HAL,而是通过接口 file在应用程序级别实现
- 应用程序编程接口(API)层
该软件层是系统应用程序的入口点。它提供了一组高级函数,允许与意法半导体安全元件进行交互。API 层为不同的应用程序(例如安全元件管理、身份验证、数据存储和密钥管理)提供抽象。 - 服务层
SERVICE 层提供一组产品服务,用于格式化目标安全元件支持的所有命令,并将响应报告给更高层的 API/应用程序。此层可直接从应用程序(适用于高级用户)使用。 - 核心层
包含 ST 安全元件的通用定义和与目标安全元件通信的功能。
核心层处理消息的框架并为上述层提供平台抽象。
资料夹结构
下图展示了 X-CUBE-STSE01 的文件夹结构。

演示软件
本节介绍基于STSELib中间件的演示软件。
验证
该演示说明了 STSAFE-A110/STSAFE-A120 安装在向远程主机(物联网设备案例)进行身份验证的设备上时的命令流,本地主机用作到远程服务器的直通。
例如,STSAFE-A110/STSAFE-A120 安装在对本地主机进行身份验证的外设上amp对于游戏、移动配件或消耗品来说,文件是完全相同的。
为了演示目的,这里的本地和远程主机是同一台设备。
- 提取、解析并验证存储在设备数据分区区域 0 中的 STSAFE-A110/STSAFE-A120 的公共证书,以获取公钥:
- 使用 STSELib 中间件通过 STSAFE-A110/STSAFE-A120 的区域 0 读取证书。
- 使用加密库的解析器解析证书。
- 读取 CA 证书(可通过代码获取)。
- 使用加密库的解析器解析 CA 证书。
- 通过密码库使用CA证书验证证书有效性。
- 从 STSAFE-A110/STSAFE-A120 X.509 证书获取公钥。
- 通过挑战数生成并验证签名:
- 生成一个挑战数(随机数)。
- 解决挑战。
- 通过 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莱斯。
命令流程
- 使用 STSELib 中间件在 STSAFE-A110 中生成本地信封密钥。
默认情况下,此命令处于激活状态
仅当 STSAFE-A110 的本地信封键槽尚未填充时才会发生此操作。 - 定义两个 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
- 主机 MAC 密钥
- 将主机 MAC 密钥和主机密码密钥存储到 STSAFE-A110/STSAFE-A120 中的相应插槽中。
- 将主机 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 比较两个秘密并打印结果,如果相同,则秘密建立成功。

包裹/打开本地信封
- 该演示说明了 STSAFE-A110/STSAFE-A120 包装/解开本地信封以便将秘密安全地存储到任何非易失性存储器 (NVM) 的情况。
- 加密/解密密钥可以以这种方式安全地存储到额外的存储器中或 STSAFE-A110/STSAFE-A120 的用户数据存储器中。
- 包装机制用于保护机密或纯文本。包装的输出是一个使用 AES 密钥包装算法加密的信封,其中包含要保护的密钥或纯文本。命令流
- 这里的本地主机和远程主机是同一台设备。
- 生成与本地包络同化的随机数据。
- 使用 STSELib 中间件 API 包装本地信封。
- 保存好包好的信封。
- 使用 STSELIB 中间件打开包装的信封。
- 将解开的信封与初始本地信封进行比较。它们应该相等。
密钥对生成
本演示展示了 STSAFE-A110/STSAFE-A120 器件安装在本地主机上的命令流程。远程主机要求本地主机在插槽 1 上生成一对密钥(一个私钥和一个公钥),然后使用生成的私钥对质询(随机数)进行签名。
然后,远程主机能够使用生成的公钥验证签名。
此演示与身份验证演示类似,但有两点不同:
- 身份验证演示中的密钥对已生成(在插槽 0 上),而在此示例中amp例如,我们在插槽 1 上生成密钥对。STSAFE-A110/STSAFE-A120 设备也可以在插槽 0xFF 上生成密钥对,但仅用于密钥建立目的。
- 身份验证演示中的公钥是从区域 0 中的证书中提取的。在本例中amp例如,公钥随 STSAFE-A110/STSAFE-A120 对生成密钥对命令的响应一起发回。
命令流程
为了演示目的,这里的本地和远程主机是同一台设备。
- 主机将生成密钥对命令发送到 STSAFE-A110/STSAFE-A120,后者将公钥发送回主机 MCU。
- 主机使用“生成随机数”API生成一个质询(48字节随机数)。STSAFE-A110将生成的随机数发回。
- 主机使用加密库计算生成的数字的哈希值。
- 主机要求 STSAFE-A110/STSAFE-A120 使用以下方式生成计算哈希值的签名:
生成签名 API。STSAFE-A110/STSAFE-A120 发回生成的签名。 - 主机使用步骤 1 中 STSAFE-A110/STSAFE-A120 发送的公钥验证生成的签名。
- 打印签名验证结果。
词汇表
| 缩写 | 意义 |
| 高级加密标准 (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 软件包, 软件包, 软件 |

