Door Koen Vervloesem

Freelanceredacteur

Bluetooth Low Energy voor domotica

Lage drempel en breed ondersteund

13-03-2021 • 06:00

47

Singlepage-opmaak

Domoticaproducten met BLE en beveiliging

Heel wat BLE-producten hebben een bijbehorende mobiele app voor Android en/of iOS. Android heeft BLE-api’s sinds versie 4.3 van juli 2012 en iOS sinds versie 5 van oktober 2011. Die app neemt dan de rol van central op zich om met het product te communiceren, wat een vertrouwde interface voor gebruikers is. Vaak kan de app ook data die het van een BLE-sensor leest naar een clouddienst van de fabrikant sturen voor gemakkelijkere toegang later.

Hartslagmeters, fitnesstrackers, bluetoothtrackers en -beacons zijn allemaal al ingeburgerd. Er zijn ook heel wat ledstrips en ledlampen met BLE te vinden. Philips Hue, dat van Zigbee gebruikmaakt, heeft ook lampen die je op je smartphone via BLE kunt bedienen. Zo heb je geen Hue-bridge nodig.

Opvallend is dat BLE vanwege van zijn gebruiksgemak vaak wordt ingezet voor on-boarding van apparaten in andere netwerken. Zo introduceerde Thread 1.2 uit 2019 de mogelijkheid om via BLE met een smartphone een Thread-netwerk aan te sturen. En de wifilampen van WiZ gebruiken BLE om ze nog eenvoudiger te koppelen. Zo zie je dat zelfs concurrerende technologieën BLE omarmen, omdat ze de voordelen ervan niet kunnen negeren.

Thread Bluetooth
In Thread 1.2 kun je via BLE op je smartphone het Thread-netwerk aansturen. Bron: Thread Group

Beveiliging

De beveiliging van BLE ligt vaak onder vuur. Doorgaans gaat het om een zwakke implementatie in het product van het uitwisselen van sleutelmateriaal bij de eerste keer dat een verbinding wordt gemaakt. Het gaat hier om de pairingmethode. BLE Legacy-verbindingen (in BLE 4.0 en 4.1) zijn standaard kwetsbaar voor afluisteren en man-in-the-middleaanvallen. Er kan wel een out-of-band-pairingmethode gekozen worden; beide apparaten wisselen hun sleutelmateriaal dan via een andere weg dan BLE uit. Als die weg veilig is, is dit de veiligste methode voor BLE Legacy-verbindingen.

Sinds BLE 4.2 zijn ook BLE Secure-verbindingen mogelijk. Dan gebeurt het uitwisselen van sleutelmateriaal met het protocol Elliptic Curve Diffie Hellman, waardoor de gedeelde geheime sleutel niet af te luisteren is. Een extra pairingmethode, numeric comparison, genereert op het einde op beide apparaten een getal van zes cijfers om de apparaten te authenticeren. Door na te kijken of die overeenkomen, kun je verifiëren of er geen man-in-the-middleaanval aan de gang is. BLE biedt dus alle functionaliteit voor veilige verbindingen, maar veel apparaten hebben geen manier om cijfers te tonen, en pairing gebeurt in de praktijk vaak onveilig.

Specificaties

Een belangrijk voordeel van Bluetooth Low Energy is dat de documenten met officiële specificaties gratis beschikbaar zijn. Je kunt de specificaties gewoon downloaden van de website van de Bluetooth Special Interest Group, die toezicht houdt op de ontwikkeling van de bluetoothstandaarden.

Een belangrijk voordeel van BLE is dat de documenten met officiële specificaties gratis beschikbaar zijnDe Bluetooth SIG heeft heel wat services en characteristics gedefinieerd met hun uuid en naam. Daarom kan een app als nRF Connect namen zoals Heart Rate tonen in plaats van alleen 0x180D. Elke service heeft een eigen specificatiedocument. Daarin worden de characteristics van de service en hun gedrag beschreven. De uuid’s van die service en characteristics moet je weer in een ander document zoeken: het 16-bit UUID Numbers Document. Andere getallen en codes, zoals de company identifiers die worden gebruikt in advertisements met manufacturerdata, vind je op de pagina Assigned Numbers.

Profielen

In de specificaties van BLE vind je ook profielen, die elk in een eigen document zijn uitgelegd. Een BLE-profiel beschrijft het gedrag van zowel client als server in een specifiek gebruiksscenario. Zo heb je profielen als blood pressure, environmental sensing, human interface device, heart rate en weight scale. Een bloeddrukmeter, temperatuursensor, toetsenbord, hartslagmeter of weegschaal implementeert de serverrol van het relevante profiel, terwijl de app van de fabrikant de clientkant implementeert.

Als je wilt uitzoeken hoe je zo’n apparaat kunt aansturen in je domoticasysteem, komt het er dus op aan om de specificatiedocumenten van het desbetreffende profiel en de gebruikte services te raadplegen, samen met de nodige uuid’s. Je moet dan goed kijken wat het profiel van de clientrol verwacht, bijvoorbeeld op het gebied van verbindingsparameters. Dit gedrag kun je dan in je favoriete programmeertaal omzetten. Voor de populairste profielen vind je talloze opensourceprojecten die dat al hebben voorgedaan.