wersja mobilna
Online: 652 Niedziela, 2018.06.24

Technika

Zmiany w Bluetooth Low Energy wprowadzone przez specyfikację Bluetooth 4.2

środa, 15 listopada 2017 12:56

Specyfikacja Bluetooth v4.2 została w grudniu 2014 roku oficjalnie uznana oraz przyjęta przez organizację odpowiedzialną za standaryzację tego popularnego bezprzewodowego interfejsu, czyli Bluetooth Special Interest Group. Nowy standard wnosi kilka zmian dość istotnych z punktu widzenia urządzeń korzystających z Bluetooth Low Energy (BLE), jakimi są np. produkty IoT.

Układy obsługujące komunikację w standardzie Bluetooth 4.2 od dłuższego czasu są już dostępne w ofercie wielu producentów - można je znaleźć m.in. w katalogach Broadcom (BCM43012), Cypress (PRoC BLE) czy Dialog Semiconductor (DA14680). Warto zatem dokładniej przyjrzeć się zmianom wprowadzanym przez najnowszy standard oraz oferowanym przez nie możliwościom. Liczba tych zmian nie jest szczególnie duża, toteż wszystkie one zostaną przedstawione i krótko omówione w dalszej części tekstu.

Zwiększenie maksymalnej dopuszczalnej długości pakietu

Rys. 1. Porównanie nagłówków pakietu danych w Bluetooth 4.1 oraz 4.2

Jedną z najbardziej znaczących zmian wprowadzanych przez nową wersję specyfikacji protokołu jest zwiększenie maksymalnej dopuszczalnej długości pakietu danych z 27 do 251 bajtów. Efekt ten osiągnięto poprzez zmianę struktury nagłówka pakietu. Zwiększono rozmiar pola informującego o długości pakietu z 5 do 8 bitów. Porównanie nagłówków pakietów dla specyfikacji 4.1 (także 4.0) i 4.2 przedstawiono na rysunku 1.

Do rozszerzenia pola Length wykorzystano 3 bity, które we wcześniejszych wersjach oznaczone były jako zarezerwowane do wykorzystania w przyszłości (RFU - Reserved for Future Use). Takie rozwiązanie umożliwiło zachowanie wstecznej kompatybilności protokołu. W tym celu podczas procesu zestawiania połączenia obydwa urządzenia wspólnie realizują proces weryfikacji długości pakietu, co pozwala ustalić dopuszczalny rozmiar przesyłanej ramki.

Mimo że maksymalna długość całej ramki to 255 bajtów, długość pakietu danych nie może być większa niż 251 bajtów. Pozostałe 4 bajty zajmuje gwarantujące integralność przesyłanych danych pole MIC (Message Integrity Check).

Zwiększenie dopuszczalnego rozmiaru pakietu danych ma szczególne znaczenie w przypadku produktów IoT. Pozwala znacznie przyspieszyć proces przesyłania większych porcji informacji, np. podczas zdalnej aktualizacji firmware'u urządzenia. Maksymalna teoretyczna prędkość transmisji danych dla Bluetooth 4.2 wynosi 800 kb/s, zaś w przypadku Bluetooth 4.1 jest to jedynie 270 kb/s. Krótszy czas transmisji zmniejsza w dodatku prawdopodobieństwo wystąpienia błędów i przekłamań powodowanych zakłóceniami w kanale transmisyjnym, a dzięki temu również prawdopodobieństwo zerwania połączenia.

Zwiększony maksymalny rozmiar pakietu redukuje również nadmiarowość transmisji, związaną np. z wielokrotnym przesyłaniem pól nagłówka, jak również dekodowaniem i przetwarzaniem każdej ramki. Przesłanie wiadomości składającej się ze 160 bajtów wymagało 6 transmisji zgodnych ze specyfikacją Bluetooth 4.1. Każda transmisja ma własny nagłówek (2B) oraz pole MIC (4B).

Przekazanie wiadomości wiąże się zatem z wysłaniem dodatkowych 36 bajtów. Taka sama wiadomość przekazana zostanie w jednym pakiecie Bluetooth 4.2, który zawiera 6 dodatkowych bajtów. Całkowita liczba przesłanych bajtów ulega więc redukcji o 15% - z 196 do 166 bajtów. Związany z tym krótszy czas transmisji radiowej przekłada się również na zmniejszenie zużycia energii przez urządzenie, zwiększając czas pracy przy zasilaniu bateryjnym, co ma krytyczne znaczenie w przypadku wielu aplikacji.

