2017-01-17 23 views
0

私が知っている限り、今日のアンドロイド携帯電話は、BLEビーコンとして機能することができます(この機能は通常ほとんどのデバイスで無効になっています)。アンドロイドデバイスがビーコンとして動作し、検出可能な場合、そのMACアドレスはランダム化されていますか?デバイスが検出可能なときに実際のMAC IDを表示しないことはありますか?Macアドレスランダム化Bluetooth LEブロードキャスト

答えて

1

5.0以降のほとんどの新しいAndroidデバイスは、Bluetooth LEペリフェラルモードをサポートしているため、ビーコンとして送信できます。この機能はAndroid 5.0以降に搭載されていますが、一部のメーカーでは一部のモデル(特に旧モデル)のサポートを無効にすることを選択しています。 http://altbeacon.github.io/android-beacon-library/beacon-transmitter-devices.html

この機能がイネーブルになっていると、MACアドレスは送信中にランダム化されず、送信にはデバイスの実際のBluetooth MACアドレスが含まれているため、この機能はサポートされていません。このMACアドレスを読み取るデバイスを受信します。

EDIT:上記の記述が間違っていることが判明しました。送信元を再起動するたびにMACアドレスがランダム化されます。あなたはaを見ることができますproof of this here.

これを変更するためのメカニズムはありません。

Androidでスキャンすると、送信からの実際のMACアドレスが返されます。これを証明するため、iOS 8.3搭載のiPod Touch 5th Generationでロケートアプリを使用してiOSビーコン送信機を起動し、LinuxデバイスとAndroid 6.0搭載のNexus 5Xの両方で同時にデバイスをスキャンしました:

Androidアンドロイド6.0でネクサス5倍にビーコンアプリケーションを見つけます。 MACアドレス:60:35:48:79:D8:08

のLinuxのbluez sudo hcitool lescan: MACアドレス:60:35:4B:79:D8:0B

ご覧のとおり、両方のデバイスで同じMACアドレスが読み取られ、AndroidまたはLinuxのスキャンで偽装されていないことが証明されます。

つ以上のノート:セッティングでのiOS 8.3とiPodタッチで報告

  • BluetoothのMACアドレス - >一般 - > Bluetoothは2Cをレポート:FF:EE:XX:XX:XX(最後の3ブランクアウトされたオクテット)は送信されたアドレスとは異なります。これは、iOSが送信時にMACアドレスをランダム化することを示しています。

  • LinuxとAndroidで検出されたBluetooth MACアドレスは、iOSデバイスで広告を停止して再起動しても変更されないため、iOSは再起動後も同じランダム化されたアドレスを保持します。 iOSデバイスを再起動して送信を再開した後、LinuxとAndroidが異なるMACアドレス46:59:C9:CB:0C:D5を検出しました。これは、無作為に送信されたMACが、iOSでの再起動を経た変更であることを示しています。

+0

スキャンは、MACアドレスおよび識別を偽装(オープンネットワークまたはEddystone Bluetoothのビーコンを見つけるための)..私はマシュマロので、AndroidはバックグラウンドのWi-FiおよびBluetoothスキャンを行うときことを、いくつかの記事で読んだことが明確にするためのおかげで、無作為化された値として。 それはスキャン中にMACアドレスをランダム化しますが、検出可能な場合はMACアドレスをランダム化しません。 もう1つの質問 - 私はBluetooth LEのプライバシー機能(https://blog.bluetooth。com/bluetooth-technology-privacy-your-privacy)は、MACアドレスのランダム化がハードウェア自体で行われるため、これはペリフェラルでのみ有効になっていますか? – clearb

+0

MACランダム化のためのBluetoothチップセットのサポートは一般的なハードウェア機能ですが、APIバインディングがないため、Androidでこれを有効にする方法はありません。はい、Android 6.0の場合、BLE APIは検出されたパケットの偽装MACアドレスを返します(Androidは内部アドレスを実際のアドレスにマップします)。これは純粋に領収書のマッピングです。 iOSのCoreBluetooth APIも同様の機能を果たします。 Android 5.xではこれが行われないため、実際のMACを読み取ることができます。デバイススキャン中に実際のMACを返すWindows APIとLinux APIについても同様です。 – davidgyoung

+0

「Android 6.0以降、BLE APIは検出されたパケットの偽装MACアドレスを返します(Androidは内部アドレスを実際のアドレスにマップします)」.... So偽装は、ブルートゥースが広告をしていない間にスキャンしている間にのみ発生しますか? IOSと同じですか? http://stackoverflow.com/questions/28602672/android-5-static-bluetooth-mac-address-for-ble-advertising この質問は反対に向いているようです...私の質問が素朴であれば申し訳ありません – clearb

関連する問題