Documentation
Onboarding
Getting Started
Power & Battery
Hardware & Components
Build & Assembly
Radio & RF Design
Frequencies & Regulations
Firmware & Software
USB & Connectivity
GPS & Navigation
Morse & Communication
Modes & Operation
Field Operations & Rescue
Building Effectively
Build Variants
Project & Reference
Docs Firmware & Software ESP32 Flash Security

ESP32 Flash Security

Edit on GitHub

The flash security features available on the ESP32: secure boot, flash encryption, and what the beacon does and does not enable.

ESP32 Flash Security

The ESP32 supports real flash security: signed boot, encrypted storage. The beacon’s threat model decides what it actually needs.

The threat model

Who would attack a beacon? The realistic threats:

ThreatRealistic?
Someone reading the config (callsign, frequencies)Low: it is in plain NVS
Someone tampering with the firmwareLow: a bespoke build on a hobby device
Someone cloning the firmwarePossible, but it is open source anyway

The beacon’s threat model is minimal: it is a field device with no secrets worth protecting.

What the ESP32 offers

FeatureWhat it does
Secure bootRefuses to boot unsigned firmware
Flash encryptionEncrypts flash contents
eFuse burningPermanent configuration, one-way

Enabling any of these is irreversible in practice (the eFuses burn once) and complicates every future flash: they are the wrong tool for this project.

The beacon’s choice

The beacon ships without flash encryption and secure boot, deliberately:

  1. The firmware is open source: cloning it protects nothing.
  2. The config is field data, not a secret.
  3. Encrypted flash would break the firmware-update flow and the factory reset (see Factory Reset and Recovery).

The one security feature that matters

The WiFi portal’s passphrase (see WiFi and Security) IS protected, because it is the only credential the device holds. Everything else in the threat model is informational.