Bluetooth gotowy na IoT

| Technika

Pod koniec minionego roku upubliczniono najnowszą wersję (4.2) specyfikacji Bluetooth Low Energy (BLE). W porównaniu z wcześniejszymi wprowadzono w niej zmiany, których celem jest zwiększenie prędkości transmisji, poprawa jej bezpieczeństwa oraz przygotowanie się do wdrożenia idei IoT (Internet of Things). Przedstawiamy je w artykule, poprzedzając ich opis charakterystyką wybranych aspektów poprzednich wersji BLE.

Bluetooth gotowy na IoT

Podobnie jak w sieciach Bluetooth BR/EDR (Basic Rate / Extended Data Rate), węzły w sieci Bluetooth Low Energy komunikują się w nielicencjonowanym paśmie częstotliwości 2,4 GHz, które podzielono na czterdzieści kanałów o szerokości 2 MHz. Aby ograniczyć wpływ zjawisk (zaników selektywnych, wielodrogowości), które pogarszają jakość sygnału, w BLE stosuje się metodę przełączania częstotliwości (frequency hopping). Polega ona na transmisji informacji w każdym z kanałów przez określony czas, na przemian.

Typy węzłów w sieciach BLE

Rys. 1. W transmisji rozgłoszeniowej uczestniczą węzły typu advertiser i scanners

Metodą modulacji w Bluetooth LE jest GFSK (Gaussian Frequency Shift Keying) - kluczowanie częstotliwości z gaussowskim kształtowaniem sygnału. Indeks modulacji ma wartość od 0,45 do 0,55, trochę więcej niż w "zwykłym" Bluetooth (0,35). Zwiększa to efektywność widmową oraz poprawia niezawodność transmisji. Czułość odbiornika powinna wynosić przynajmniej -70 dBm. Teoretyczna prędkość przesyłu danych w sieciach Bluetooth Low Energy to 1 Mb/s.

W BLE korzysta się z techniki wielodostępu do medium transmisyjnego z podziałem czasowym TDMA (Time Division Multiple Access). 37 kanałów jest używanych do transmisji danych. 3 to kanały rozgłoszeniowe (advertising), z których korzysta się przy wyszukiwaniu innych węzłów, nawiązywaniu połączenia oraz transmisji rozgłoszeniowej.

By nawiązać łączność, węzeł (advertiser) ogłasza swoją do niej gotowość. Węzły (scanners), które odbierają ten komunikat, w odpowiedzi przesyłają wiadomość z żądaniem połączenia (connection request) - rysunek 1. Zawiera ona wszystkie niezbędne informacje, włącznie z sekwencją przełączania częstotliwości.

Jak powstaje pikosieć?

Rys. 2. Po nawiązaniu połączenia węzły scanners stają się węzłami master, a te typu advertiser węzłami slave

W sieci BLE wyróżnia się węzły typu master (wcześniejsze scanners) oraz slave (wcześniejsze advertiser) - rysunek 2. Te pierwsze mogą jednocześnie komunikować się z większą liczbą węzłów slave, natomiast każdy z tych ostatnich może nawiązać połączenie naraz tylko z jednym węzłem master. W taki sposób realizowana jest pikosieć w topologii gwiazdy. Urządzenie może należeć tylko do jednej w ten sposób zorganizowanej sieci.

Transmisję rozpoczyna węzeł master. Jeżeli węzeł slave odbierze nadany pakiet, powinien wysłać informację zwrotną z potwierdzeniem odbioru. Urządzenie pełniące funkcję mastera nie musi na nią odpowiadać. Jeśli węzeł master ani węzeł slave nie mają więcej pakietów do przesłania, proces ich wymiany (connection event) zostaje zakończony. Wcześniej, w dowolnym momencie, na przykład w razie odebrania pakietu z błędami, połączenie może przerwać węzeł master albo slave. Na rysunku 3 przedstawiono strukturę pakietu w sieci BLE.

Struktura pakietu

Rys. 3. Pakiet w sieci BLE

