Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Nowy hack pozwala na bezprzewodowe otwarcie przeszło 100 milionów samochodów: Audi, Skoda, rozmaite VW, Ford, Citroen, …
TL;DR: Jak donosi Wired, blisko 100 milionów samochodów wyprodukowanych przez grupę Volkswagen ostatnie 20 lat może być otwarte bezprzewodowo w wyniku hacka. Wystarczy podsłuchać transmisję radiową podczas otwierania auta, przetworzyć ją… i voila. Całość została zaprezentowana w szczegółach na tegorocznej konferencji Usenix. Wg badaczy podatne są takie modele jak poniżej (dla wyboldowanych badacze pokazali Proof of Concept, pozostałe wskazują jako prawdopodobnie podatne):
Audi: A1, Q3, R8, S3, TT, various other types of Audi cars (e.g. remote control part number 4D0 837 231)
VW: Amarok, (New) Beetle, Bora, Caddy, Crafter, e-Up, Eos, Fox, Golf 4, Golf 5, Golf 6, Golf Plus, Jetta, Lupo, Passat, Polo, T4, T5, Scirocco, Sharan, Tiguan, Touran, Up
Seat: Alhambra, Altea, Arosa, Cordoba, Ibiza, Leon, MII, Toledo
Škoda: City Go, Roomster, Fabia 1, Fabia 2, Octavia, SuperB, Yeti
Mechanizm bezprzewodowego kluczyka bazuje tutaj na raptem kilku głównych kluczach kryptograficznych (master keys) – takich samych dla wielu różnych modeli aut. Klucze da się wyciągnąć i połączyć z dodatkową informacją podsłuchaną podczas otworzenia auta.
Połączenie tych dwóch informacji daje otwarcie samochodu.
Podatni są też inni producenci, choć w nieco inny sposób – szczegóły w dalszej części tekstu.
Koszt zabawy? Około $40 dolarów (+ koszt baterii ;) za sprzęt w wersji 'wypasionej’ (czytaj zautomatyzowanej). Jest to po prostu odpowiednie Arduino:
Zanim przejdziemy dalej – trochę historii. Nowoczesne kluczyki do samochodu – w bezprzewodowych wersjach składają się on z dwóch komponentów: pierwszy umożliwia otwarcie drzwi samochodu, drugi umożliwia wystartowanie silnika. Komponenty te mogą być ze sobą ściśle powiązane, choć nie muszą:
Czasem więc udaje się złamać od razu oba komponenty, a czasem tylko jeden. Historycznie tak to wyglądało: już w 2005 roku pokazano jak złamać algorytm DST40 używany w immobilajzerach (miał on ledwie 40 bitowy klucz szyfrujący), a w 2012 poległ hitag2. Tutaj wynik był taki:
The authors showed that an attacker can obtain the 48-bit secret key required to bypass the electronic protection in less than 360 seconds.
Również na imprezie Usenix, w zeszłym roku, pokazano bezprzewodowy lockpicking. Tym razem poległo Megamos Crypto, używany w takich markach jak Audi / Fiat / Honda / Voklswagen czy Volvo. Tutaj dzięki różnym słabościom udało się odzyskać 96 bitowy klucz krypto będący w kluczyku:
In this paper we have reverse-engineered all proprietary security mechanisms of the transponder, including the cipher and the authentication protocol which we publish here in full detail. This article reveals several weaknesses in the design of the cipher, the authentication protocol and also in their implementation. We exploit these weaknesses in three practical attacks that recover the 96-bit transponder secret key.
Jeśli chodzi o historię mechanizmów RKE (Remote Keyless Entry) – czyli bezprzewodowego otwierania auta – to historycznie najpierw pojawiły się systemy zupełnie bez kryptografii (badacze wspominają np. o tego typu Mercedesie z 2000 roku), później był to tzw. rolling code.
W skrócie polega on na pobraniu pewnych wartości z kluczyka dodaniu do tego wartości licznika i przesłanie całości w formie zaszyfrowanej do samochodu. Samochód pamięta ostatnią prawidłową wartość licznika, co efektywnie chroni przed atakiem typu replay (tj. nie mogę podsłuchać na radiu komunikacji i później z sukcesem użyć jej do odblokowania auta).
Oczywiście jeśli odzyskam klucz kryptograficzny z kluczyka lub sam algorytm szyfrujący jest średnio bezpieczny, cała ochrona idzie na marne. Tego typu atak opisany jest choćby w prezentacji o dość dobitnym tytule: „How To Steal Cars —A Practical Attack on KeeLoq” czy w 2014 roku tutaj:
An adversary has to eavesdrop three subsequent rolling codes. Then, using phase-space analysis, the next rolling code can be predicted with a high probability.
Jak badacze zabrali się do pracy? Zdobyli najpierw wybrane modele kluczyków i wypatroszyli je z elektroniki. Przykładowo taka zabawka:
zawiera 4-bitowy procesor MARC4 . Kod źródłowy programu wykonywanego na tym procesorze można wyciągnąć z ROMu poprzez… analizę mikroskopową (bit po bicie). Badacze poszli trochę w inną stronę i wyciągnęli (już w prosty sposób) firmware po drugiej stronie komunikacji (tj. z samochodu) – z tzw. ECU. W ten sposób wykryli kilka schematów komunikacji wykorzystywanych w samochodach grupy Volkswagen (oznaczonych poniżej jako VW-1 do VW-4). Pierwszy z brzegu:
In conclusion, the security of the VW-1 is solely based on obscurity. Neither is there a cryptographic key involved in the computation of the rolling code, nor are there any vehicle or remote control specific elements for some form of key diversification.
Chyba jeszcze ciekawiej jest w typie VW-2 oraz VW-3:
Both schemes use a fixed, global master key independent of vehicle or remote control. In other words, this means that the same AUT64 key is stored in millions of ECUs and RKE remotes, without any key diversification being em- ployed at all.
Można powiedzieć, że te poprzednie schematy są trochę starsze, ale i w VW-4 (np. pokazano tu Audi Q3 z 2016 roku) jest podatne:
However, again we found that a single, worldwide key is used for all vehicles employing the VW-4 sys- tem. The same single point of failure of the older systems VW-1–VW-3 is hence also present in recently manufactured vehicles. For example, we found this scheme implemented in an Audi Q3, model year 2016, and could decrypt and generate new valid rolling codes to open and close this vehicle.
Uważni czytelnicy oryginalnego badania, wiedzą że to nie wszystko. Na warsztat bowiem poszedł jeszcze kolejny schemat szyfrowania używany w kluczykach innych producentów: hitag2. Tutaj udało się przygotować praktyczny atak – wymagający jednak podsłuchania 4-8 otwierań samochodu (+ 1 minuta pracy laptopa) – wcześniej były już udane hacki ale wymagające znacznie większych podsłuchanych próbek.
On average, our attack implementation recovers the cryptographic key in approximately 1 minute computation, requiring a few eavesdropped rolling codes (between 4 and 8).
Przykładowe podatne modele? Bardzo proszę:
I dla pewności jeszcze potwierdzenie skuteczności:
We verified our findings in practice by building a key emulator and then unlocking and locking the vehicles with newly generated rolling codes. (…) The vehicles in the above list are our own and also from colleagues and friends who volunteered.
Autorzy pokazali skuteczność ataku z odległości ok. 90 metrów, wskazują jednak na możliwość potencjalnego podsłuchu kluczyków z odległości aż 1 km (praca: Eavesdropping and detecting of active RFIDs and remote controls in the wild), co w połączeniu dodatkowo z możliwością DoS-owania auta (często aby zdeaktywować kluczyk właściciela auta wystarczy wysłać kilka razy „niepoprawny” pakiet) dale dosyć nieciekawe możliwości.
Na koniec, warto wspomnieć że wg badaczy VW potwierdziło podatności, jednak na bazie osobnej umowy badacze zgodzili się m.in. nie publikować wyciągniętych uniwersalnych kluczy kryptograficznych:
VW Group acknowledged the vulnerabilities. As mentioned in the paper, we agreed to leave out amongst others the following details: cryptographic keys, part numbers of vulnerable ECUs, and the used programming devices and details about the reverse-engineering process.
–ms
Dziękuję za przegląd literatury przedmiotu. Szukałem informacji o bezpieczeństwie tego rodzaju rozwiązań kiedy na początku wieku miałem opla astrę (wyprodukowanego chyba w latach 90-tych). Nie pamiętam dobrze, ale chyba był to KeyLoq. O dziwo, informacje o algorytmie były nawet dostępne, ale pod warunkiem podpisania NDA. Łatwo było więc domyślić się jak silny to musi być algorytm…
PS. Timelimit CAPTCHA jest b. krótki.
Tak czytam i się zastanawiam nad pewnym rozwiązaniem. Może zamiast tych wszystkich dziwnych zabezpieczeń, użyć esp8266 i zrobić sieć WiFi z WPA2(AES). Użytkownik sam by ustawiał nazwę sieci oraz hasło. Samochód pracowałby jako WiFi AP a kluczyk jako WiFi Client. Z tego co wiem to obecnie nie ma sprzętu, który by w sensowym czasie złamałby takie zabezpieczenie…
Złamałby nie, ale zakłóciłby już tak.
Takie rozwiązanie jest bardzo prosto uwalić atakiem typu DoS. Można już się nigdy nie dostać do samochodu.
Pozatym zauważ, że wifi pracuje w paśmie publicznym i to obciążonym.
Proponowałbym rozwiazanie, które umożliwia generowanie kluczy do szyfrowania transmisji samemu kierowcy na podstawie swojego algorytmu i hasła. Ale to u producentów chyba nie przejdzie.
Można nawet wiecej popuścić wyobraźnie i pomyśleć o dwuetapowym uwierzytelnianiu. Np. kluczyk rfid i biometria dotykowo na kluczyku itd.
Z tym WiFi AP – to jak się producenci za to biorą (patrz Jeep) to można później do auta dostawać się z netu i nim sterować ;-)
Da sie zlamac, chyba ze algorytm generownia hasla bedzie naprawde losowy. Inaczej jest tak jak np. z upc – pare minut i masz haslo.
Czego to ludzie nie wymyślą. Wszystko tylko po to by okraść drugiego…
Wystarczy radiotelefon z zakresem 400 mhz i po postawieniu nosnej w promieniu okolo kilometra aut nie otwoza i zamkna i wiele innych rzeczy co dziala na pilota.
Dokładając „dopałke” na kilkadziesiąt W + antena można by nieźle zamieszać ;)
Jeszcze brakuje mnie mazdy 6 (też tej najnowszej). W warszawie jest najczęściej kradzionym samochodem. W ogóle rozmowę powinniśmy zacząć od tego, że nie ma sposobu na zabezpieczenie auta przed kradzieżą jak jest na auto zlecenie. Można ją tylko utrudnić. Jedynie co chroni przed kradzieżą to ubezpieczenie.
Ubezpieczenie nie chroni w żaden sposób przed kradzieżą auta, lecz, że tak to powiem, leczy rany, zajmuje się już skutkiem a nie przyczyną :)
Jedyny sposób zapobiegający kradzieży samochodu… poprostu NIE POSIADAĆ SAMOCHODU:-)
To trochę kiepsko z moim samochodem, jest narażony na kradzież .
Jest jednak sposób zabezpieczenia, drugi pilot na podczerwień lub ukryty kontaktron uruchamiany zwykłym magnesem z układem czasowym zwłocznym , odcinający zapłon. Jeśli po uruchomieniu silnika nie wyłączy się licznika czasu magnesem to samochód zatrzyma się po paru metrach zwracając na siebie uwagę innych kierowców :-) 100% skuteczne
Do Ewa: Zgadzam się że warto mieć ukryty przełącznik, ale używany przed uruchomieniem silnika, nie po. Co jak coś nie wypali i silnik wyłączy się np. podczas wyprzedzania?
Kiedyś zgłębiałem zasadę działania komputera silnika w moim samochodzie i tam np. do uruchomienia silnika konieczny jest sygnał z czujnika wałka rozrządu (dobre miejsce na podłączenie ukrytego włącznika. W trakcie pracy silnika brak tego sygnału jedynie wygeneruje błąd ale silnik będzie dalej pracował używając czujnik na wale korbowym.