Enable SecureLock and SecureBoot via the CLI #200

Open
opened 2025-11-13 15:37:24 +08:00 by incredible-io · 2 comments
incredible-io commented 2025-11-13 15:37:24 +08:00 (Migrated from github.com)

I'm finding it difficult to follow the discussions about enabling SecureLock and SecureBoot. The simplest solution would be to use the Commissioner. However, since I'm using a Pico board that isn't included in the SDK, and therefore compiled the firmware myself with my own signing key, I'm wondering if the Commissioner takes this into account or if it burns the hash of the public signing key for the official builds into the OTP? The latter seems more likely to me, since the Commissioner doesn't have access to my otp.json file.

Could I please have a step-by-step guide on how to enable SecureLock and SecureBoot via the CLI?

Regards,
Cid

I'm finding it difficult to follow the discussions about enabling SecureLock and SecureBoot. The simplest solution would be to use the Commissioner. However, since I'm using a Pico board that isn't included in the SDK, and therefore compiled the firmware myself with my own signing key, I'm wondering if the Commissioner takes this into account or if it burns the hash of the public signing key for the official builds into the OTP? The latter seems more likely to me, since the Commissioner doesn't have access to my otp.json file. Could I please have a step-by-step guide on how to enable SecureLock and SecureBoot via the CLI? Regards, Cid
incredible-io commented 2025-11-13 15:46:49 +08:00 (Migrated from github.com)

I found this, but I'm wondering if it's complete? Why are write access revoked for PAGE1, and later PAGE2 and PAGE48? Is all of this necessary?

I found [this](https://github.com/polhenarejos/pico-fido/issues/106#issuecomment-2646388357), but I'm wondering if it's complete? Why are write access revoked for PAGE1, and later PAGE2 and PAGE48? Is all of this necessary?
polhenarejos commented 2025-11-14 00:04:13 +08:00 (Migrated from github.com)

Revoking access is necessary to avoid OTP dumps, which is the final purpose I guess. Locking page 48 doesn’t mean it will not possible to write or read. It means that only secure code will be able to do so; and since only your signed code will be able to do it, the result is that the keys are only accessible by the owner of the board.
Secure Lock will allow only run firmware signed by me.

Revoking access is necessary to avoid OTP dumps, which is the final purpose I guess. Locking page 48 doesn’t mean it will not possible to write or read. It means that only secure code will be able to do so; and since only your signed code will be able to do it, the result is that the keys are only accessible by the owner of the board. Secure Lock will allow only run firmware signed by me.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dearsky/pico-fido#200