Bluetooth MAC Addresses: Public, Random & Identity Types
Advertisement
In the Bluetooth ecosystem, every device must be identifiable. At the lowest level, this identity is represented by a 6-octet (48-bit) value. In Classic Bluetooth (BR/EDR), this is commonly known as the “BD_ADDR” (Bluetooth Device Address). However, with the introduction of Bluetooth Low Energy (LE), the concept of addressing became much more nuanced to support strict privacy requirements. The HCI specification of Bluetooth breaks down device addresses into several distinct types, primarily categorized into Public, Random, and Identity addresses.
1. Public Device Address
The Public Device Address is the standard, globally unique, hardware level address assigned to a Bluetooth Controller.
- In Classic Bluetooth (BR/EDR): This is the permanent “BD_ADDR” programmed into the silicon by the manufacturer.
- In Bluetooth Low Energy (LE): An LE device may also use a Public Device Address. The Host can retrieve its own physical address at any time using the “HCI_Read_BD_ADDR” command.
- Absence of a Public Address: Interestingly, the specification notes that an LE-only Controller is not strictly required to have a factory assigned Public Device Address. If a Host requests the Public Address from an LE Controller that doesn’t have one, the Controller will simply return an address of all zeros (“0x000000000000”).
2. Random Device Address
Because broadcasting a permanent Public Address allows third parties to track a user’s location over time, Bluetooth LE introduced the Random Device Address.
Instead of using a hardcoded MAC address, the device generates a temporary 48-bit address. When the Controller sends an event to the Host (such as an “HCI_LE_Advertising_Report” when discovering nearby devices), it includes an “Address_Type” parameter.
- If the
Address_Typeis0x00, the reported address is a standard Public Address. - If the
Address_Typeis0x01, the reported address is a Random Device Address.
3. Resolvable Private Addresses (RPA) and Identity Addresses
To make Random Addresses truly secure, Bluetooth uses cryptographic keys. This introduces the concept of the Resolvable Private Address (RPA) and its underlying Identity Address.
If a device constantly changes its Random Address to prevent tracking, how do paired devices (like a user’s smartphone and their smartwatch) recognize each other? They do this by utilizing an Identity Resolving Key (IRK).
When a device connects or broadcasts, it can use an RPA. To an outside observer, this looks like a random, meaningless address. However, when the receiving Bluetooth Controller intercepts this RPA, it checks its internal list of stored IRKs. If it finds a match, it “resolves” the private address back to the device’s true, underlying identity.
According to Bluetooth HCI specification, once the Controller successfully resolves an RPA, it reports the device to the Host using an Identity Address. The Bluetooth specification outlines two types of Identity Addresses:
- Public Identity Address (Type
0x02): The Controller successfully used an IRK to resolve the incoming private address, and the device’s underlying, true identity is a standard Public Device Address. - Random (Static) Identity Address (Type
0x03): The Controller successfully resolved the private address, but the device’s underlying identity is a persistent, static Random Address (an address generated once per power cycle or lifetime, rather than a factory assigned one).
How the HCI Handles RPAs During Connections
The distinction between the temporary on-air address and the resolved identity is explicitly handled in connection events like “HCI_LE_Enhanced_Connection_Complete”.
When a secure, privacy enabled connection is formed, the Controller sends the Host detailed breakdown as follows.
- Peer_Address: The underlying Identity Address of the remote device.
- Peer_Resolvable_Private_Address: The actual, temporary RPA that the remote device broadcasted over the air.
- Local_Resolvable_Private_Address: The temporary RPA that your local Controller generated to hide its own identity during the connection process.
Note: If the Controller cannot resolve the private address, or if privacy features are not being used, these RPA fields are simply populated with all zeros.
Summary
- Public Addresses are static, factory assigned identifiers.
- Random Addresses are generated to hide the device’s identity.
- Resolvable Private Addresses (RPAs) are cryptographically generated random addresses that change frequently.
- Identity Addresses (which can be either Public or Random Static) are the true “resolved” identities that the Controller hands to the Host after it has successfully decrypted an RPA using an Identity Resolving Key (IRK).
References & Further Reading
- Bluetooth SIG : Bluetooth Core Specification Version 6.3, May 5, 2026.
- Bluetooth SIG : Bluetooth Core Specification change history
- Bluetooth SIG : Bluetooth Technology Overview
Continue Learning Bluetooth Basic Concepts
- What are new features in Bluetooth 6.3 Version
- Bluetooth GATT Vs. ATT Vs. GAP : Key Comparison
- Bluetooth Service Vs. Characteristic Vs. Descriptor
- Bluetooth Central Vs. Peripheral : Key Differences
- Bluetooth pairing Vs. Bonding Phase
- Bluetooth Notifications Vs. Indications
- Bluetooth Channel Sounding Vs. RSSI
- Bluetooth Direction Finding Methods : AoA Vs. AoD
- Bluetooth HID Over GATT
- Bluetooth IRK Vs. LTK : Key Differences
- Bluetooth PHY : 1M Vs. 2M Vs. Coded Differences
- What is ATT MTU Size in Bluetooth
- Bluetooth Ranging : Phase Based Vs. RTT Based
- Bluetooth Error Codes Guide : Meanings, Causes & Fixes
- Bluetooth L2CAP and HCI : Key Differences
Continue Learning Bluetooth Technology
- Bluetooth Basics Tutorial
- Bluetooth Low Energy (BLE) Basics Tutorial
- Bluetooth Protocol Stack & Device State Diagram
- Bluetooth Physical Layer Modules
- Bluetooth MAC Layer Overview
- Bluetooth Channel Frequency List
- Bluetooth Network Security
- Bluetooth Low Energy (BLE) Connection Establishment Procedure
- Bluetooth Profiles: HFP, HSP, A2DP, AVRCP, PBAP & MAP
- Bluetooth Mesh Node Types & Protocol Stack Layer Functions
Compare Bluetooth With Other Technologies
- Bluetooth V5.0 Vs. V5.1 Vs. V5.2 Vs. V5.3
- Bluetooth Vs BLE : Key Differences
- Bluetooth Vs UWB Technology : Key Differences
- Bluetooth Vs Wi-Fi Vs UWB
- Comparison Between All Bluetooth Versions from 1.0 to 6.3
Explore Deep Insight Bluetooth Technology
- Bluetooth Error Recovery : ARQ, ACK, NAK
- Bluetooth Bit Stream Processing: HEC, CRC, FEC & More
- Bluetooth Routing: How Devices Know a Packet is for Them
- Bluetooth Flow Control: Understanding GO & STOP Bits
- Bluetooth Power Management: Sniff, Hold & Active Modes
- Bluetooth Packets Decoded: Structure, Types & Routing
- Decoding Bluetooth Packet Types: Control, ACL, SCO & eSCO
