Jak działają piloty radiowe?

Posted by

Cofnijmy się trochę wstecz i zobaczmy jak kiedyś działały pierwsze piloty radiowe. Przed mikrokontrolerami używane były piloty analogowe, gdzie kod ustawiało się dipswitch’ami. Odbiornik oraz nadajnik musiały mieć tak samo ustawione stany każdego przełącznika, aby zadziałały. Początkowo liczba kombinacji była mała – wynosiła zaledwie 4092. Później wprowadzono dipswitch’e 3 stanowe, co pozwoliło zwiększyć liczbę unikalnych kodów do nawet 531441.

Klonowanie

Klonowanie takiego nadajnika było bardzo proste, opierało się jedynie na ustawieniu takich samych stanów przełączników co w nadajniku.

Kod stały

Kiedy elektronika cyfrowa zaczęła podbijać rynek, fizyczne dipswitch’e zastąpiono ich cyfrowymi odpowiednikami zakodowanymi w mikrokontrolerze.

Największą wadą tego rozwiązania jest łatwość jego złamania. Wystarczy podsłuchać odbiornikiem na tej samej częstotliwości i wyłapać sygnał pilota, zapisać go i zaprogramować nowy pilot. Możliwy jest do przeprowadzenia również atak brute-force, używając każdego możliwego kodu po kolei aż do skutku.

Dodatkowo słaby odbiornik w pilocie samokopiującym można zastąpić mocniejszym o zasięgu kilku/kilkunastu metrów i przechwycenie sygnału będzie już bardzo proste.

Klonowanie

Klonowanie pilotów stało się trudniejsze więc dodano do nich mały odbiornik o zasięgu kilku cm, aby mógł odebrać sygnał i zapisać go w pamięci.

Kod zmienny

Wprowadzenie kodu zmiennego miało na celu zwiększenie bezpieczeństwa i uniemożliwienie ponownego użycia podsłuchanego kodu jak w przypadku pilotów z kodem stałym.

Tego rodzaju piloty mogą się z zewnątrz niczym nie różnić od tych na kod stały, ale już wewnątrz będą miały zupełnie inny układ elektroniczny, najłatwiej rozpoznać to po układzie scalonym oznaczonym HCSXXX, gdzie „XXX” oznacza numer.

Kod zmienny w praktyce jest to liczba zwana „numerem emisji” która jest zwiększana co kolejne użycie. Odbiornik zapamiętuje ostatni numer emisji i sprawdza, czy nowy jest większy od poprzedniego. Jeśli tak to wykonuje rozkaz, jeśli nie to odrzuca go. Samo dołączenie numeru emisji nie zapewnia bezpieczeństwa, gdyż przechwycony sygnał można by spróbować zmodyfikować (zwiększając numer emisji) i użyć. Dlatego cała transmisja powinna być zakodowana.

Taki algorytm z powodzeniem realizują układy z rodziny HCS (HCS200, HCS300, HCS301 …), wykorzystuje je wielu producentów samochodów.

ostatnie bity sygnału to stan baterii i jakaś inna, wykorzystywana wedle uznania.

Przykładowe dane wysyłane przez pilot radiowy:

{
   "model":"Microchip-HCS200",
   "id":"0F075DF4",
   "id_rev":"2FBAE0F0",
   "encrypted":"9A445604",
   "encrypted_rev":"206A2259",
   "button1":"ON",
   "button2":"OFF",
   "button3":"OFF",
   "button4":"OFF",
   "misc":"",
   "battery_ok": 1
}

Otrzymując takie dane wiemy, jaki przycisk został wciśnięty, wiemy też z którego pilota pochodzi, ponieważ przesłany został jego identyfikator oraz dowiadujemy się o tym czy stan baterii jest ok.

Kodowanie Keeloq

Podczas programowania pilotów trzeba podać kilka danych do układu HCS

  • 28 bitowy numer seryjny
  • 64 bitowy klucz szyfrujący
  • 12 bitów kontrolnych
  • 32 bity SEED

Po każdym naciśnięciu klawisza mikrokontroler oblicza 32 bity zmienne na podstawie 32 bitów (wciśnięty klawisz [4 bit] + bity kontrolne [12 bit] + numer emisji [16 bit]) oraz 64 bitowego klucza szyfrującego.

Naciśnięcie wszystkich klawiszy bądź jednego ukrytego na płytce pilota spowoduje przesłanie do odbiornika zamiast części zmiennej, 32 bity stałe nazwane przez producenta „SEED”. W procesie rejestracji pilota w odbiorniku na podstawie klucza producenta i SEED wyliczany jest klucz szyfrujący.

Klonowanie

Sklonowanie lub w tym przypadku zaprogramowanie nadajnika, bez poznania klucza szyfrującego jest niewykonalne, najpierw trzeba by było go poznać, bądź złamać.

Możemy sklonować oczywiście taki pilot, ale to będzie jednorazowa akcja i odbiornik musi być poza zasięgiem procesu, aby nie zapisał numeru emisji w swojej pamięci.

Częstotliwości wykorzystywane w pilotach radiowych:

  1. 433,42 MHz
  2. 433,92 MHz
  3. 868,35 MHz
  4. 330 MHz

Linki i źródła:

print

Leave a Reply

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *