BLE

BLE Security in Practice: Encrypted Provisioning on nRF52840

Mar 2026 7 min read Ravi Kumar
Securing BLE commissioning flows — pairing modes to AES key exchange — with working Zephyr RTOS example on nRF Connect SDK 2.5.

The Provisioning Problem

Device provisioning is where most BLE security vulnerabilities appear. Default pairings, hardcoded keys, and unencrypted characteristic writes are common mistakes.

Pairing Modes

Zephyr Implementation

static const struct bt_conn_auth_cb auth_cb = {
    .passkey_display = auth_passkey_display,
    .passkey_confirm = auth_passkey_confirm,
};
bt_conn_auth_cb_register(&auth_cb);
/* BT_SECURITY_L4 = authenticated LE Secure Connections + encryption */
bt_conn_set_security(conn, BT_SECURITY_L4);

Common Vulnerabilities to Avoid

← Back to all posts