0
votes

It is my understanding that a BLE advertising packet can be identified as an iBeacon advertising packet by the fact that the PDU is of type ADV_NOCONN_IND and that the PDU payload consists of 2 Advertising Data Structures - the first of type Flags and the second of type Manufacturer Specific. Furthermore the data in the Manufacturer Specific AD structure is of length 26, begins with a 2 byte Manufacturer ID, followed by a 0x02 that indicates that the device is an iBeacon, followed by the remainder of the iBeacon data.

It seems to me that a random BLE advertisement packet could just happen to have the same sequence of values as those which distinguish an iBeacon advertising packet. Is this considered to be so unlikely as to be of no concern?

1

1 Answers

0
votes

Incorrect matching of advertisements as beacons is exceedingly rare for two reasons:

  1. A specific byte sequence within the manufacturer advertisement PDU must match. For manufacturer beacon types like AltBeacon, this is two bytes, not one. So the chances of a random match are 65536 to 1.

  2. A specific manufacturer code is typically required as well. Again, in the case of AltBeacon, the Radius Networks identifier of 0x0118 is expected. The chances of a random match here is also 65536 to 1.

Combine the two, and the chances of a random match are 4,294,967,296 to 1. And manufacturer advertisements aren't random like white noise -- people have to design them to send out a specific byte sequence. And the chances of somebody designing something with another company's manufacturer code (something you probably shouldn't do without permission) and two matching bytes as 4 billion to one seems like an unlikely scenario.

Note: While this answer mentions details for AltBeacon, which is an open source specification, it applies to other major proprietary beacons that use manufacturer advertisements that work the same way.