Door Koen Vervloesem

Freelanceredacteur

Bluetooth Low Energy voor domotica

Lage drempel en breed ondersteund

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.

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.

Dit artikel kun je gratis lezen zonder adblocker

Alle content op Tweakers is gratis voor iedereen toegankelijk. Het enige dat we van je vragen is dat je de advertenties niet blokkeert, zodat we de inkomsten hebben om in Tweakers te blijven investeren. Je hoeft hierbij niet bang te zijn dat je privacy of veiligheid in het geding komt, want ons advertentiesysteem werkt volledig zonder thirdpartytracking.

Bekijk onze uitleg hoe je voor Tweakers een uitzondering kunt maken in je adblocker.

Ben je abonnee? Log dan in.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee