We have a requirement for the ble-peripheral device that we are designing to be able to be "registered" to a user through their iphone. If that user has multiple iOS devices that they've logged in to they should be able to talk to our ble-peripheral device without having to re-register.
We've tried designing our own registration process, to meet this requirement but I don't love anything that we've come up with so far.
I'm wondering if standard BLE security could help us meet this requirement with the normal pairing/bonding system. Specifically:
1. During manufacturing each ble-peripheral device is given a TK that is saved in a database.
2. When user registers we perform an OOB bond using the TK retrieved from the database for the iOS device, peripheral will remember what it was from manufacturing. (ideally using LE Secure Connection, although LE legacy isn't completely off the table)
3. iOS device saves LTK (maybe EDIV & Random Value as well) to a database.
4. Any other iOS device in which the user logs in would be able to use the LTK to talk to the device as if it was already bonded.
Would step 4 work? Could the LTK be used by two different centrals to connect to a bonded peripheral? Does anyone know if iOS would allow an LTK retrieved from a database to be loaded and used?
We are using an nRF52840, SDK 15.3, SD 140