mbed-os / connectivity / FEATURE_BLE /
@Jamie Smith Jamie Smith authored on 13 Jun 2022
Jay Sridharan committed on 14 Sep 2022
..
include/ ble Merge pull request #14824 from paul-szczepanek-arm/persistence-fix 2 years ago
libraries Convert mbed-ble to STATIC 1 year ago
source Rename inconsistently named testing-related variables. Also fix STM32CUBE not working from application code. 1 year ago
tests/ UNITTESTS cmake: Avoid linking to gcov 2 years ago
.gitignore remove generic, TPPs, nested namespaces 3 years ago
.mbedignore remove generic, TPPs, nested namespaces 3 years ago
CMakeLists.txt Rename inconsistently named testing-related variables. Also fix STM32CUBE not working from application code. 1 year ago
DOXYGEN_FRONTPAGE_BLE.md remove generic, TPPs, nested namespaces 3 years ago
LICENSE remove generic, TPPs, nested namespaces 3 years ago
README.md Bluetooth: Inform privacy risk of using signed writes. 2 years ago
apache-2.0.txt remove generic, TPPs, nested namespaces 3 years ago
ble.doxyfile remove generic, TPPs, nested namespaces 3 years ago
mbed_lib.json add information about privacy refresh to config option 2 years ago
README.md

mbed Bluetooth Low Energy Stack

This is the Github repository for the BLE_API. Please see the Mbed OS Example BLE GitHub Repo for all code examples, and the Mbed OS BLE API page for all code documentation and general help.

Getting Started

Privacy notice

The Cordio Bluetooth stack only stores one single signing key. This key is then shared across all bonded devices. If a malicious device bonds with the Mbed OS application it then gains knowledge of the shared signing key of the Mbed OS device. The malicious device can then track the Mbed OS device whenever a signing write is issued from it.

To overcome this privacy issue do not issue signed writes from the Mbed OS device. A signed write occurs when the member function write of GattClient is called with its cmd argument set to GATT_OP_SIGNED_WRITE_CMD.

Instead of using signed writes, enable encryption on the connection. This is achieved by calling the function setLinkEncryption of the SecurityManager. Set the encryption to at least ENCRYPTED.