feat: update docs for ESP32H4 security chapters

This commit is contained in:
nilesh.kale
2026-07-06 15:08:02 +05:30
parent 76f1151d72
commit 6cf7191e1d
11 changed files with 113 additions and 67 deletions
@@ -253,7 +253,7 @@ JTAG 与 flash 加密和安全启动
.. only:: SOC_HMAC_SUPPORTED
请注意,一旦 JTAG 被永久禁用,就无法重新启用以访问 JTAG。但是我们也提供了暂时禁用 (soft disable) JTAG 的选项。有关如何暂时禁用以及重新启用 JTAG,请参考 :ref:`hmac_for_enabling_jtag`。
请注意,一旦 JTAG 被永久禁用,就无法重新启用以访问 JTAG。但是我们也提供了暂时禁用 (soft disable) JTAG 的选项。有关如何暂时禁用以及重新启用 JTAG,请参考 :ref:`HMAC 启用 JTAG 接口 <hmac_for_enabling_jtag>`。
Kconfig 配置项 :ref:`CONFIG_SECURE_BOOT_ALLOW_JTAG` 可以改变这个默认行为,使得用户即使开启了安全启动或者 flash 加密,仍会保留 JTAG 的功能。
+52 -24
View File
@@ -34,13 +34,24 @@
可将该密钥设置为禁止所有外部资源访问,避免密钥泄露。
此外,在 {IDF_TARGET_NAME} 上的 HMAC 有以下三种应用场景:
.. only:: SOC_DIG_SIGN_SUPPORTED
#. HMAC 支持软件使用
#. HMAC 用作 RSA 数字签名外设 (RSA_DS) 的密钥
#. HMAC 用于启用软禁用的 JTAG 接口
此外,在 {IDF_TARGET_NAME} 上的 HMAC 有以下三种应用场景:
第一种应用场景称为 **上行** 模式,后两种应用场景称为 **下行** 模式。
#. HMAC 支持软件使用
#. HMAC 用作 RSA 数字签名外设 (RSA_DS) 的密钥
#. HMAC 用于启用软禁用的 JTAG 接口
第一种应用场景称为 **上行** 模式,后两种应用场景称为 **下行** 模式。
.. only:: not SOC_DIG_SIGN_SUPPORTED
此外,在 {IDF_TARGET_NAME} 上的 HMAC 有以下两种应用场景:
#. HMAC 支持软件使用
#. HMAC 用于启用软禁用的 JTAG 接口
第一种应用场景称为 **上行** 模式,第二种应用场景称为 **下行** 模式。
HMAC 的 eFuse 密钥
^^^^^^^^^^^^^^^^^^^
@@ -49,20 +60,35 @@ HMAC 的 eFuse 密钥
每个密钥都有相应的 eFuse 参数 **密钥功能 (key purpose)**,决定密钥应用于 HMAC 的哪种应用场景。
.. list-table::
:widths: 15 70
:header-rows: 1
.. only:: SOC_DIG_SIGN_SUPPORTED
* - 密钥功能
- 应用场景
* - 8
- HMAC 支持软件使用
* - 7
- HMAC 用作 RSA 数字签名外设 (RSA_DS) 的密钥
* - 6
- HMAC 启用软禁用的 JTAG 接口
* - 5
- HMAC 既用作 RSA 数字签名外设 (RSA_DS) 的密钥,又用于启用 JTAG 接口
.. list-table::
:widths: 15 70
:header-rows: 1
* - 密钥功能
- 应用场景
* - 8
- HMAC 支持软件使用
* - 7
- HMAC 用作 RSA 数字签名外设 (RSA_DS) 的密钥
* - 6
- HMAC 启用软禁用的 JTAG 接口
* - 5
- HMAC 既用作 RSA 数字签名外设 (RSA_DS) 的密钥,又用于启用 JTAG 接口
.. only:: not SOC_DIG_SIGN_SUPPORTED
.. list-table::
:widths: 15 70
:header-rows: 1
* - 密钥功能
- 应用场景
* - 8
- HMAC 支持软件使用
* - 5, 6
- HMAC 用于启用软禁用的 JTAG 接口(HMAC 下行模式)
这样一来,可以确保密钥用于原定场景。
@@ -79,16 +105,18 @@ HMAC 支持软件使用
:cpp:func:`psa_mac_compute` 用于计算 HMAC,该函数接收一个不透明的 PSA 密钥,该密钥引用了包含密钥机密的 eFuse 密钥块,并且该密钥块的用途被设置为上行模式。
HMAC 用作 RSA 数字签名外设 (RSA_DS) 的密钥
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. only:: SOC_DIG_SIGN_SUPPORTED
密钥功能值:7、5
HMAC 用作 RSA 数字签名外设 (RSA_DS) 的密钥
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
HMAC 可用作密钥派生函数,解码 RSA_DS 模块使用的私钥参数。在此情况下,硬件使用标准信息进行计算。在 HMAC 部分只需提供 eFuse 密钥块和功能;而在 RSA_DS 模块则还需要一些额外参数。
密钥功能值:7、5
无论是密钥还是实际的 HMAC,都不会暴露在 HMAC 和 RSA_DS 模块之外。对 HMAC 的计算,以及将其传递给 RSA_DS 模块的过程,均在内部进行。
HMAC 可用作密钥派生函数,解码 RSA_DS 模块使用的私钥参数。在此情况下,硬件使用标准信息进行计算。在 HMAC 部分只需提供 eFuse 密钥块和功能;而在 RSA_DS 模块则还需要一些额外参数。
详情请参阅 **{IDF_TARGET_NAME} 技术参考手册** > **RSA 数字签名外设 (RSA_DS)** [`PDF <{IDF_TARGET_TRM_CN_URL}#digsig>`__]。
无论是密钥还是实际的 HMAC,都不会暴露在 HMAC 和 RSA_DS 模块之外。对 HMAC 的计算,以及将其传递给 RSA_DS 模块的过程,均在内部进行。
详情请参阅 **{IDF_TARGET_NAME} 技术参考手册** > **RSA 数字签名外设 (RSA_DS)** [`PDF <{IDF_TARGET_TRM_CN_URL}#digsig>`__]。
.. _hmac_for_enabling_jtag:
+1 -1
View File
@@ -3,7 +3,7 @@
:link_to_translation:`en:[English]`
{IDF_TARGET_RF_NAME: default="Wi-Fi 或蓝牙", esp32s2="Wi-Fi", esp32h2="蓝牙或 802.15.4 Thread/Zigbee", esp32c6="Wi-Fi 或蓝牙或 802.15.4 Thread/Zigbee", esp32c5="Wi-Fi 或蓝牙或 802.15.4 Thread/Zigbee"}
{IDF_TARGET_RF_NAME: default="Wi-Fi 或蓝牙", esp32s2="Wi-Fi", esp32h2="蓝牙或 802.15.4 Thread/Zigbee", esp32h4="蓝牙或 802.15.4 Thread/Zigbee", esp32c6="Wi-Fi 或蓝牙或 802.15.4 Thread/Zigbee", esp32c5="Wi-Fi 或蓝牙或 802.15.4 Thread/Zigbee"}
{IDF_TARGET_RF_IS: default="已启用", esp32s2="已启用"}
{IDF_TARGET_NAME} 中包含一个硬件随机数发生器 (RNG),可以调用 API :cpp:func:`esp_random` 和 :cpp:func:`esp_fill_random` 从中获取随机数值。
@@ -8,7 +8,7 @@
{IDF_TARGET_CRYPT_CNT:default="SPI_BOOT_CRYPT_CNT",esp32="FLASH_CRYPT_CNT"}
{IDF_TARGET_CRYPT_CNT_MAX_VAL:default="7",esp32="127"}
{IDF_TARGET_SBV2_DEFAULT_SCHEME:default="RSA", esp32c2="ECDSA (V2)"}
{IDF_TARGET_SBV2_DEFAULT_SCHEME:default="RSA", esp32c2, esp32h4="ECDSA (V2)"}
{IDF_TARGET_FLASH_ENC_ARGS:default="--aes-xts", esp32=""}
概述
+1 -1
View File
@@ -190,7 +190,7 @@ JTAG
- 如果启用了任一安全功能,则 JTAG 接口将保持禁用。更多详情请参阅 :ref:`jtag-debugging-security-features`。
- 如果不启用其他安全功能,也可以使用 :ref:`efuse_API` 禁用 JTAG 接口。
:SOC_HMAC_SUPPORTED: - {IDF_TARGET_NAME} 支持软禁用 JTAG 接口,并且可以通过 HMAC 烧录密钥重新启用,请参阅 :ref:`hmac_for_enabling_jtag`。
:SOC_HMAC_SUPPORTED: - {IDF_TARGET_NAME} 支持软禁用 JTAG 接口,并且可以通过 HMAC 烧录密钥重新启用,请参阅 :ref:`HMAC 启用 JTAG 接口 <hmac_for_enabling_jtag>`。
UART 下载模式
^^^^^^^^^^^^^^^^^^