mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 03:00:34 +03:00
feat(bootloader_support): remove P192 curve support
This commit is contained in:
@@ -7,7 +7,7 @@ Secure Boot v2
|
||||
|
||||
{IDF_TARGET_SBV2_SCHEME:default="RSA-PSS", esp32c2, esp32c61="ECDSA", esp32c6, esp32h2, esp32p4, esp32c5, esp32h21="RSA-PSS or ECDSA"}
|
||||
|
||||
{IDF_TARGET_SBV2_KEY:default="RSA-3072", esp32c2, esp32c61="ECDSA-256 or ECDSA-192", esp32c6, esp32h2, esp32p4, esp32h21="RSA-3072, ECDSA-256, or ECDSA-192", esp32c5="RSA-3072, ECDSA-384, ECDSA-256, or ECDSA-192"}
|
||||
{IDF_TARGET_SBV2_KEY:default="RSA-3072", esp32c2, esp32c61="ECDSA-256", esp32c6, esp32h2, esp32p4, esp32h21="RSA-3072, ECDSA-256", esp32c5="RSA-3072, ECDSA-384, ECDSA-256"}
|
||||
|
||||
{IDF_TARGET_SECURE_BOOT_OPTION_TEXT:default="", esp32c6, esp32h2, esp32p4, esp32h21="RSA is recommended for faster verification. You can choose either the RSA or ECDSA scheme from the menu.", esp32c5="ECDSA is recommended for faster verification. You can choose either the RSA or ECDSA scheme from the menu."}
|
||||
|
||||
@@ -75,9 +75,7 @@ The Secure Boot process on {IDF_TARGET_NAME} involves the following steps:
|
||||
|
||||
2. When the second stage bootloader loads a particular application image, the application's {IDF_TARGET_SBV2_SCHEME} signature is verified. If the verification is successful, the application image is executed.
|
||||
|
||||
.. only:: SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED
|
||||
|
||||
The ECDSA-P192 curve is disabled by default on {IDF_TARGET_NAME}. If the provided secure boot signing key uses the ECDSA-P192 curve, the system attempts to enable support for ECDSA-P192 curve mode to proceed with secure boot. However, if the curve mode has already been locked, enabling ECDSA-P192 is not possible. In such cases, secure boot cannot be configured using an ECDSA-P192 key. The user must instead provide a signing key based on the ECDSA-P256 curve or RSA based signing key.
|
||||
|
||||
Advantages
|
||||
----------
|
||||
@@ -254,7 +252,7 @@ The content of each signature block is shown in the following table:
|
||||
|
||||
.. only:: SOC_SECURE_BOOT_V2_ECC
|
||||
|
||||
.. list-table:: Content of an ECDSA-256 / ECDSA-192 Signature Block
|
||||
.. list-table:: Content of an ECDSA-256 Signature Block
|
||||
:widths: 10 10 40
|
||||
:header-rows: 1
|
||||
|
||||
@@ -275,7 +273,7 @@ The content of each signature block is shown in the following table:
|
||||
- SHA-256 hash of only the image content, not including the signature block.
|
||||
* - 36
|
||||
- 1
|
||||
- Curve ID. 1 for NIST192p curve. 2 for NIST256p curve.
|
||||
- Curve ID. 2 for NIST256p curve.
|
||||
* - 37
|
||||
- 64
|
||||
- ECDSA Public key: 32-byte X coordinate followed by 32-byte Y coordinate.
|
||||
@@ -529,9 +527,7 @@ Restrictions After Secure Boot Is Enabled
|
||||
|
||||
- After Secure Boot is enabled, further read-protection of eFuse keys is not possible. This is done to prevent an attacker from read-protecting the eFuse block that contains the Secure Boot public key digest, which could result in immediate denial of service and potentially enable a fault injection attack to bypass the signature verification. For further information on read-protected keys, see the details below.
|
||||
|
||||
.. only:: SOC_ECDSA_P192_CURVE_DEFAULT_DISABLED
|
||||
|
||||
When Secure Boot is enabled, the ECDSA curve mode becomes write-protected. This means that if the curve mode was not previously set to use the ECDSA-P192 key before enabling Secure Boot, it will no longer be possible to configure or use the ECDSA-P192 curve on the ECDSA peripheral afterward.
|
||||
|
||||
Burning read-protected keys
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -580,11 +576,11 @@ The build system will prompt you with a command to generate a new signing key vi
|
||||
|
||||
.. only:: SOC_ECDSA_SUPPORT_CURVE_P384
|
||||
|
||||
Select the ECDSA scheme by passing ``--version 2 --scheme ecdsa384``, ``--version 2 --scheme ecdsa256`` or ``--version 2 --scheme ecdsa192`` to generate corresponding ECDSA private key.
|
||||
Select the ECDSA scheme by passing ``--version 2 --scheme ecdsa384`` or ``--version 2 --scheme ecdsa256`` to generate the corresponding ECDSA private key.
|
||||
|
||||
.. only:: not SOC_ECDSA_SUPPORT_CURVE_P384
|
||||
|
||||
Select the ECDSA scheme by passing ``--version 2 --scheme ecdsa256`` or ``--version 2 --scheme ecdsa192`` to generate corresponding ECDSA private key.
|
||||
Select the ECDSA scheme by passing ``--version 2 --scheme ecdsa256`` to generate the corresponding ECDSA private key.
|
||||
|
||||
The strength of the signing key is proportional to (a) the random number source of the system, and (b) the correctness of the algorithm used. For production devices, we recommend generating signing keys from a system with a quality entropy source and using the best available {IDF_TARGET_SBV2_SCHEME} key generation utilities.
|
||||
|
||||
@@ -600,12 +596,6 @@ For example, to generate a signing key using the OpenSSL command line:
|
||||
|
||||
.. only:: SOC_SECURE_BOOT_V2_ECC
|
||||
|
||||
For the ECC NIST192p curve
|
||||
|
||||
.. code-block::
|
||||
|
||||
openssl ecparam -name prime192v1 -genkey -noout -out my_secure_boot_signing_key.pem
|
||||
|
||||
For the ECC NIST256p curve
|
||||
|
||||
.. code-block::
|
||||
@@ -727,7 +717,7 @@ Secure Boot Best Practices
|
||||
|
||||
.. note::
|
||||
|
||||
If Secure Boot v2 is configured using the ECDSA P-384 signature scheme, all signing keys used must be ECDSA-P384 keys. Using keys with different elliptic curves (e.g., P-192 or P-256) alongside P-384 is not supported and will cause signature verification to fail during boot.
|
||||
If Secure Boot v2 is configured using the ECDSA P-384 signature scheme, all signing keys used must be ECDSA-P384 keys. Using keys with different elliptic curves (for example, P-256) alongside P-384 is not supported and will cause signature verification to fail during boot.
|
||||
|
||||
.. _secure-boot-v2-key-revocation:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user