Skip to content

Commit 232f219

Browse files
docs: Explain revocation of unused but compromised keys
Explain the revocation of unused but compromised keys. docs: Apply updates from code review Add some nitpicks from AdityaHPatwardhan. Closes #14563 Co-authored-by: Aditya Patwardhan <[email protected]>
1 parent 564d777 commit 232f219

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

docs/en/security/secure-boot-v2.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,7 @@ Secure Boot Best Practices
610610
--------------
611611

612612
* Keys are processed in a linear order, i.e., key #0, key #1, key #2.
613+
* When a key is revoked, all remaining unrevoked keys can still be used to sign applications. For instance, if key #1 is revoked, keys such as key #0 and key #2 will remain valid for signing the application.
613614
* Applications should be signed with only one key at a time, to minimize the exposure of unused private keys.
614615
* The bootloader can be signed with multiple keys from the factory.
615616

@@ -634,6 +635,11 @@ Secure Boot Best Practices
634635

635636
* A similar approach can also be used to physically re-flash with a new key. For physical re-flashing, the bootloader content can also be changed at the same time.
636637

638+
.. note::
639+
640+
It may be necessary to revoke a key that isn't currently being used.
641+
For example, if the active application is signed with key #0, but key #1 becomes compromised, you should revoke key #1 by using the above approach. The new OTA update should continue to be signed with key #0, and the API `esp_ota_revoke_secure_boot_public_key(SECURE_BOOT_PUBLIC_KEY_INDEX_[N])` can be used to revoke the key #N (N would be 1 in this case). After revoking, all remaining unrevoked keys can still be used to sign future applications.
642+
637643

638644
.. _secure-boot-v2-aggressive-key-revocation:
639645

0 commit comments

Comments
 (0)