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

Hide Characteristics values before Bound

Hello,

I am going my project with NRG51822 in SDK 11. I build a android app that can connect to my device and access vendor specific service.

My device dedicates one button for BLE connection, and it will trigger limited advertising on button pressed. Android could connect to device in 30 secs after BLE button pressed, and it will perform bond procedure after "Just Works" pairing.

I want characteristics that in vendor specific service can not be accessible before bound, what should I do? Does any example in SDK 11 has the similar procedure that I could refer to?

Regards,

code_hard

Parents
  • Dear run_ar,

    Thank you for reply, allow me to repeat your suggestion on list.

    1. Android pair device with "Just Works". Android perform service discover procedure and can not discover vendor service at that time.
    2. Android perform bond procedure successful, then device add vendor service and send SCCD indication to android.
    3. Android perform service discover procedure again and get updated service list. Now Android could manipulate vendor service.
    4. On Disconnected event occured, device reinitialize SoftDevice module and return to un-updated service and wait for next pair.

    I don't want to misunderstand what you mean.

    Regards,

    code_hard

  • You could use the NONCE method, but there is problem with this on the nRF51, as the read protection hardware has a known bug, which can be exploited to read out any private keys that are in your firmware.

    So if you want anything to be secure you'd need to use the nRF52

    NFC is more secure but currently its not available on iOS as Apple don't allow apps to use it (Apple site security concerns about their Apple Pay system if they allow other Apps to use the NFC, but speculation is that this is a ploy to keep companies like PayPal etc from using the NFC, and reducing Apple Pay's market share)

    So if you have to be secure, and multi platform, I'd suggest you go for nRF52 + public key encryption. Especially if you do the key testing and generation on your server rather than your App and use SSL for all comms. (apps can be hacked to extract keys - e.g. on iOS JailBroken devices)

Reply
  • You could use the NONCE method, but there is problem with this on the nRF51, as the read protection hardware has a known bug, which can be exploited to read out any private keys that are in your firmware.

    So if you want anything to be secure you'd need to use the nRF52

    NFC is more secure but currently its not available on iOS as Apple don't allow apps to use it (Apple site security concerns about their Apple Pay system if they allow other Apps to use the NFC, but speculation is that this is a ploy to keep companies like PayPal etc from using the NFC, and reducing Apple Pay's market share)

    So if you have to be secure, and multi platform, I'd suggest you go for nRF52 + public key encryption. Especially if you do the key testing and generation on your server rather than your App and use SSL for all comms. (apps can be hacked to extract keys - e.g. on iOS JailBroken devices)

Children
No Data
Related