The fundamental identifier of a Bluetooth® Low-Energy device, similar to an Ethernet or Wi-Fi® Media Access Control (MAC) address is the Bluetooth Device Address. This 48-bit (6-byte) number uniquely identifies a device among peers. There are two types of device addresses and one or both can be set on a device:
Each discovery/connection procedure must be performed using one of the two types and is specified by the host.
Public Device Address
This is the standard, IEEE-assigned 48-bit universal LAN MAC address which must be obtained from the IEEE Registration Authority. It is divided into two fields:
- IEEE-assigned company ID held in the 24 most-significant bits
- Company-assigned device ID held in the 24 least significant bits
Random Device Address
Since all BLE packets include a Device Address, it's possible to track the BLE device as it's moving and communicating, unless it changes its address periodically. BLE adds the ability to periodically change the address. Two Random Address Types are provided.
Static Address
A 48-bit randomly generated address. A new value is generated after each power cycle.
If the static address of a device is changed, then the address stored in peer devices will not be valid and the ability to reconnect using the old address will be lost.
Private Address
When a device wants to remain private, it uses private addresses. These are addresses that can be periodically changed so that the device can not be tracked. These may or may not be resolvable.
Resolvable Private Addresses
This is an address that can be resolved through a pre-shared hash key:
- Only the trusted entities that have your pre-shared key can identify you. For all other entities, the address seems to be randomly changing and untrackable.
These addresses are generated by a mathematical algorithm using the Identity Resolving Key (IRK) - this is one of the keys exchanged during pairing.
Non-Resolvable Private Addresses
This is an address that is random and can not be expected:
- A possible use case is a device that already communicated a non-resolvable address to a peer for a reconnection.