Solución:
Para bluetooth de baja energía (BLE), este sitio explica principalmente el problema: https://blog.bluetooth.com/bluetooth-technology-protecting-your-privacy
Para salvaguardar la privacidad del usuario, los fabricantes pueden hacer uso de una función de Bluetooth Smart conocida como “Privacidad LE”. Esta característica hace que la dirección MAC dentro de los paquetes publicitarios sea reemplazada por un valor aleatorio que cambia en los intervalos de tiempo determinados por el fabricante. Cualquier dispositivo malicioso, colocado a intervalos a lo largo de su ruta de viaje, no podrá determinar que la serie de direcciones MAC diferentes generadas aleatoriamente recibidas de su dispositivo en realidad se relacionen con el mismo dispositivo físico. En realidad, parece una serie de dispositivos diferentes, por lo que no será posible rastrearlo utilizando la dirección MAC anunciada.
En el desbordamiento de la pila, esto podría ser interesante: https://stackoverflow.com/questions/23471364/private-vs-public-addresses-in-bluetooth-low-energy-on-android
Que yo sepa, todos los iPhones actuales implementan esto. Y también muchos dispositivos Android (nuevos que 8.0).
Y sí, esto es solo 24 bits de aleatoriedad. Se puede suponer que esto es suficiente. Dado que su dispositivo cambió su MAC con regularidad, un rastreador tiene un cambio de 1 / 16.777.216 para adivinar cuál es su próximo MAC.
Este (24 bits) no es suficiente para el cifrado, pero este no es el problema a resolver aquí.
Para obtener más información, también puede consultar la sección 5.4.5 de especificaciones del núcleo de bluetooth: https://www.bluetooth.com/specifications/bluetooth-core-specification
También tenga en cuenta que un dispositivo vinculado es capaz de resolver el MAC aleatorio al MAC permanente (público).