Wyróżnia się w nim: preambułę, pole Access Address, nagłówek PDU, dane PDU (payload) i pole CRC. To drugie zawiera informację, na podstawie której ignorowane są pakiety z innych łączy, do przesyłu których wykorzystywany jest ten sam kanał fizyczny. Na podstawie danych w polu Access Address rozróżnia się również, czy pakiet został nadany w ramach transmisji rozgłoszeniowej, czy w czasie połączenia. W pierwszym przypadku jest to wartość stała, natomiast w aktywnych łączach generowana losowo.

W nagłówku PDU pakietu rozgłoszeniowego znajdują się m.in. informacje o typie danych oraz ich ilości. W pakiecie danych w nagłówku PDU można natomiast wyróżnić pola: LLID (Logical Link Identifier), NESN (Next Expected Sequence Number), SN (Sequence Number), MD (More Data), RFU (Reserved for Future Use) oraz informację o długości pakietu.

Mechanizm parowania węzłów w sieci Bluetooth Low Energy nieco zmieniono w porównaniu do tego, jaki obowiązuje w sieciach Bluetooth BR / EDR. W tych pierwszych możliwe są trzy tryby: Just Works, Out of Band oraz Passkey Entry. W Bluetooth BR / EDR jest jeszcze jeden: Numeric Comparison.

Bezpieczeństwo w sieciach BLE

Z tego ostatniego korzysta się wtedy, gdy na obu urządzeniach można wyświetlić sześciocyfrowy numer oraz w obu użytkownik ma możliwość potwierdzenia / odrzucenia zmiany. Przykładem jest para: telefon komórkowy i komputer. W takim przypadku użytkownikowi na obu wyświetlaczach prezentuje się numer (od 000000 do 999999). Gdy potwierdzi on, że liczby te są jednakowe, węzły są sparowane. Metoda ta sprawdza się w przypadku urządzeń, które nie mają unikalnych nazw oraz zapewnia ochronę przed atakiem typu MITM (Man in the Middle).

Tryb parowania Just Works przewidziany jest dla sytuacji, w której przynajmniej jedno z urządzeń nie ma ekranu, na którym można by wyświetlić sześciocyfrowy numer, ani nie ma klawiatury, która pozwala na jego wprowadzenie. Przykładem jest para: telefon komórkowy i słuchawki.

W takim przypadku automatycznie przyjmuje się, że numery identyfikujące węzły są identyczne i paruje się je. Mechanizm Just Works zapewnia taki sam poziom zabezpieczenia przed pasywnym podsłuchem jak Numeric Comparison, ale nie chroni przed atakiem MITM (Man in the Middle).

Metody parowania w BLE

W trybie Out of Band do parowania urządzeń wykorzystywany jest inny interfejs komunikacyjny dostępny w obu z nich. Przykładem jest NFC (Near Field Communication).

Mechanizm parowania Passkey Entry jest z kolei przewidziany dla sytuacji, w której w jednym z urządzeń użytkownik może wpisać sześciocyfrowy numer identyfikacyjny. Nie da się go jednak wyświetlić, inaczej niż w tym drugim. Przykładem takiej pary są: klawiatura oraz komputer. W takim wypadku na komputerze wyświetlany jest numer identyfikacyjny, który należy wpisać na klawiaturze.

Oprócz tego, że nie wszystkie tryby parowania są dostępne w sieciach BLE, te, które są, różnią się od swoich odpowiedników w sieciach Bluetooth BR / EDR. Zasadnicza różnica polega na tym, że metody Just Works i Passkey Entry nie zapewniają ochrony przed pasywnym podsłuchem. Wynika to stąd, że nie zaimplementowano w nich algorytmu Elliptic Curve Diffie-Hellman. Umożliwia on bezpieczną transmisję pomiędzy urządzeniami, które wcześniej nie były połączone.

Zalety większych pakietów

Rys. 4. Nagłówek PDU w Bluetooth Low Energy 4.1 i 4.2

W wersji 4.2 zwiększono rozmiar PDU (Packet Data Unit) z 27 do 251 bajtów (po uwzględnieniu 4-bajtowego pola Message Integrity Check). W tym celu zmieniono nagłówek PDU, zwiększając rozmiar pola określającego długość pakietu z 5 do 8 bitów. Wykorzystano do tego 3 dodatkowe bity z pola RFU (rys. 4).

