企業、政府などは、同じMACアドレスを時空間で確認することにより、BluetoothおよびWiFiネットワークスキャンを受動的に追跡できます( 公共スペースでのBluetooth/WiFi ID追跡-検出方法 )。以降 Android 8. :
Androidデバイスは、現在ネットワークに関連付けられていないが、新しいネットワークをプローブするときにランダムなMACアドレスを使用します。
Android 9では、開発者向けオプションを有効にして(デフォルトでは無効)、デバイスがWi-Fiネットワークに接続するときにランダムなMACアドレスを使用するようにできます。 SSIDごとに異なるランダム化されたMACアドレスが使用されます。
MACのランダム化により、リスナーがMACアドレスを使用してデバイスアクティビティの履歴を作成できなくなり、ユーザーのプライバシーが向上します。
Bluetooth MACアドレスに同様の何かを実装できますか?起動時に実装されますか、それともこれらのアドレスは定期的にローテーションしますか?
Bluetooth低エネルギー(BLE)の場合、このサイトは主に問題を説明しています: https://blog.bluetooth.com/bluetooth-technology-protecting-your-privacy
ユーザーのプライバシーを保護するために、メーカーは「LEプライバシー」と呼ばれるBluetoothスマート機能を利用できます。この機能により、アドバタイズパケット内のMACアドレスが、製造元によって決定されたタイミング間隔で変化するランダムな値に置き換えられます。移動ルートに沿って間隔を置いて配置された悪意のあるデバイスは、デバイスから受信したランダムに生成された一連の異なるMACアドレスが実際に同じ物理デバイスに関連していることを判別できません。実際には一連の異なるデバイスのように見えるため、アドバタイズされたMACアドレスを使用して追跡することはできません。
スタックオーバーフローでこれは興味深いかもしれません: https://stackoverflow.com/questions/23471364/private-vs-public-addresses-in-bluetooth-low-energy-on-Android
私の知る限りでは、現在のすべてのiPhoneがこれを実装しています。また、Android(8.0より新しい))デバイスも多数あります。
そして、はい、これは24ビットのランダム性にすぎません。これで十分であると想定できます。デバイスがMACを定期的に変更したため、スニファーは次のMACを推測するために1/16.777.216に変更されています。
これ(24ビット)では暗号化には不十分ですが、ここで解決する問題ではありません。
詳細については、Bluetoothコア仕様のセクション5.4.5もご覧ください。 https://www.bluetooth.com/specifications/bluetooth-core-specification
また、結合されたデバイスは、ランダムMACを永続的な(パブリック)MACに解決できることに注意してください。
これは既にBluetooth Low Energy(BLE)に実装されています。 Androidでトランスミッターが再起動されるたびに、MACは最後の3バイトに対してランダム化されます。