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

Security feature in Bluetooth Protocol of nrf 8001

Hi

I have a module of nrf 8001 and i am successfully communicating with nrf 8001 low energy bluetooth chip. I want to know is there any security feature defined in the protocol of this chip. As i want that whenever a user wants to connect to peripheral through iPhone it must ask for a password before connecting like the normal bluetooth does. Is there any provision for this?

And can i pair any peripheral to iPhone like we do in normal bluetooth? And if it is then how?

Thanks

Parents
  • You can use a passkey with the nRF8001, as defined by the Core Specification. To do this, you must make sure to set the I/O capabilities to either have a Display or a Keyboard in nRFgo Studio, and then make sure that your application responds to the DisplayKeyEvent or the KeyRequestEvent.

    You can take a look at the Core Specification, Volume 3, Part H, section 2.3.5.1 to see what kind of authentication method is used, based on the I/O capabilities of the devices bonding.

    Beware that even when using a passkey, it's trivial for an eavesdropper listening in on the bonding to pick up the data of the packets. However, any eavesdropper that does not listen in on the bonding process will not be able to read data later, no matter if a passkey is used or not. A passkey only protects against active man-in-the-middle attacks.

    Edit: Clarify in which specification.

  • For your application, I'd recommend you to use bonding. Once your device is initially bonded with a Central, you'll receive the Bond Status Event. After this, on each reconnection to this Central, encryption will automatically started, and once it's finished you'll get the Pipe Status Event. I'd therefore recommend you to use a timeout on receiving this event after connecting, and disconnect manually, from the nRF8001 side, if you don't get this event within a couple of seconds after connection. You can do a disconnect with the Disconnect command, as is explained below.

Reply
  • For your application, I'd recommend you to use bonding. Once your device is initially bonded with a Central, you'll receive the Bond Status Event. After this, on each reconnection to this Central, encryption will automatically started, and once it's finished you'll get the Pipe Status Event. I'd therefore recommend you to use a timeout on receiving this event after connecting, and disconnect manually, from the nRF8001 side, if you don't get this event within a couple of seconds after connection. You can do a disconnect with the Disconnect command, as is explained below.

Children
No Data
Related