Dzięki większym pakietom w Bluetooth 4.2 prędkość transmisji sięgnie 800 kb/s, podczas gdy w wersjach 4.0 i 4.1 w praktyce osiągano około 300 kb/s. Szybsza transmisja to mniejsze prawdopodobieństwo zakłóceń i jej przerwania.

Większe pakiety eliminują także konieczność dzielenia danych na części. To natomiast poprawia wydajność transmisji. Wysyłając wiele 27-bajtowych pakietów, liczyć się trzeba bowiem z tym, że nie są one wykorzystywane optymalnie. Wynika to z konieczności przesyłania za każdym razem informacji dodatkowych, m.in. w nagłówku.

Przykładowo wiadomość 216-bajtową można podzielić na osiem 27-bajtowych pakietów. Oprócz danych w każdym z nich 2-bajtowy nagłówek razem z 4-bajtowym polem Message Integrity Check składają się na łącznie 48 bajtów informacji dodatkowych. W sumie przesłać należy więc 264 bajty.

Co jeszcze nowego w Bluetooth 4.2?

Przy większym rozmiarze pakietu taką wiadomość można wysłać w całości. Razem z dodatkowymi informacjami będą to 222 bajty, o ponad 15% mniej niż przy pakietach 27-bajtowych. O tyle też krócej łącze będzie aktywne, co w połączeniu z tym, że nie trzeba oddzielnie przetwarzać wielu pakietów, pozwala znacznie zmniejszyć pobór prądu.

W wersji 4.2 poprawiono bezpieczeństwo transmisji przez implementację algorytmu Elliptic Curve Diffie-Hellman (ECDH). Ma to dodatkową zaletę. Wcześniej, gdy w Bluetooth LE ECDH nie było dostępne, niektórzy producenci tworzyli własne zabezpieczenia na poziomie warstwy aplikacji. To uzależniało użytkowników od rozwiązań firmowych oraz utrudniało współpracę urządzeń różnych marek. Dawniej w Bluetooth z powodu statycznego adresu nadawcy łatwo można go było wyśledzić.

W LE unika się tego przez jego okresową zmianę. Odszyfrowanie adresu bazowego na podstawie nowego jest możliwe, bo przy parowaniu urządzenia wymieniają się kluczem deszyfrującym. W wersji 4.2 zadanie odszyfrowania adresu przeniesiono z CPU na kontroler. Ten ostatni może też aktywować host tylko, gdy w zasięgu jest zaufane urządzenie. Zmiany te jeszcze zmniejszają pobór prądu.

W kierunku IoT

Idea IoT (Internet of Things) zakłada, że bez udziału ludzi będą z niego korzystać przedmioty oraz urządzenia codziennego użytku, na przykład samochody, lodówki, pralki, grzejniki, a nawet kubki i buty. Przewiduje się, że jej wdrożenie znacznie rozszerzy ich podstawową funkcjonalność.

Oprócz zmniejszenia poboru prądu zmiany wprowadzone w BLE w wersji 4.2 mają właśnie na celu dostosowanie go do wymogów IoT. Najważniejsze jest zwiększenie rozmiaru pakietów. Korzyści z tego są najbardziej odczuwalne w przypadku profilu IPSP (Internet Protocol Support Profile), który umożliwia urządzeniom korzystającym z protokołu IPv6 komunikowanie się przez Bluetooth Low Energy. Dzięki tej zmianie można bowiem znacznie przyspieszyć transmisję dużych pakietów UDP/TCP.

Bluetooth SIG (Special Interest Gorup) pracuje ponadto nad umożliwieniem tworzenia sieci BLE w topologii mesh. Przewiduje się, że zostanie to wprowadzone w wersji 4.3. Bluetooth LE stanie się wówczas prawdziwą konkurencją dla standardu ZigBee.

Pierwsze urządzenia zgodne z Bluetooth LE powinny być dostępne w sprzedaży pod koniec bieżącego roku, a najpóźniej na początku 2016.

Monika Jaworowska