mbed-os / connectivity / FEATURE_BLE /
@Jamie Smith Jamie Smith authored on 3 Apr 2022
Jay Sridharan committed on 14 Sep 2022
..
include/ ble Merge pull request #14824 from paul-szczepanek-arm/persistence-fix 2 years ago
libraries fix CORDIO not passing the conn id in param for adv stop event 2 years ago
source Greentea: Remove deprecated APIs and use chrono 3 years 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 Clean up top-level build file and build options, fix build issues on MinGW 2 years 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.