Hello Nordic team,
I'm working with nRF Connect SDK (version 3.1.0) on an nRF54L15 device and using mcumgr for Bluetooth LE firmware updates via the SMP service.
My goal is to protect the SMP service so that only authorized devices can perform firmware uploads/updates.
Specifically, I want to prevent any unauthenticated or unauthorized BLE central from writing to the SMP characteristics and initiating a DFU.
From my search:
- Enabling CONFIG_MCUMGR_TRANSPORT_BT_AUTHEN=y sets GATT permissions to require authenticated writes.
- This should force MITM-protected pairing (e.g., passkey or numeric comparison) before allowing SMP access.
- I'm also planning to use MCUboot image signing for additional protection.
Questions:
1. Is CONFIG_MCUMGR_TRANSPORT_BT_AUTHEN=y the correct/recommended way to require authenticated pairing for SMP access? Are there any additional configs needed (e.g., bonding, security level in code)?
2. As My device does not have any disply/input option, is this way(CONFIG_MCUMGR_TRANSPORT_BT_AUTHEN=y) suitable to protect SMP service?
3. If I want encryption but *not* full authentication (to avoid passkey entry in my case), is there a way to set permissions to BT_GATT_PERM_WRITE_ENCRYPT only?
4. Any other best practices for production-grade security on SMP DFU (e.g., combining with custom handlers or other transports)?
Thanks in advance for your help!