Do czego służy Beacon Bluetooth Low Energy (BLE), i czy da się go wyłączyć bez modyfikacji oprogramowania na przykładzie UniFi UDM-Pro

Do czego służy Beacon Bluetooth Low Energy (BLE), i czy da się go wyłączyć bez modyfikacji oprogramowania na przykładzie UniFi UDM-Pro, 5.0 out of 5 based on 2 ratings
VN:F [1.9.22_1171]
VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)

Temat tej publikacji nie powstał przypadkowo, żyjemy bowiem w czasach Internetu Rzeczy z ang. IoT (Internet of things). Większość współcześnie otaczających nas urządzeń, w tym urządzeń IoT jest wyposażana przez producentów w Beacony – małe nadajniki radiowe wykorzystujące Bluetooth. Beacony w swojej funkcjonalności są podobne do latarni morskiej, które podobnie jak latarnia światło, nieustannie przesyłają sygnały Bluetooth Low Energy (BLE). Po co to robią ? Z mniej lub bardziej oczywistych powodów… Współczesny smartfon z obsługą Bluetooth jest w stanie skanować i wyświetlać te sygnały. Źródłem sygnałów Beacon mogą być zarówno używane przez nas urządzenia (takiej jak słuchawki bezprzewodowe, myszki, kamerki samochodowe, elektryczne szczoteczki do zębów, bezprzewodowe głośniki, sprzęt audio, czy punkty dostępowe WiFi) jak i inne mniej nam oczywiste pod względem obecności urządzenia umieszczane na witrynach sklepowych, samochodach, hulajnogach, punktach informacyjnych, czy miejscach publicznych, których zadaniem może być emisja reklamy i powiadomień związanych z kontekstem który dostarczają. Zastosowań całkiem sporo, zresztą pisaliśmy już o tym tutaj omawiając tracking przedmiotów prawie doskonały.

Różnica pomiędzy klasycznym Bluetooth a Bluetooth Low Energy (BLE), z reguły polega na mocy z jaką pracuje moduł a więc i zasięgiem na jaki dociera transmisja. Z założenia Bluetooth Low Energy przesyła mniej danych (za to w regularnych odstępach) na mniejszym zasięgu, dzięki czemu w trakcie transmisji zużywa znacznie mniej energii.

Beacony są potężnym narzędziem z potencjałem marketingowym, dlatego producenci tak chętnie wyposażają w nie wszystkie możliwe urządzenia. Najprostszym przykładem jest choćby wasza ulubiona sieć handlowa czy restauracja, która często swoim klientom oferuje programy partnerskie w których za pomocą dedykowanej aplikacji można zbierać punkty za zakupy i korzystać z rozmaitych promocji. Na jej przykładzie łatwo zrozumieć jak działają beacony, weźmy za przykład sklep dużej sieci handlowej, w której rozmieszczono beacony. Załóżmy, że kilka z nich znajduje się przy wejściu. Sygnalizatory te przesyłają sygnał w swoim pobliżu, a typowy zasięg beaconów waha się od 20m aż do 300m. Wasz smartfon z zainstalowaną i pracującą w tle aplikacją programu partnerskiego i w zasięgu beaconów również może sygnalizować że znajduje się w pobliżu (podobnie jak ma to np. miejsce w przypadku aplikacji ProteGo Safe czy wykorzystywanych przez Facebook’a lub system operacyjny Android narzędzi pozwalających poprzez zapamiętywanie spotkań śledzić czy w naszym pobliżu nie znajdował się przypadkiem ktoś ze stwierdzonym przypadkiem Covid-19). Każdy smartfon z taką dedykowaną aplikacją wysyła bowiem przy wykorzystaniu bluetooth swoje unikalne ID dołączone do transmitowanego sygnału które w wielu przypadkach trafia później do serwera w chmurze gdzie jest wywoływana konkretna akcją powiązaną z danym identyfikatorem beacon. Identyfikator i kilka wysłanych z nim bajtów można wykorzystać do określenia fizycznej lokalizacji urządzenia, śledzenia klientów lub wywołania na urządzeniu akcji opartej na lokalizacji, takiej jak zameldowanie w mediach społecznościowych lub powiadomienie push. Może to być powiadomienie o wprowadzeniu nowego produktu do oferty, reklama która wyświetli się w trakcie przeglądania internetu, a może to być na przykład formularz opinii czy ankieta dotycząca naszego samopoczucia – jak te pojawiające się na Facebook’u jeśli mieliśmy kontakt z kimś kto mógł być zarażony!  Powiadomienia z aplikacji analizującej obecność beaconów w pobliżu mogą kierować klientów na stronę internetową, formularz, numer telefonu lub cokolwiek, co być może w związku z wizytą w danym miejscu planujemy zrobić. Czy jest to ingerencja w naszą prywatność ? Tak, ale często zgadzamy się na nią bardziej lub mniej świadomie.