Bezpieczeństwo komunikacji

Rys. 2. Kompatybilność produktów obsługujących poszczególne rodzaje interfejsu Bluetooth

W pierwszych wersjach standardu BLE nie przykładano zbyt wielkiej wagi do zagadnienia bezpieczeństwa komunikacji. W celu uproszczenia sprzętowej konstrukcji układów kontrolerów interfejsu zrezygnowano z niektórych możliwości bezpiecznego transferu informacji oraz wymiany kluczy szyfrujących, które dostępne były w tym czasie w klasycznej wersji Bluetooth.

Specyfikacja 4.0 nie zapewniała odpowiedniego poziomu ochrony m.in. z powodu zbyt słabo zabezpieczonego procesu parowania urządzeń Bluetooth. Zgodnie ze specyfikacją, proces parowania może być przeprowadzony na kilka sposobów, w zależności od rodzaju wykorzystywanych urządzeń. Poniżej przedstawiono dostępne sposoby parowania urządzeń BLE ze smartfonem:

  • Parowane urządzenie nie ma żadnych przycisków ani wyświetlacza. Mechanizm zestawiania połączenia określany jest w tym przypadku jako Just Works. Zestawienie połączenia nie wymaga podawania żadnych dodatkowych informacji, odbywa się w zasadzie automatycznie. Jest to metoda, która nie zapewnia praktycznie żadnego poziomu bezpieczeństwa.
  • Parowane urządzenie ma klawiaturę, nie ma jednak wyświetlacza. W takiej sytuacji na ekranie telefonu pojawia się 6-cyfrowy numer, który należy wpisać za pomocą klawiatury parowanego urządzenia. Taki sposób zestawiania połączenia określany jest Passkey Entry.
  • Parowane urządzenie ma wyświetlacz, nie ma jednak klawiatury. Parowanie może odbyć się jedynie za pomocą metody Just Works, która nie wnosi żadnych dodatkowych zabezpieczeń.
  • Parowane urządzenie wyposażone jest w dodatkowy interfejs dostępny również w telefonie (np. NFC). W takim wypadku proces parowania może odbyć się z wykorzystaniem dodatkowego interfejsu - taką metodę określa się mianem Out-Of-Band. Bezpieczeństwo tej metody zależy od poziomu zabezpieczeń dodatkowego interfejsu wykorzystywanego w procesie parowania.

Protokół BLE w wersji 4.0 oraz 4.1 wspiera zatem jedynie trzy sposoby parowania urządzeń: Just Works, Passkey oraz Out-Of-Band. W przypadku dwóch pierwszych metod urządzenia wymieniają wszystkie informacje, korzystając z niezabezpieczonego kanału transmisji. Oznacza to, że mając możliwość przechwytywania wymienianych między urządzeniami pakietów, można wejść w posiadanie wszystkich danych potrzebnych do złamania zabezpieczeń oraz odczytania komunikacji. W celu wyeliminowania tego zagrożenia konieczna jest zatem implementacja mechanizmu bezpiecznej wymiany kluczy.

Specyfikacja 4.2 rozwiązuje ten problem, wprowadzając anonimowy protokół uzgadniania kluczy oparty na krzywej eliptycznej Diffiego-Hellmana (ECDH). Zabezpieczenie komunikacji oparte na tym algorytmie zwiększa bezpieczeństwo transmisji oraz chroni przed atakami typu Man In The Middle.

Z powodu braku odpowiedniego poziomu ochrony w poprzednich specyfikacjach protokołu, wielu producentów urządzeń BLE wprowadziło własne mechanizmy zabezpieczeń w warstwie aplikacji. Takie rozwiązanie znacznie obniżało jednak interoperacyjność poszczególnych produktów, często zaś uniemożliwiało współdziałanie urządzeń pochodzących od różnych producentów.

Prywatność warstwy łącza danych

Pakiety danych standardu BLE zawierają m.in. informację o adresie ich nadawcy. Oznacza to, że każde urządzenie komunikujące się za pośrednictwem BLE, jeśli regularnie nie zmienia swojego adresu, może być śledzone i monitorowane. Problem ten wciąż występuje w klasycznej wersji Bluetooth, ponieważ wykorzystuje się tam statyczne (przypisane na stałe) adresy urządzeń.

