This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF51822 Identification based on device address

Hi Nordic Team,

Please I would like to ask how can I globally identify my device (nRF51822) based on its address?

Assuming that:

  1. The address type of nRF51 is by default of the type "private random static", meaning that the address will never change (Please correct me if I'm wrong!).

  2. Using a "public address" (as a unique identifier) would not be possible without buying a MAC address from IEEE (and at this production phase we don't plan to purchase a public MAC address!)

  3. The use of "private random Non-resolvable" address (which is a random number that changes every few minutes) could not be used to globally identify our device.

Therefore, I want to know if we can globally identify our device using the "private random Resolvable" address type? and if so, do you provide any example on how to do implement that?

Otherwise, is there an other way for identification?

Many thanks in advance,

Ayman.

Parents
  • A resolvable private address can be resolved using the IRK. However the IRK is normally exchanged as part of the bonding process. But it would probably be possible to get this as part of the production process if you choose to go that way. Another option would be to identify the device based on advertisement data., e.gg. you could advertise an id as manufacturer specific data.

    Please note that security whise it's fairly easy to copy a device address or advertisement data to impersonate another device, so identification between a central an peripheral should be done based on the LTK exchange while bonding. But since this is generated during the bonding process you cannot use it as a global identifier.

    Another issue is what kind of central you are using, as an example iOS doesn't forward the device address to the application so it's not possible to use this for identification. But manufacturer specific data could be used.

Reply
  • A resolvable private address can be resolved using the IRK. However the IRK is normally exchanged as part of the bonding process. But it would probably be possible to get this as part of the production process if you choose to go that way. Another option would be to identify the device based on advertisement data., e.gg. you could advertise an id as manufacturer specific data.

    Please note that security whise it's fairly easy to copy a device address or advertisement data to impersonate another device, so identification between a central an peripheral should be done based on the LTK exchange while bonding. But since this is generated during the bonding process you cannot use it as a global identifier.

    Another issue is what kind of central you are using, as an example iOS doesn't forward the device address to the application so it's not possible to use this for identification. But manufacturer specific data could be used.

Children
Related