• 正文
  • 相关推荐
申请入驻 产业图谱

如何在各 STM32 系列间理顺安全存储与密钥管理

10/26 13:03
74
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

本文梳理意法半导体(ST)的安全存储做法,以及跨多款 STM32 的密钥管理能力。

引言

要护住敏感信息,既要安全存放,也要控制谁能碰明文。敏感资产通常分两类:

  • 密码学密钥
  • 机密应用数据

STM32 安全架构用两层互补机制来做这件事:

  • 安全存储(密钥存储):把密码学密钥与机密数据放稳,用硬件或软件访问控制挡住未授权访问
  • 密钥管理:覆盖密钥全生命周期:安全供给、隔离、封装(wrap)/解封(unwrap)与使用,全程不暴露明文密钥

密钥管理靠专用硬件:Secure AES(SAES)与 Coupling and Chaining Bridge(CCB),做密钥隔离、密钥封装,以及给密码运算用的安全密钥共享。

1. 安全存储

安全存储用来在 STM32 上护住静态密码学密钥与机密应用数据,并做访问控制。

各系列实现不一样。本节说三条路:

  • OBKeys:STM32H5 与 STM32H7R/S 上的专用硬件密钥存储 IP
  • Customer Secure Storage(CKS):STM32WB 特有的 CPU 隔离安全存储
  • 基于软件的安全存储:依托 STM32 硬件隔离机制

1.1 OBKeys

仅 STM32H5 与 STM32H7R/S 有。专用非易失存储器,用来放安全存储与密码学用的密钥。

存储按 HDPL(HDP level)域划分。每个域有自己的安全存储区与访问规则。访问控制由 SBS(system configuration, boot, and security)执行;H5 与 H7R/S 规则不同。SBS 见附录。

  • 数据可安全供给(使用 RSS 函数 RSSLib->DataProvisioning())
  • 数据隔离,仅授权系统部分可访问
  • 防回滚与防克隆
  • 数据无法从系统中提取或被复用

OBKeys 存放两类密钥:

  • 应用硬件密钥(AHK),亦称硬件密钥:索引 0–7。用户不可访问,直接注入 SAES 引擎。可为 STiRoT 密钥或 Memory Cipher Engine(MCE)密钥(外部存储器加密)。SAES 经专用总线访问这些密钥。
  • 软件密钥:索引 8–31,与用户应用相关,可由软件读/写,可供给(如 bootloader 密钥等)。

OBKeys 特性包括:

  • 经 HDPL 级别控制访问
  • 密码隔离:密钥可用 DHUK 或 AHK 加密存放
  • 经 EPOCH 提供防回滚与防重放
  • 某一 HDPL 级别可访问其当前 OBKey 区以及下一级(N 与 N+1)

1.2 硬件密钥

硬件秘密密钥用于在不暴露应用密钥的前提下保护它们。由 ST 建立,应用永远无法访问。STM32 上的硬件密钥概览:

  • Hardware Unique Key(HUK),亦称 Root Hardware Unique Key(RHUK):制造阶段由 ST 供给的 256 位密钥
  • Boot Hardware Key(BHK):存放于抗篡改备份寄存器,在启动时写入。一旦写入,在下次产品复位前应用既不可读也不可写
  • Device Unique Attestation(DUA):制造阶段由 ST 供给的私钥(仅 U3 提供)
  • 器件电子签名含芯片自身信息;这些密钥经密钥派生函数生成新密钥:
    • Derived Hardware Unique Key(DHUK):由 RHUK 与当前 HDP 级别生成,每器件一把 256 位 AES 密钥

对 H5 与 H7R/S,还增加了用作密钥派生参数的计数器:

  • EPOCH:单调计数器(24 位),每次 regression(擦除数据存储)加一,用来挡住更旧固件/数据版本(防回滚/防重放)。对 H5,计数器拆成两部分:(EPOCH NS 与 EPOCH S)

1.3 H7S/R 的安全存储

三个 OBKey 区,对应每个 HDP 级别(0、1、2),最大约 1 KB。概览:

  • HDPL0:永久分配给意法半导体,永不擦除
  • HDPL1:用于 initial Root of Trust(iRoT)密钥,可通过 regression 擦除
  • HDPL2:用于用户应用,或若使用则用于 updatable root of trust(uRoT)

1.4 H5 的安全存储

  • HDPL0:永久分配给意法半导体,永不擦除
  • HDPL1:用于 iRoT 密钥,可通过 regression 擦除
  • HDPL2:用于 secondary Root of Trust(uRoT)、操作系统(OS)或安全应用,也可通过 regression 擦除
  • HDPL3S:保留给安全应用密钥,可通过 regression 擦除
  • HDPL3NS:分配给非安全应用密钥,可通过非安全 regression(NS regression)擦除

