LE Privacy and Address Rotation#
LE Privacy in Bluetooth Low Energy (BLE) 4.2 and later uses resolvable private addresses (RPA) to prevent device tracking and enhance privacy. Addresses rotate periodically while maintaining the ability to resolve them using Identity Resolving Keys (IRK).
Privacy Overview#
Privacy Benefits:
Device Tracking Prevention: Rotating addresses prevent long-term tracking
Identity Protection: Real device address hidden from passive observers
Selective Resolution: Only devices with IRK can resolve addresses
Privacy Components:
Identity Resolving Key (IRK): 128-bit key used to generate and resolve RPAs
Resolvable Private Address (RPA): Rotating address derived from IRK
Resolving List: Database of IRKs for known devices
Setting Up Privacy#
1. Set Local IRK:
Use
rsi_ble_set_local_irk_value()to set the device's IRKIRK is used to generate RPAs for this device
2. Add Devices to Resolving List:
Use
rsi_ble_resolvlist()to add peer device IRKs to resolving listResolving list enables address resolution for bonded devices
Query resolving list size using
rsi_ble_get_resolving_list_size()
3. Enable Address Resolution:
Use
rsi_ble_set_addr_resolution_enable()to enable address resolutionWhen enabled, device resolves RPAs using IRKs in resolving list
Do not call
rsi_ble_set_addr_resolution_enable()while scanning, advertising, or connection initialization is in progress
4. Set Privacy Mode:
Use
rsi_ble_set_privacy_mode()to configure privacy behaviorPrivacy modes: Network Privacy Mode, Device Privacy Mode
Random Address Management#
Setting Random Address:
Use
rsi_ble_set_random_address()to set random address for advertising/scanningOr use
rsi_ble_set_random_address_with_value()to set specific random addressRandom address rotates periodically (typically every 15 minutes)
Address Types:
Public Address: Device's permanent MAC address
Random Static Address: Fixed random address (doesn't change)
Resolvable Private Address (RPA): Rotating address derived from IRK
Non-Resolvable Private Address: Random address not derived from IRK
Privacy Best Practices#
When to Use Privacy:
Consumer devices that need privacy protection
Applications where device tracking is a concern
Devices that connect to multiple peers
Privacy Considerations:
Privacy adds processing overhead for address resolution
Resolving list has size limits
Address rotation may cause temporary connection issues if not handled properly
APIs Used in This Section#
Topic | APIs / symbols | Reference |
|---|---|---|
LE privacy |
|