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

Unique Id of a device needed

Hi​,

I am looking for the possibility of getting an unforgeable unique ID of a bonded device within a BLE connection. Using nRF51422 with SD310 for the peripheral, any smartphone or tablet for the central is intended.

After a peripheral has been bonded to a central device, the peripheral will offer some data. But offering data should only happen, when the central device has informed the peripheral about his identity. This ID information must not be stored in the centrals application because it is not possible for us to secure this ID. So it is necessary to use some kind of device identifier, which is coupled to the hardware, but not changeable by users.

The intention is that there are few specified central devices and thousands of peripherals. All these peripherals are connectable to any central and give some information. But for the few specified centrals they will grant access to deeper information. Which token of the BLE connection could I use?

First I wanted to use the MAC address but it did not work because it could change. The difficulty is to find somewhat which is not able to be manipulated by the centrals application. Even if the centrals application is copied to another central, the unique ID should be useless. Therefore I want to use some hardware-coupled ble specific token.

I would appreciate if someone can help me! Thanks a lot.

Best Regards, Marko

Parents
  • Hi,

    There have been some questions about this earlier:

    devzone.nordicsemi.com/.../

    devzone.nordicsemi.com/.../

    The take-away is that there are no identifiers that are guaranteed to be unique in the chip's factory registry. They are randomly generated however, so it is quite unlikely that they will be re-used. DEVICEID, DEVICEADDR, ER and IR are all randomly generated (except 2 bytes of DEVICEADDR for the address type) and together these could make do as a likely unique identifier.

    These values are also not possible to change.

  • I'm still not understanding exactly what you want to accomplish. Are you trying to recognize a device that has a pre-shared secret, written directly into the app - or are you trying to just make sure you are still connecting to the same device again? What about using normal BLE security and exchanging a long-term key after pairing? Then the LTK can be this "secret", and you would need to sniff the connection during the initial pairing to be able to copy it. What about that solution would not fit your solution?

    Sorry if I'm misunderstanding, but what you are asking for directly is not possible to accomplish. Everything can be forged by a peer, so I'm looking for alternative ways to solve your problem.

Reply
  • I'm still not understanding exactly what you want to accomplish. Are you trying to recognize a device that has a pre-shared secret, written directly into the app - or are you trying to just make sure you are still connecting to the same device again? What about using normal BLE security and exchanging a long-term key after pairing? Then the LTK can be this "secret", and you would need to sniff the connection during the initial pairing to be able to copy it. What about that solution would not fit your solution?

    Sorry if I'm misunderstanding, but what you are asking for directly is not possible to accomplish. Everything can be forged by a peer, so I'm looking for alternative ways to solve your problem.

Children
No Data
Related