Reasumując czym jest Beacon – Beacon to niewielkie urządzenie, lub moduł instalowany wewnątrz innego urządzenia które ma ogromny wpływ na reklamę. Składa się z czterech głównych elementów – małego „komputera” z procesorem ARM, modułu łączności Bluetooth Smart i układu zasilania, którym w przypadku małych beaconów może być bateria, oraz wewnętrznej anteny, która emituje fale elektromagnetyczne o określonej długości i częstotliwości. Tutaj pojawia się jeszcze jedna kwestia, kwestia zakłóceń i interferencji elektromagnetycznych od takich urządzeń – na szczęście z reguły pomijalnej z uwagi na niewielką moc (w przypadku tych bateryjnych). Zdarzają się jednak Beacony większej mocy i o większym zasięgu które pracując w bardziej wymagających środowiskach – np. laboratoryjnych i ekranowanych elektromagnetycznie mogą być problematyczne.  Co wtedy ?

Czy można wyłączyć Beacon którym obdarzył nas w „prezencie” producent ? W wielu przypadkach jest to możliwe, ale technicznie skomplikowane i wymagające sporej wiedzy, a także ingerencji w urządzenie.

Nie było by tego artykułu, gdybyśmy dzięki Case study nie omówili go na konkretnym przykładzie urządzenia które trafiło do naszego lab od jednego z klientów w celu analizy czy da się w nim wyłączyć wspomniany moduł BLE i wyeliminować pojawiające się cyklicznie beacony Bluetooth. Urządzeniem tym było UDM-PRO The Dream Machine Pro dostępne już od dłuższego czasu w naszym B2B, za pośrednictwem którego to też klient je zakupił. Na codzień nie wykonujemy podobnych modyfikacji, ale poniważ temat nas zainteresował, a producnet i jego dział pomocy technicznej Tier 2 nie był w stanie pomóc, postanowiliśmy sprawdzić jak to jest z tymi nowoczesnymi urządzeniami i broadcastem beaconów.

Wyjaśnijmy jeszcze skąd pomysł aby wyłączyć BLE – wspomniany UDM miał docelowo pracować w dość sterylnym elektromagnetycznie pomieszczeniu (ekranowanym elektromagnetycznie) i użytkownik chciał mieć pewność, że podczas pomiarów innych urządzeń radiowych nie ma obcego tła i RFI generowanego przez moduł BLE.

Po szybkiej analizie sprzętowej i programowej urządzenia pojawiło się pytanie jak na stałe (lub tymczasowo) zatrzymać wyzwalanie demona bluetooth podczas uruchamiania urządzenia? A więc po kolei….

Upewniając się, że urządzenie nie jest w stanie fabrycznym, po weryfikacji że w /config/mgmt znajdują się te dwie linie

mgmt.is_default=false
mgmt.is_setup_completed=true

spróbowaliśmy ręcznej modyfikacji pliku system.cfg, w linii ble.status=disabled (która to bazowo ma taką postać ble.status=enabled), kawałek dalej można znaleźć również linię ble.mode=scanner

Skaner ? Jak wyłączyć ten tryb „skanera”?
w / var / log / messages było widać, że BLE jest uruchomiony, co potwierdzała też analiza pasma radiowego, urządzenie było widoczne w eterze.

user.info jądro: [ 3.407225] Bluetooth: sterownik HCI UART wersja 2.3
user.info kernel: [ 3.407228] Bluetooth: HCI UART protokół H4 zarejestrowany
user.info kernel: [ 3.407231] Bluetooth: HCI UART protokół BCSP zarejestrowany
….
user.info kernel: [ 3.749563] Bluetooth: Zainicjowano warstwę gniazda RFCOMM
user.info jądro: [ 3.749582] Bluetooth: RFCOMM wer. 1.11
user.info jądro: [ 3.749589] Bluetooth: BNEP (Emulacja Ethernet) wer. 1.3
user.info kernel: [ 3.749593] Bluetooth: zainicjowano warstwę gniazda BNEP
user.info kernel: [ 3.749597] Bluetooth: HIDP (Human Interface Emulation) wer. 1.2
user.info kernel: [ 3.749600] Bluetooth: zainicjowano warstwę gniazda HIDP

Postanowiliśmy przejrzeć wszystkie katalogi i pliki wewnętrz urządzenia… chwilę to trwało, i wygląda na to, że udało się znaleźć tymczasowe rozwiązanie. Ustawienie „advertise-timeout”: 0 w /var/run/bleHTTPTransport/ubnt-ble-http-transport.json zgodnie z planem wyłączyło transmisję modułu BLE, co zweryfikowaliśmy również pomiarowo.

