3

I've been pouring over the BT 4.x (LE) spec trying to figure out if this is possible or not (events without pairing/boding).

Does anyone have an insight (and link to the spec preferably) if it's possible?

jh125486
  • 33
  • 1
  • 6
  • 2
    Yes, it is possible. In fact GATT does not require any pairing and/or bonding. Unfortunately I do not remember th exactly spec part where it is described. – Mike Petrichenko Aug 27 '21 at 21:40

1 Answers1

4

As Mike Petrichenko commented, GATT communication is definitely possible without pairing. In fact most GATT servers/clients out there function without the need for pairing/bonding. The only exception is when some characteristics require authentication/authorisation in order to read some data (e.g. a medical device with a Heart rate characteristic).

If you want a specific reference to where this is mentioned in the Bluetooth spec, then I recommend looking at the Core Specification version 5.2, Vol 3, Part C, section 10.2 (LE Security Modes):-

The security requirements of a device, a service or a service request are expressed in terms of a security mode and security level. Each service or service request may have its own security requirement. The device may also have a security requirement. A physical connection between two devices shall operate in only one security mode.

It is then mentioned that LE security mode 1 has the level No security, and many GATT servers/clients work in this level.

You can test this yourself if you have two phones available. You can use the nRF Connect app to run a GATT server on one and a GATT client on the other. You will see that you can browse the GATT table and read data without having to pair.

Below are a few links that contain more information:-

Youssif Saeed
  • 11,789
  • 4
  • 44
  • 72
  • Does that also include GATT Notifications (events)? I'm having a hard time wrapping my head around that as wouldn't the GATT server on the device need to keep a "registered" list of "subscribers"? – jh125486 Aug 28 '21 at 23:11
  • 1
    Yes, it includes both Notifications (which do NOT require an acknowledgment back to the GATT Server) and Indications (which DO require acknowledgments). The way this works is by a device (GATT Client) connecting to another device (GATT Server), finding the Characteristic that supports Notifications, then performing a GATT Write operation to the Client Characteristic Configuration Descriptor to enable Notifications. The GATT Server then will automatically send a Notification back to the GATT Client (if connected) when it wants to and/or when the Characteristic value changes. – Mohammad Afaneh Aug 31 '21 at 00:47