AWS IoT OTA Jobs Code Signing Key
Posted: Wed Nov 23, 2022 12:01 am
Hello,
I'm currently following the examples and guides for using the AWS IoT OTA library for sending OTA updates to the ESP32-S3 [0]. One of the prerequisite steps is to generate a code signing key that AWS uses to sign OTA images [1]. The public key is stored on the device and used to verify the downloaded image.
These instructions recommend generating a ECDSA private key. Is this the best algorithm / key type to use for the ESP32-S3?
The Reference Manual does not mention anything about ECDSA hardware acceleration, but RSA acceleration is supported and used for Hardware Secure Boot. From some of the outdated materials I could find online [2], it looks like the old version of Secure Boot (now unsupported) used to use ECDSA, but Secure Boot V2 now uses RSA with 3072 bit keys. This outdated resource even suggested using the same key for secure boot signing and OTA image signing with AWS Code Signing.
Would my OTA Update implementation benefit from using RSA instead of ECDSA for AWS IoT code signing? Will the image signature check be faster with hardware accelerated RSA operations compared to ECDSA?
Thanks in advance for your help!
[0] https://github.com/espressif/esp-aws-io ... a/ota_http
[1] https://docs.aws.amazon.com/freertos/la ... t-esp.html
[2] https://blog.espressif.com/esp32-ota-up ... fbbb8f4784
I'm currently following the examples and guides for using the AWS IoT OTA library for sending OTA updates to the ESP32-S3 [0]. One of the prerequisite steps is to generate a code signing key that AWS uses to sign OTA images [1]. The public key is stored on the device and used to verify the downloaded image.
These instructions recommend generating a ECDSA private key. Is this the best algorithm / key type to use for the ESP32-S3?
The Reference Manual does not mention anything about ECDSA hardware acceleration, but RSA acceleration is supported and used for Hardware Secure Boot. From some of the outdated materials I could find online [2], it looks like the old version of Secure Boot (now unsupported) used to use ECDSA, but Secure Boot V2 now uses RSA with 3072 bit keys. This outdated resource even suggested using the same key for secure boot signing and OTA image signing with AWS Code Signing.
Would my OTA Update implementation benefit from using RSA instead of ECDSA for AWS IoT code signing? Will the image signature check be faster with hardware accelerated RSA operations compared to ECDSA?
Thanks in advance for your help!
[0] https://github.com/espressif/esp-aws-io ... a/ota_http
[1] https://docs.aws.amazon.com/freertos/la ... t-esp.html
[2] https://blog.espressif.com/esp32-ota-up ... fbbb8f4784