Kontakt.io Secure Shuffling is based on a feature that resides on a beacon’s firmware level. Once the shuffling is enabled, beacons are programmed to algorithmically shuffle their Major and Minor values, as well as MAC-address in a pseudorandom manner on daily basis.
Once you shuffle a beacon, the UUID is set to different unique value which doesn’t shuffle. Instead, that UUID value is what lets your application know that this beacon is shuffled and it needs to query the Kontakt.io Proximity API to resolve the device correctly. After the connection is made, the real UUID, Major and Minor combination must to be resolved in order to trigger right action.
Many developers have previously set beacons to trigger apps based on beacon identifiers (UUID, Major, or Minor) that apps were monitoring or ranging, sometimes going so far as to hardcode these values. When Kontakt.io Secure Shuffling is enabled, it’s obvious that this won’t work, as the the App doesn't know right away what to do with detected identifiers until it has resolved the real identifiers via the Proximity SDK. It’s worth reminding you that if you don’t have the SDK implemented, you shouldn’t enable Shuffling on your Beacons, otherwise your app will stop working.
Enabling Kontakt.io Secure Shuffling
Turning on Kontakt.io Secure Shuffling is possible only on beacons with firmware 4.0 or newer. If your devices still have an older version of the firmware, please upgrade them.
- Log in to you Kontakt.io Panel account, find a beacon on which you want to enable Secure Shuffling and go to its settings screen.
- Locate the Security tab and click on it.
- Toggle the Kontakt.io Secure switch (it should turn green) and click on the Save changes button.
- Use Kontakt.io Administration App to synchronize this configuration change.
From now on, roughly every 24 hours, your beacon will automatically change values it broadcasts.
Comments
2 comments
What about app wake up on iOS ? If i enable shuffling, i have to use only UUID to define the region i use to wake up my app, right ?
Hi Sylvain! You're correct – with Kontakt.io Secure Shuffling enabled the only reliable way to define a beacon region is to base it on Proximity UUID alone. Unfortunately iOS does not allow us to integrate our SDK more closely with underlying Core Location API to allow region definition with shuffled Majors and Minors.
Please sign in to leave a comment.