Kontakt.io Secure Shuffling

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.

NOTE Is it possible to store shuffled values locally on a phone, and as a result not require a live connection to the Kontakt.io Proximity API every single time to successfully resolve a shuffled device’s true Major, Minor, and MAC address.

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.

WARNING Shuffled beacons broadcast a pseudorandomly generated set of Major and Minor values (iBeacon) or an Instance ID (Eddystone). Please make sure your app is prepared to handle this functionality before enabling it.
  1. Log in to you Kontakt.io Proximity Web Panel account, find a beacon on which you want to enable Secure Shuffling and go to its settings screen.
  2. Locate the Security tab and click on it.
  3. Toggle the Kontakt.io Secure switch (it should turn green) and click on the Save changes button.
  4. 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.

- 2017-10-25 16:50:16 UTC
Was this article helpful?
1 out of 1 found this helpful


  • Avatar
    Sylvain Briat

    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 ?

  • Avatar
    Adrian Ziobro

    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.

This site uses cookies. By continuing to browse the site you are agreeing to our use of cookies. Review our cookies information for more details.