OK so pre shared key is my best option I guess. What I don't understand is, if is possible to have pre-shared key, that is accesible through the cloud, why I cannot generate a key on the cloud and access it doing a request, from both the app and the device (through GPRS).
Maybe is not a OOB pairing in the strict Bluetooth protocol definition of the word, but what I want to do is encrypt the BLE communication with a key that is not exchange via Bluetooth. 2016-12-02 11:59 GMT+01:00 Tim Hutt <[email protected]>: > On 2 Dec 2016 10:52 a.m., "Rodrigo Lorenzo Leal" <[email protected]> > wrote: > > > > Tim. > > > > Thanks for the reply! So there's no way for the BLE library on iOS and > > Android to get the key from an external source? (like a server request) > and > > use that? > > Correct. > > > Also, how does an in house developed crypto will work and how could be > > implemented? > > With difficulty! The simplest way is to use a Notify characteristic and a > Write Without Response characteristic to form a normal TCP-like channel > (there are supposed to be native Channel-Oriented Connections coming but I > wouldn't hold my breath). Then you can use any crypto, e.g. (D)TLS or QUIC > or whatever. Maybe use DTLS as it is more designed for this sort of thing. > For key exchange I would use ECJPAKE. > > All of that uses a ton of flash and ram so it may not be possible on a > small micro. > -- Rodrigo Lorenzo Leal