OBKeys 用法流程:密钥存储固件选择当前上下文(含 HDPL 与安全/非安全状态)并交给硬件密钥访问控制单元;该单元按当前 HDPL 上下文与 SBS 寄存器选择 OBK-HDPL 与 EPOCH(应用设置 EPOCH_SEL);OBK-HDPL 选择 flash 中的安全存储区并在 SAES 中选择对应 DHUK;检查请求域是否可访问,无违规则用 DHUK 加密数据。

1.5 H7R/S 与 H5 对比

特性 STM32H5 STM32H7R/S
安全存储技术 称为 OBKeys 的专用安全存储区 内部 flash 中的 OBK 安全存储
域数量 5 个域:HDPL0、HDPL1、HDPL2、HDPL3S、HDPL3NS 3 个域:HDPL0、HDPL1、HDPL2
TrustZone 安全/非安全划分 有,经 HDPL3S/HDPL3NS OBK 无 TrustZone 支持
总存储大小 最多约 8 KB 最大 1 KB
访问模型 存储器映射 基于寄存器、链式列表结构
OBKeys 覆盖的最大 HDPL 直至 HDPL3 仅至 HDPL2
加密基础 支持密码的器件上每 HDPL 的 SAES + DHUK SAES + DHUK 或 AHK
防克隆/防回滚 支持 支持,含基于 EPOCH 的防回滚
供给 RSSLib->DataProvisioning() RSSLib->DataProvisioning()
供给时使用的加密密钥 DHUK AHK

1.6 Customer secure storage(CKS)

仅 STM32WB 提供。STM32WB 有两颗 CPU:CPU1(Cortex®-M4)跑用户应用;CPU2(Cortex®-M0+)跑网络栈。

CKS 是仅 CPU2 可访问的安全存储方案:在安全区存放已供给密钥,使 AES 外设能安全访问这些密钥而不暴露,并向用户返回结果。这一切由 CPU2 管理,与运行用户应用的 CPU1 完全隔离。

1.7 基于软件的安全存储

ST 还提供软件方案:向用户应用暴露安全存储服务;这些服务靠下表里的硬件隔离机制隔开并保护。

STM32 器件 硬件隔离 方案
STM32L4 与 STM32L4+ Firewall 与 MPU SBSFU legacy;key management services(KMS),经 PKCS#11 API 提供安全存储与安全密钥管理
STM32H573 TrustZone®、MPU、HDP level Secure Manager:Internal Trusted Storage(ITS)、Protected Storage(PS);ST 专有 TEE,经 PSA API 提供安全服务
STM32H5、STM32U3、STM32L5、STM32WBA、STM32U5 TrustZone®、MPU TF-M(Trusted Firmware-M):开源 TEE,经 PSA API 暴露相同 ITS/PS 服务

注:PKCS#11(Public Key Cryptography Standards #11)是密码令牌/HSM 接口标准。PSA(Platform Security Architecture)是 Arm 的安全框架,用来规范联网设备的硬件与固件安全。

2. 密钥管理

密钥管理通过:

  • SAES:secure AES 外设
  • CCB:Coupling and Chaining Bridge

2.1 Secure AES(SAES)

SAES 是做安全密钥管理的硬件 AES 加速器(不只是把 AES 算得快),带抗侧信道攻击(SCA)与差分功耗分析(DPA)能力。

与标准 CRYP 外设不同,SAES 通过以下能力保护密钥免受软件与物理攻击:

  • 只写密钥寄存器(可写不可读)
  • 硬件管理的秘密密钥
  • 密钥封装与解封
  • 与 CRYP/AES 外设的安全密钥共享
  • DPA 抗性
  • 硬件 RNG 集成

正常模式下,CPU 将密钥载入 SAES 只写寄存器后无法回读。

做密钥管理时,SAES 支持密钥派生:经派生函数管理 DHUK,供后续封装/解封;DHUK 不暴露,按需生成。DHUK 派生依系列而定,一般以 RHUK 与当前 HDPL 级别为输入。

密钥封装/解封是密钥保护与隔离机制;密钥不应明文存放。对称密钥用 SAES 封装/解封;非对称密码则由 PKA 与 CCB 配合 SAES(见后文)。

封装过程概要:选择硬件秘密密钥(DHUK 或 DHUK XOR BHK 等,依系列而定)→ 提供待加密密钥 → 执行封装(加密;可选链接/计数器等模式)→ 保存到 flash。

解封:选择硬件秘密密钥 → 将已封装密钥写入数据寄存器 → 在 SAES 内解密并放入只写密钥寄存器 → 应用按需使用。

SAES 适合管密钥,但不是为高吞吐加密优化的。标准 CRYP/AES 跑批量数据更快,却护不住密钥。两边都要时,用 SAES 的密钥共享:从安全存储里选出密钥,共享给 CRYP/AES 做快速运算,应用看不到明文。两步:SAES 内部解封;再经硬件通路把解封后的密钥直接写进 CRYP/AES 密钥寄存器。

2.2 Coupling and chaining bridge(CCB)

CCB 用来护私钥,连 CPU 也碰不到明文。密钥用器件唯一密钥封装后放进安全存储。它夹在安全存储、SAES 与 PKA(有时还有 RNG)之间。