Tu przy okazji warto również odnieść się do mocy z jaką pracował moduł BLE, w tym konkretnym przypadku zmierzone w pobliżu urządzenia natężenie pola elektromagnetycznego (PEM) wynosiło w PEAK’u (w szczycie) 17,200 uW/m2 (gęstość mocy) czyli po przeliczeniu na składową elektryczną około ~2,5V/m, więc relatywnie nie dużo dla pracujących w bezpośrednim sąsiedztwie urządzeń. Oczywiście w przypadku ekranowanego elektromagnetycznie lab gdzie byłyby realizowane inne pomiary taka wartość i związane z nią możliwe interferencje była by już znacząca. Dlaczego znacząca dla urządzeń ? Choćby dlatego, że zbliżona np. do granicy interwencyjnych poziomów narażenia zarówno w środowisku pracy, jak i w środowisku życia codziennego, stosowanych w medycynie implantów, czy czułego sprzętu medycznego stosowanego do diagnostyki. Zgodnie z wymaganiami normy PN-EN 60601-1-2:2015 (Medyczne urządzenia elektryczne – Część 1–2: Wymagania ogólne dotyczące bezpieczeństwa podstawowego oraz funkcjonowania zasadniczego – Norma uzupełniająca: Zakłócenia elektromagnetyczne – Wymagania i badania) urządzenia te, przystosowane do użytku w środowisku medycznym powinny być odporne na zakłócenia powodowane przez promieniowanie radiofalowe o częstotliwościach z pasma 0,08–2,7 GHz, o poziomie nieprzekraczającym 3 V/m, a urządzenia przeznaczone do użytku w środowisku domowym – odporne na zakłócenia do poziomu 10 V/m. Jako ciekawostkę należy tu też dodać, że oba wspomniane poziomy dla urządzeń medycznych leżały poniżej obowiązującego do niedawna limitu ekspozycji w miejscach dostępnych dla ludności w Polsce wynoszącego dotychczas 7 V/m (0.1W/m2), który to poziom wraz z nowymi normami dot. pól elektromagnetycznych które weszły w życie 1 stycznia 2020 r. w Rozporządzeniu Ministerstwa Zdrowia obecnie dopuszczają aż 61V/m (10W/m2) !!. Gdy takich urządzeń w pomieszczeniu znajdzie się więcej, i dojdzie do tego jeszcze oddziaływanie sygnałów pochodzących z zewnętrznych systemów telekomunikacyjnych ich ew. oddziaływanie pomiędzy sobą zaczyna mieć znaczenie.

To tyle, jeśli chodzi o teorię i normy. Wróćmy jednak do samego urządzenia i studium tego konkretnego przypadku.

Czy istnieją inne, bardziej „eleganckie” metody zarządzania tym modułem w tym konkretnym urządzeniu ? Tego nie wiemy, ale na pewno w związku z wciąż rosnącym zainteresowaniem tą tematyką przyjrzymy mu się bliżej w przyszłości, tym bardziej, że nasz „niepożądany” moduł BLE uparcie wraca po restarcie, więc jest to raczej tymczasowe rozwiązanie… Na dodatek wraz  nowszymi wersjami oprogramowania zmieniła się lokalizacja plików które trzeba edytować, w nowych wersjach oprogramowania plik trafił bowiem tutaj /var/run/ubnt-ble-http-transport/config.json Tutaj podobnie jak w poprzednim przypadku należało wyedytować plik json z wartością „advertise-timeout”: 0, a następnie ręcznie znaleźć PID przez SSH ps -e | grep ubnt-ble i zabić proces używający bleHTTPTransport PID. Proces jest restartowany po zabiciu przez system operacyjny urządzenia, a po załadowaniu nowej konfiguracji z pliku json tymczasowo wyłącza transmisję beaconów BLE (aż do ponownego restartu). Po restarcie wartość -1 wraca w „advertise-timeout”. Na razie jednak nie szukaliśmy trwalszego rozwiązania, bo to okazało się wystarczające. Może warto gdzie indziej zajrzeć i poszukać ? Może mieliście podobne doświadczenia z BLE i transmisją beaconów w innych urządzeniach , jeśli tak podzielcie się z nami 🙂

Najbardziej zastanawiające są obszary ich potencjalnego zastosowania które wydaje się praktycznie nie ograniczone 🙂 oraz to dlaczego producenci nie pozostawiają nam konsumentom możliwości wyłączenia pewnych funkcjonalności, zwłaszcza tych narażających nas i nasze czułe urządzenia na niekoniecznie pożądaną przez nas w pewnych przypadkach ekspozycję PEM, i związane z nią interferencje które mogą zaburzać pracę „czulszych” urządzeń elektronicznych.

Temat jak najbardziej na czasie, jeśli przyjrzeć się wciąż rosnącej ilości urządzeń bezprzewodowych, zarówno tych na ziemi …

… jak i tych tworzących rozbudowane konstelacje (jak system Starlink) nad naszymi głowami.

VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)
VN:F [1.9.22_1171]

O redaktor

Od 2008 współtwórca WeberSystems, firmy której początki sięgają sierpnia roku 2007 kiedy to powstały plany jej utworzenia, oraz powstawała nasza pierwsza testowa wersja witryny internetowej. W tym roku powstała również nasza nazwa handlowa "WeberSystems".

Ten wpis został opublikowany w kategorii Telekomunikacja i oznaczony tagami , , , , , , , , , . Dodaj zakładkę do bezpośredniego odnośnika.

Możliwość komentowania jest wyłączona.