[Little Brosers] Starting The Conversation

Last week we saw the hierarchy of our network, as well as the initial connection stage. Since then I’ve continued to work on the communication protocol over BLE between the drops and the mobile app.


Our authentication protocol is there to guarantee two things: First, that the smartphone belongs to the Little Brosers network (and to the specific network in particular), and second that the drop is indeed a real drop of the network. These verifications will be done using a challenge-response type of protocol.

However, over BLE, the most commonly used protocol is Generic Attribute Profile (GATT), which defines services that group characteristics which essentially are value you can read or write over Bluetooth.

The GATT server will be running on the drop after the connection has been initiated by the phone. After that, the authentication service will be activated, and it will be after passing this stage that the rest of the services will become available. To implement this double authentication, I thought about adding four characteristics to the server:

  • User_challenge (read)
  • User_response (write)
  • Drop_challenge (write)
  • Drop_response (read)

Note that the read/write permissions are seen from the smartphone’s side of the interaction.

So after all each party gives a challenge to the other, and waits for their response. If the response is incorrect the connection is terminated. However, if both pass this phase, then they can proceed to the next stage, which could be more verification steps or simply the start of the message exchange.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>




This site uses Akismet to reduce spam. Learn how your comment data is processed.