fieldtester.io

Dołączanie i bezpieczeństwo

OTAA i ABP, klucze urządzenia i dlaczego bramka nie może odczytać Twoich danych.

OTAA i ABP

OTAA (over-the-air activation): urządzenie dołącza do sieci za pomocą żądania dołączenia (join request). Potrzebuje trzech wartości:

  • DevEUI: globalnie unikalny numer urządzenia (16 znaków szesnastkowych),
  • JoinEUI (dawniej AppEUI): identyfikuje serwer dołączania,
  • AppKey: tajny klucz (32 znaki szesnastkowe).

Z nich przy każdym dołączeniu wyprowadzane są nowe klucze sesji. OTAA to zalecany sposób.

ABP (activation by personalization): klucze sesji i adres urządzenia są stałe. Urządzenie nigdy nie dołącza. Prostsze, ale mniej bezpieczne i podatne na błędy, gdy liczniki ramek przestają być zgodne.

Szyfrowanie

UrządzenieBramkaSerwersieciowySerweraplikacjiAplikacjafieldtester.ioŁadunek szyfrowany AppSKey od końca do końcapodpisane kluczem sieci, sprawdzane przez siećwidzi tylkoszyfrowane bajtyładunek jestodszyfrowany tu
Ładunek pozostaje zaszyfrowany od urządzenia do serwera aplikacji. Bramka i serwer sieciowy widzą tylko zaszyfrowane bajty.

LoRaWAN stosuje AES-128 na dwóch poziomach:

  • NwkSKey (w LoRaWAN 1.1 kilka kluczy sieciowych): chroni wiadomość przed zmianami; sieć sprawdza nim, czy wiadomość jest autentyczna.
  • AppSKey: szyfruje ładunek od końca do końca. Bramka i operator sieci widzą tylko zaszyfrowane bajty; odszyfrowuje je wyłącznie serwer aplikacji.

Licznik ramek

Każda wiadomość zawiera kolejną wartość licznika (FCnt). Sieć odrzuca wiadomości z wartością licznika, którą już widziała. Zapobiega to ponownemu odtwarzaniu starych pakietów.

Jeśli urządzenie ABP uruchomi się ponownie i zacznie znowu od 0, sieć odrzuca jego wiadomości. W OTAA licznik zaczyna się od nowa po każdym dołączeniu, co jest tam prawidłowe.