CCB 在 H5(并非全部 H5)、U3、C5 上按系列与料号提供。

内部机制:

  • Coupling:CPU 同时向 SAES 与 PKA 投喂数据(同时发命令)
  • Chaining:一个外设的结果作为另一外设的输入

DUA:制造阶段由 ST 预供给的密钥对(私钥与公钥),ECC 算法生成,约 265 字节。公钥可通过经 ST CA 签名的证书访问;私钥经封装,可通过 RSSe KW 服务访问。RSS KW 提供仅在特定器件可用的封装密钥。详见 STM32 wiki 上 STM32U3 的 KW 说明。

私钥相关高层用例:密钥对生成、安全密钥导入(RSA)、密钥协商(ECDH)、安全证明(数字签名)。ECDSA / ECC / RSA 支持矩阵:

ECDSA 签名 blob ECC 密钥 blob RSA 密钥 blob
(运算) 签名 标量乘法 模幂
密钥生成 yes yes -
密钥导入 - yes yes
密钥协商 - yes yes
证明(attestation) yes - yes

2.3 私钥保护、封装与解封

明文密钥写入 PKA 存储器;由 CCB 负责送到 SAES 数据输入寄存器。SAES 内密钥派生函数收到标明使用 CCB 的附加参数。封装/解封使用 AES-GCM(带 Galois/Counter Mode)以实现认证加密。私钥封装与解封即走上述通路。

2.4 跨 STM32 产品的密钥管理矩阵

下表概括各系列通过硬件秘密密钥、密码外设与访问控制机制实现的密钥管理:

密钥管理 U5 N6 WB6 C5 H5 U3 H7R/S
Keys · HUK x x x x x x x
BHK x x x x x x x
Access management · SAES x x x x x x x
PKA x x x x x x x
CCB - - - x x x x
密钥使用策略¹ TZ TZ TZ HDPL HDPL/TZ/EPOCH TZ HDPL/EPOCH

¹ 密钥使用策略:由硬件密钥访问控制与密码外设上下文强制执行,依系列可包含安全/非安全状态、HDPL、SBS 设置与 EPOCH。

3. 附录:System configuration boot and security(SBS)

SBS 是替代 SYSCFG 的外设,按料号出现在 STM32 C5、H5、H7R/S、U3。主要功能:

  • 启动控制:设置正确启动地址与 HDPL 级别
  • 调试控制:控制器件重新打开,保证正确事件序列以维护器件安全
  • 系统配置(EXTI 源等)
  • 安全状态:BKPRAM 与 PKA SRAM 擦除
  • RSSCMD:应用向 RSS 传递命令

结论

本文覆盖了安全存储(OBKeys、CKS、软件途径)、密钥管理(SAES 与 CCB),以及跨 STM32 产品的密钥管理摘要。

来源:https://community.st.com/stm32-mcus-60/how-to-navigate-stm32-secure-storage-and-key-management-across-stm32-series-167818
参数以意法半导体官方最新资料为准。

意法半导体

意法半导体

意法半导体拥有49,000名半导体技术的创造者和创新者,掌握半导体供应链和先进的制造设备。作为一家半导体垂直整合制造商(IDM),意法半导体与二十多万家客户、成千上万名合作伙伴一起研发产品和解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需求。意法半导体的技术让人们的出行更智能,让电源和能源管理更高效,让云连接的自主化设备应用更广泛。我们正按计划在所有直接和间接排放(包括范围1和范围2)、产品运输、商务旅行以及员工通勤排放(重点关注的范围3)方面实现碳中和,并在2027年底前实现100%使用可再生电力的目标。 详情请浏览意法半导体公司网站:www.st.com.cn

意法半导体拥有49,000名半导体技术的创造者和创新者,掌握半导体供应链和先进的制造设备。作为一家半导体垂直整合制造商(IDM),意法半导体与二十多万家客户、成千上万名合作伙伴一起研发产品和解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需求。意法半导体的技术让人们的出行更智能,让电源和能源管理更高效,让云连接的自主化设备应用更广泛。我们正按计划在所有直接和间接排放(包括范围1和范围2)、产品运输、商务旅行以及员工通勤排放(重点关注的范围3)方面实现碳中和,并在2027年底前实现100%使用可再生电力的目标。 详情请浏览意法半导体公司网站:www.st.com.cn收起

查看更多

相关推荐

意法半导体拥有49,000名半导体技术的创造者和创新者,掌握半导体供应链和先进的制造设备。作为一 家半导体垂直整合制造商(IDM),意法半导体与二十多万家客户、成千上万名合作伙伴一起研发产品和 解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需 求。意法半导体的技术让人们的出行更智能,让电源和能源管理更高效,让云连接的自主化设备应用更广 泛。我们正按计划在所有直接和间接排放(包括范围1和范围2)、产品运输、商务旅行以及员工通勤排 放(重点关注的范围3)方面实现碳中和,并在2027年底前实现100%使用可再生电力的目标。 详情请浏 览意法半导体公司网站:www.st.com.cn