Standard BLE od początku przewidywał możliwość zmiany indywidualnego adresu urządzenia. Aby po zmianie adresu urządzenie mogło kontynuować komunikację, jego nowy adres generowany jest w sposób deterministyczny, za pomocą algorytmu wykorzystującego indywidualny klucz kryptograficzny IRK (Identity Resolving Key). Klucz ten udostępniany jest innym podmiotom w procesie parowania. Znajomość tego klucza umożliwia pozostałym urządzeniom identyfikację określonego nadawcy nawet po zmianie jego adresu, jednocześnie zaś uniemożliwia śledzenie urządzenia osobom trzecim.

W specyfikacji Bluetooth 4.2 zadanie obliczania oraz rozpoznawania adresów przeniesione zostało z procesora do kontrolera protokołu. Znacznie ograniczono dzięki temu konieczność częstego wybudzania procesora. W dodatku kontroler może decydować np. o tym, by dokonywać przebudzenia jedynie w przypadku wykrycia bliskiej obecności zaufanych urządzeń. Takie rozwiązanie pozwala znacznie ograniczyć zużycie energii przy jednoczesnym zapewnieniu użytkownikowi wyższego poziomu prywatności.

Rozszerzone możliwości skanowania i filtracji pakietów

BLE pomaga znacznie ograniczyć zużycie energii elektrycznej dzięki filtracji pakietów rozgłoszeniowych (advertisements) już na poziomie niższych warstw protokołu. Standard przewiduje możliwość odrzucania wszystkich pakietów rozgłoszeniowych lub akceptacji pakietów od nadawców zaufanych, czyli takich, którzy znajdują się na tzw. białej liście. Specyfikacja 4.2 wprowadza możliwość wykorzystywania w procesie filtracji adresów prywatnych, dynamicznie zmienianych z pomocą wspomnianych kluczy IRK.

IoT oraz IPSP

Zmiany wprowadzone w specyfikacji 4.2 czynią protokół BLE bardziej energooszczędnym oraz przyjaźniejszym dla użytkownika. Dodatkowo, niemal jednocześnie z ogłoszeniem nowej wersji specyfikacji, organizacja Bluetooth SIG przyjęła Internet Protocol Support Profile (IPSP), czyli zestaw regulacji znacząco ułatwiających komunikację przez BLE urządzeniom wykorzystującym protokół IPv6. Dzięki temu znacząco wzrosła atrakcyjność tego protokołu w zastosowaniach IoT.

IPSP nie jest częścią zasadniczej specyfikacji protokołu, tzw. Core Specification, jest jednak zapewne głównym beneficjentem zmian wprowadzonych w wersji 4.2. Przykładowo, zwiększenie rozmiaru pakietu danych BLE pozwala znacznie szybciej przesyłać duże pakiety UDP/TCP. Duża część zmian wprowadzonych w tej wersji specyfikacji spowodowana była właśnie koniecznością przystosowania protokołu BLE do wymogów IPv6.

Bluetooth 5 - zapowiedź kolejnych zmian i ulepszeń

W 2016 roku Bluetooth SIG ogłosiła kolejną wersję specyfikacji interfejsu, określaną jako Bluetooth 5. Została ona przygotowana głównie z myślą o urządzeniach IoT - ma sprawić, że komunikacja przez BLE będzie dwukrotnie szybsza, jednocześnie zaś równie energooszczędna. Zapowiadany jest również znaczny wzrost maksymalnego zasięgu tej transmisji.

W 2017 w szerokiej sprzedaży pojawią się już zapewne pierwsze układy wspierające komunikację w tym standardzie, jednak ich masowe rozpowszechnienie będzie miało miejsce prawdopodobnie dopiero w latach następnych. Do tego czasu wciąż atrakcyjne będzie korzystanie z łączności w standardzie BLE 4.2.

Podsumowanie

Specyfikacja BLE 4.2 przyjęta została prawie 3 lata temu, zdążyła się już zatem w pewnym stopniu upowszechnić oraz zyskać popularność. Pojawiło się wiele modułów wspierających komunikację w tym standardzie, co pozwala łatwo zaadaptować taką funkcjonalność do własnego projektu.

W porównaniu do wcześniejszych wersji, główne zalety BLE 4.2 to wzrost szybkości oraz energooszczędności transmisji, jak również znaczące zwiększenie poziomu jej bezpieczeństwa. Zmiany te znacząco ułatwiają wykorzystanie interfejsu BLE w zastosowaniach IoT. Technologia IoT jest obecnie jednym z głównych obszarów zainteresowań organizacji Bluetooth SIG odpowiedzialnej za rozwój tego interfejsu, o czym świadczą również modyfikacje zapowiadane w jego kolejnej wersji, określanej jako Bluetooth 5.

Damian Tomaszewski