przegląd
prawie wszystkie samochody są obecnie wyposażone w brelok, który pozwala otworzyć drzwi i uruchomić samochód. Kiedy kupujesz samochód, wygoda jest atrakcyjną cechą. Możesz zostawić brelok w kieszeni i nigdy więcej nie martwić się o fizyczny klucz. Brzmi świetnie.
domyślnym założeniem jest to, że system breloczków jest bezpieczny i że jakaś przypadkowa osoba ze sprzętem za 50 $nie może odjechać Twoim samochodem. Nie masz prawdziwego sposobu, aby stwierdzić, czy firma samochodowa wykonała rozsądną pracę z ich systemem, więc musisz im zaufać. Niestety, to zaufanie nie zawsze jest uzasadnione. Problemy pojawiają się dopiero, gdy ludzie próbują zhakować te systemy. Problemy, które mniej skrupulatni ludzie mogli już wykorzystywać.
Brelok Twojego samochodu
istnieje wiele różnych systemów breloczków. Zaczniemy od breloczka do mojego Priusa z 2006 roku. Breloki używają czegoś, co nazywa się zdalnym systemem Bezkluczykowym (RKS). W USA działają one z częstotliwością 315 MHz, +/- 2,5 MHz. Mój klucz Priusa okazał się być na 312.590 MHz.Wszystkie piloty są wymienione w bazie danych FCC. Oglądanie nowych wpisów jest jednym ze sposobów, w jaki ludzie mogą powiedzieć, kiedy nowe modele samochodów wychodzą. Pojawią się one na długo przed oficjalnym ogłoszeniem.
możesz dowiedzieć się, jaką częstotliwość transmituje twój pilot za pomocą SDR i użyć GQRX lub SDR# do monitorowania widma. Po naciśnięciu przycisku na pilocie powinieneś zobaczyć krótki skok w widmie. Być może będziesz musiał przesunąć pasmo częstotliwości w górę lub w dół o kilka MHz, aby znaleźć sygnał, mój był prawie 2,5 MHz niski.
jedno słowo ostrzeżenia. Nie daj się ponieść naciskając przycisk! System RKS wykorzystuje toczący się pseudo-losowo generowany kod. Zarówno brelok, jak i samochód są zsynchronizowane, dzięki czemu samochód rozpoznaje następny kod. Jeśli jednak brelok będzie zbyt daleko do przodu w sekwencji (100s naciśnięć przycisku), samochód go nie rozpozna. To sprawia, że klucz (i samochód) znacznie mniej przydatne!
jeśli przechwycimy sygnał, wynik zostanie pokazany poniżej
Całkowita szerokość wykresu wynosi 10 sekund, więc widać, że jest jeden klawisz naciśnij krótko po 2 sekundach, a drugi krótko po 5 sekundach.
jeśli wykreślamy 100 ms zaczynając od 2 sekund, widzimy sygnał cyfrowy, którego szukamy:
powiększając do pierwszych kilku bitów, otrzymujemy
bity są łatwe do zidentyfikowania. Próg decyzyjny wynoszący 15 daje niemal doskonałą detekcję. Jeśli zrobimy to, a następnie wykreślimy pierwszą część danych cyfrowych dla dwóch naciśnięć klawiszy, otrzymamy to
chociaż oba zaczynają się tak samo, szybko się rozchodzą. To szczęście, bo gdyby sygnał był taki sam za każdym razem, miałbyś wystarczająco dużo informacji, by ukraść mój samochód!
dane są ponownie włączane-wyłączane (OOK). Jest to również prawie na pewno Faza split (lub Manchester) kodowania. Zamiast „1” jest wysoka, a ” 0 ” jest niska, informacja jest kodowana w przejściu od wysokiej do niskiej lub niskiej do wysokiej. Oznacza to, że bit” 0 „to przejście wznoszące, a bit” 1 ” to przejście opadające. Dobrym sposobem na rozpoznanie kodowania fazy podzielonej jest to, że możesz mieć tylko jeden lub dwa niskie lub wysokie segmenty z rzędu. Dobrą rzeczą w kodowaniu Manchesteru jest to, że każdy symbol ma przejście, a te są łatwiejsze do znalezienia niż wtedy, gdy sygnał był wysoki lub niski przez kilka interwałów.
ten przykład to OOK, który jest najczęstszy w przypadku pilotów samochodowych. Niektórzy używają klucza z przesunięciem częstotliwości (FSK), gdzie każdy bit jest przesyłany jako inna częstotliwość, a Obwiednia jest stała.
ataki na Piloty Samochodowe
istnieje wiele różnych ataków, które mogą być użyte przeciwko pilotom samochodowym, w zależności od tego, jak działają i jakiego rodzaju dostępu szukasz. Najprostszy pozwala otworzyć samochód. Dokładniejsze ataki dają pełną kontrolę poprzez klonowanie pilota.
Większość breloczków używa klucza tocznego. W ten sposób powstaje nowy kształt fali, który zależy od identyfikatora pilota, losowego ziarna i tego, ile razy klawisz został naciśnięty. Samochód śledzi ostatni otrzymany kod i wie, jakie mogą być następne kilkaset kodów. Jeśli wykryje jeden z oczekiwanych kodów w przyszłości, otworzy samochód. Jeśli otrzyma wcześniej użyty kod, przestaje odpowiadać na brelok. W przypadku Priusa musisz wykonać „Taniec kurczaka”, aby ponownie zadziałał, pod warunkiem, że masz inny działający brelok. W przeciwnym razie, trzeba mieć dealer rekey samochód, dla wielu setek dolarów. Musiałem to zrobić kilka razy ,teraz (z innych powodów).
istnieje kilka linii ataku. Jednym z nich jest po prostu nagrywanie wyjścia pilota przez kilka naciśnięć przycisku, gdy znajduje się on z dala od samochodu lub samochód jest zablokowany. Dzięki nagranym nieużywanym kodom możesz otworzyć samochód.
innym jest odwrotna Inżynieria sekwencji RKS. Ogólnie rzecz biorąc, powinno to być bardzo trudne. Było jednak kilka sytuacji, w których jest to bardzo łatwe.
wreszcie są samochody, które otwierają się, gdy właściciel zbliża się do samochodu. Jest to oparte na sygnale o niskiej mocy, który może być odebrany tylko wtedy, gdy pilot jest bardzo blisko. Można to pokonać wzmacniając te małe sygnały.
jest o wiele więcej ataków, a te będą się mnożyć, ponieważ samochody stają się bardziej złożone i mają więcej wbudowanych systemów komputerowych. Możesz obejrzeć niektóre z nich na przyszły tydzień.
powtórz ataki
najstarszym i najprostszym podejściem było zarejestrowanie przebiegu, który wydaje pilot (używając RTL-sdr), a następnie odtworzenie go. Działa to dobrze w przypadku starszych otwieraczy do bram garażowych, które używały jednego stałego klucza. Są jeszcze samochody, które mają breloki, które działają w ten sposób (niektóre Mercedesy sprzed 2000 na przykład).
w przypadku breloczków, które używają klawisza toczenia, nadal możesz użyć ataku replay. Jeśli możesz uzyskać dostęp do pilota, gdy znajduje się on z dala od samochodu i nagrać kilka naciśnięć klawiszy, możesz je odtworzyć, aby samochód był otwarty.
jeśli nie możesz uzyskać dostępu do pilota, drugim podejściem jest stworzenie urządzenia, które rejestruje wyjście pilota, gdy jest używane, i jednocześnie zacina samochód. Standardowym sposobem na to jest odsłuchanie transmisji pilota, a następnie rozpoczęcie zagłuszania, gdy bity korekcji błędów są przesyłane na końcu. W ten sposób się nie zatkasz. Samochód nie rozpozna pakietu, ale możesz odtworzyć bity korekcji błędów i retransmitować kształt fali później.
wreszcie, jammer sam w sobie utrzyma pilota od początku w stanie zablokować samochód. Jeśli kierowca nie jest uważny, mogą odejść od samochodu, pozostawiając go otwartym.
urządzenia do retransmisji
wszystko to zależy od twojej zdolności zarówno do nadawania, jak i odbierania RF. Twoje rtl-sdr są tylko odbiorniki, i zrobić wielką pracę pozyskiwania sygnałów. Istnieje wiele opcji transmisji. Istnieje wiele kluczy USB, które są oparte na chipach ti CC111X, które są używane w brelokach, takich jak ten
ciekawe, bardziej elastyczne podejście wykorzystuje Raspberry PI do generowania RF, wysyłając starannie spreparowaną sekwencję danych do portu GPIO. Jest to szczegółowo opisane, z filmami i linkami do kodu tutaj:
Nadajnik Raspberry PI
dzięki temu możesz wygenerować prawie każdy Cyfrowy Przebieg pakietu, jaki chcesz. Poziomy mocy są więcej niż wystarczające do naśladowania pilota. Rtl-sdr są również dobrze obsługiwane na Raspberry PI, więc dwa razem daje całkowitą klucz fob hacking system dla $50 lub tak, jak zobaczymy wkrótce.
atakowanie pasywnych systemów BEZKLUCZOWEGO wprowadzania i uruchamiania (PKES)
wiele wyższych samochodów używa pasywnego systemu otwierania samochodu, gdy zbliża się kierowca. Sygnał niskiej mocy jest przesyłany z samochodu jako wyzwanie. Brelok odpowiada następnie za pomocą uwierzytelnienia. Ponieważ moc jest tak niska, samochód zakłada, że kierowca musi być w pobliżu, Jeśli otrzyma odpowiedź.
te systemy można zhakować, budując wzmacniacz umieszczony w pobliżu samochodu. Przechwytuje sygnał samochodu i retransmituje go z większą mocą. Pilot może być w dowolnym miejscu w odległości kilkuset metrów i nadal usłyszy sygnał. Pilot reaguje, a to jest ponownie przechwytywane przez repeater i retransmitowane. Samochód myśli, że brelok jest w pobliżu i otwiera samochód.
dobrą rzeczą w tym podejściu jest to, że nie musisz nic wiedzieć o pilocie, z wyjątkiem jego częstotliwości. Nie musisz zmieniać protokołu, którego używa, w rzeczywistości używasz tylko prawdziwego klucza!
oto film przedstawiający złodziei, którzy kradną Teslę z takim podejściem
pasywny zdalny atak, Tesla Model 3
jak możesz zmniejszyć to ryzyko?
atakowanie systemu kluczy kroczących
następne ataki idą po samym systemie kluczy kroczących. Ogólnie działa to tak, że brelok wysyła identyfikator wraz z licznikiem, ile razy klawisz został naciśnięty. Jest to zaszyfrowane i przesłane do samochodu po naciśnięciu przycisku.
jeśli szyfrowanie jest silne, niezwykle trudno jest dowiedzieć się, co to jest identyfikator użytkownika i licznik. Jest kilka interesujących przypadków. Jeden to za 20 lat VW (i Audi, Porsche, itp), które przyjrzymy się tutaj. Kolejny jest dla Subarusa, który możesz obejrzeć w tym tygodniu.
opis systemu VW RKS znajduje się tutaj
VW Hack
to wskazuje na artykuł przewodowy (który niestety obecnie znajduje się za paywall) i zawiera dokument techniczny, który szczegółowo opisuje jego działanie. Autorzy opracowania technicznego przyjrzeli się systemom VW RKS przez ostatnie 20 lat.
w przypadku najnowszych systemów szyfrowanie było stosunkowo silne, co odpowiadało 90-bitowemu kluczowi. Okazuje się jednak, że w każdym samochodzie używali tego samego klucza! 100 milionów!
wyzwaniem jest wtedy ustalenie, co to jest klucz i jaki jest algorytm szyfrowania. Sam samochód pomaga rozwiązać ten problem. Po naciśnięciu przycisku samochód odbiera sygnał, a następnie dekoduje go w komputerze pokładowym (ECU). Klucz i algorytm są przechowywane w oprogramowaniu ECU. Autorzy kupili kilka ECU w serwisie EBay, pobrali oprogramowanie układowe i dokonali inżynierii odwrotnej szyfrowania (są to zazwyczaj dość proste operacje bitowe, które są łatwe do zidentyfikowania). Dzięki tej wiedzy, po uzyskaniu sygnału z jednego naciśnięcia klawisza, identyfikator użytkownika i licznik mogą być dekodowane, a brelok sklonowany, dając pełną kontrolę nad samochodem.
jest tu kilka ciekawych rzeczy. Jednym z nich jest to, że każdy samochód VW dekoduje każdy brelok, więc monitorując wykonanie ECU, możesz znaleźć identyfikator użytkownika i licznik dla wszystkich samochodów wokół ciebie. Istnieją doniesienia o ludziach, którzy używają takich systemów do kradzieży innych marek samochodów.
powodem, dla którego tylko twój samochód reaguje na pilota, jest to, że twój samochód ma „listę dozwolonych” identyfikatorów pilota, na które reaguje. To jest to, co zostanie ustawione, gdy zmienisz samochód.
to wszystko brzmi dość niepokojąco. Ale jest jeszcze gorzej, co zobaczymy w przyszłym tygodniu.
zadanie
w tym tygodniu masz kilka opcji zadania. Dla każdego tematu Wygeneruj około 5 slajdów, aby opisać swoje myśli lub wyniki. Zarejestruj się tutaj
Zarejestruj się tutaj
i prześlij swoje slajdy tutaj:
slajdy Tygodnia 5
1. Ten artykuł dotyczy systemu Subaru RKS. Przeczytaj, obejrzyj filmy i opisz, co znajdziesz.
Subaru RKS
2. Czy zastanawiałeś się kiedyś, jak działają te karty hotelowe? W tym artykule opisano włamanie nie-RF, które wykorzystuje te same pomysły, co ataki pilota.
Karty Hotelowe
3. Po co kraść samochód, skoro można mieć spychacz! Przeczytaj ten artykuł i obejrzyj film, aby zobaczyć, jak to działa.
Hakowanie Maszyn Przemysłowych
4. Jest wiele innych włamań do samochodów. Sprawdź, czy znajdziesz coś ciekawego i opisz to. Szukaj historii, w których możesz dowiedzieć się, jak to działa. Systemy rozrywki są powszechnym trybem dostępu (sprawdź hack Uconnect dla jeepów). Tesla i hakerzy mają długą grę w kotka i myszkę. Jest tu wiele ciekawych przykładów
5. Jeśli masz Raspberry Pi, sprawdź, czy możesz go przesłać sygnał. To powinno być całkiem proste. Skorzystaj z powyższego linku. Wyślę Ci Raspberry Pi, jeśli chcesz spróbować tego.
wreszcie, jeśli jeszcze tego nie zrobiłeś, wyślij mi maila o tym, jak ci idzie zajęcia. Doceniam twoje myśli. Dzięki!