Téměř všechny vozy jsou v současné době vybaveny klíčenkou, která vám umožňuje otevřít dveře a nastartovat auto. Když si koupíte auto, přesvědčivým prvkem je pohodlí. Přívěšek na klíče můžete nechat v kapse a už se nemusíte bát fyzického klíče. To zní skvěle.

Váš implicitní předpoklad je, že systém přívěsku na klíče je bezpečný a že nějaká náhodná osoba s hardwarem za 50 USD nemůže s vaším autem odjet. Nemáte žádný skutečný způsob, jak zjistit, zda automobilka odvedla rozumnou práci se svým systémem, takže jim musíte věřit. Bohužel tato důvěra není vždy opodstatněná. A problémy se objeví až ve chvíli, kdy se lidé pokusí tyto systémy hacknout. Problémy, které méně svědomití lidé již možná využívali.

Klíčenka vašeho auta

Existuje mnoho různých systémů klíčenky. Začneme tím, že se podíváme na klíčenku pro můj Prius 2006. Klíčenky používají něco, čemu se říká dálkový bezklíčový systém (RKS). V USA pracují na 315 MHz, +/- 2.5 MHz. Můj klíč Prius se ukázal být na 312.590 MHz. Všechny klíčenky jsou uvedeny v databázi FCC. Sledování nových položek je jedním ze způsobů, jak lidé mohou zjistit, kdy vycházejí nové modely aut. Ty se objeví dlouho před oficiálním oznámením.

Pomocí SDR můžete zjistit, na jaké frekvenci vaše klíčenka vysílá, a ke sledování spektra použít GQRX nebo SDR#. Když stisknete tlačítko na ovladači, měli byste vidět krátký skok ve spektru. Možná budete muset posunout frekvenční pásmo nahoru nebo dolů o několik MHz, abyste našli signál, můj byl téměř 2.5 MHz nízký.

Jedno slovo opatrnosti. Nenechte se příliš unést stisknutím tlačítka! Systém RKS používá pohyblivý pseudonáhodně generovaný kód. Klíčenka i auto se synchronizují, takže auto rozpozná další kód. Pokud se však klíčenka dostane příliš dopředu v sekvenci (100 s stisknutí tlačítka), vůz jej nerozpozná. Tím je klíč (a auto) podstatně méně užitečný!

Pokud zachytíme signál, výsledek je uveden níže

Celková šířka grafu je 10 sekund, takže můžete vidět, že jedna klávesa je stisknuta krátce po 2 sekundách a druhá krátce po 5 sekundách.

ČTĚTE VÍCE
Proč můj motor nenastartuje, ale baterie je dobrá?

Pokud vykreslíme 100 ms počínaje 2 sekundami, můžeme vidět digitální signál, který hledáme:

Přiblížením na prvních pár bitů se dostáváme

Bity lze snadno identifikovat. Rozhodovací práh 15 poskytne téměř dokonalou detekci. Pokud to uděláme a pak vykreslíme první část digitálních dat pro dvě stisknutí kláves, dostaneme toto

Ačkoli oba začínají stejně, rychle se rozcházejí. To je štěstí, protože kdyby byl signál pokaždé stejný, měli byste dost informací na to, abyste mi ukradli auto!

Data jsou opět klíčování zapnuto-vypnuto (OOK). Je to také téměř jistě kódování rozdělené fáze (nebo Manchester). Místo toho, aby „1“ bylo vysoké a „0“ bylo nízké, je informace kódována při přechodu z vysoké na nízkou nebo z nízké na vysokou. To znamená, že bit „0“ je rostoucí přechod a bit „1“ je klesající přechod. Dobrým způsobem, jak rozpoznat kódování s rozdělenou fází, je, že můžete mít pouze jeden nebo dva nízké nebo vysoké segmenty v řadě. Pěkná věc na kódování Manchester je, že každý symbol má přechod, a ty se snáze hledají, když je signál po několik intervalů vysoký nebo nízký.

Tento příklad je OOK, který je nejběžnější pro dálkové ovladače do auta. Některé používají klíčování s frekvenčním posunem (FSK), kde je každý bit přenášen jako jiná frekvence a obálka je konstantní.

Útoky na dálkové ovládání auta

Existuje mnoho různých útoků, které lze použít proti dálkovým ovladačům automobilů v závislosti na tom, jak fungují a jaký druh přístupu hledáte. To nejjednodušší vám umožní otevřít auto. Důkladnější útoky vám poskytnou úplnou kontrolu tím, že v podstatě naklonujete dálkový ovladač.

Většina přívěsků na klíče používá rolovací klíč. Tím se vytvoří nový tvar vlny, který závisí na ID přívěsku na klíče, náhodném zdroji a kolikrát byla klávesa stisknuta. Auto sleduje poslední kód, který obdrželo, a ví, jaké by mohlo být dalších několik stovek kódů. Pokud detekuje jeden z očekávaných budoucích kódů, otevře vůz. Pokud obdrží dříve použitý kód, přestane reagovat na klíčenku. Pro Prius musíte udělat „Kuřecí tanec“, aby znovu fungoval, za předpokladu, že máte další funkční klíčenku. V opačném případě musíte nechat prodejce překlíčovat auto za mnoho stovek dolarů. Teď jsem to musel udělat párkrát (z jiných důvodů).

ČTĚTE VÍCE
Jak často mám nabíjet svou Hondu Clarity?

Existuje několik linií útoku. Jedním z nich je jednoduše zaznamenat výstup klíčenky na několik stisknutí tlačítka, když je daleko od auta nebo je auto zablokované. Se zaznamenanými nepoužitými kódy můžete auto otevřít.

Dalším je reverzní inženýrství sekvence RKS. Obecně by to mělo být extrémně těžké. Vyskytlo se však několik situací, kdy je to velmi snadné.

Konečně jsou auta, která se otevřou, když se majitel přiblíží k autu. To je založeno na signálu s nízkým výkonem, který lze přijímat pouze tehdy, když je klíčenka velmi blízko. To lze překonat zesílením těchto malých signálů.

Existuje mnoho dalších útoků a ty se budou i nadále množit, protože auta jsou stále složitější a mají více vestavěných počítačových systémů, o které se musí jít. Na některé z nich se můžete podívat příští týden.

Přehrát útoky

Nejstarším a nejjednodušším přístupem bylo zaznamenat křivku, kterou klíčenka vydá (pomocí vašeho rtl-sdr), a poté ji přehrát. To funguje dobře pro starší otvírače garážových vrat, které používaly jeden pevný klíč. Stále existují auta, která mají klíčenky, které fungují tímto způsobem (například některé Mercedesy před rokem 2000).

U přívěsků na klíče, které používají rolovací klíč, můžete stále použít útok opakovaného přehrávání. Pokud můžete získat přístup k přívěsku na klíče, když je pryč od auta, a zaznamenat několik stisknutí kláves, můžete je přehrát, abyste měli auto otevřené.

Pokud nemůžete získat přístup k přívěsku na klíče, druhým přístupem je vytvořit zařízení, které zaznamenává výstup klíčenky, když je používán, a současně ruší auto. Standardním způsobem, jak toho dosáhnout, je poslechnout přenos klíčenky a poté začít rušit, když jsou na konci přeneseny bity opravy chyb. Tak se nezaseknete. Auto paket nerozpozná, ale můžete znovu vytvořit bity pro opravu chyb a znovu odeslat křivku později.

Konečně, rušička sama o sobě zabrání dálkovému ovládání zamknout auto. Pokud řidič není pozorný, může odejít od auta a nechat ho otevřené.

Zařízení pro retranslaci

To vše závisí na vaší schopnosti vysílat i přijímat RF. Vaše rtl-sdr jsou pouze přijímače a dělají skvělou práci při získávání signálů. Možností přenosu je mnoho. Existuje řada usb klíčů, které jsou založeny na čipech TI CC111X, které se používají v klíčenkách, jako je tento

ČTĚTE VÍCE
Jak resetuji varování před defektem pneumatiky na Infiniti Q50?

Zajímavý a flexibilnější přístup využívá vaše Raspberry PI ke generování RF odesláním pečlivě vytvořené datové sekvence do portu GPIO. Toto je podrobně popsáno s videi a odkazy na kód zde:

Díky tomu můžete generovat prakticky jakýkoli digitální paketový průběh, který byste chtěli. Úrovně výkonu jsou více než dostatečné pro emulaci klíčenky. Rtl-sdr’s jsou také dobře podporovány na Raspberry PI, takže oba dohromady vám poskytnou celkový systém hackování klíčenky za 50 dolarů nebo tak, jak brzy uvidíme.

Útok na systémy pasivního bezklíčového vstupu a startování (PKES).

Mnoho vozů vyšší třídy používá pasivní systém pro otevření vozu, když se řidič přiblíží. Signál nízkého výkonu je přenášen z vozu jako výzva. Klíčenka poté odpoví autentizací. Protože je výkon tak nízký, auto předpokládá, že řidič musí být v těsné blízkosti, pokud obdrží odpověď.

Tyto systémy mohou být hacknuty vybudováním opakovače, který je umístěn v blízkosti auta. Zachycuje signál vozu a znovu jej vysílá s vyšším výkonem. Dálkový ovladač může být kdekoli v okruhu několika set metrů a stále bude slyšet signál. Dálkový ovladač odpoví, a to je opět zachyceno opakovačem a znovu odesláno. Auto si myslí, že klíčenka je poblíž a otevře auto.

Pěkné na tomto přístupu je, že o klíčence nemusíte vědět nic, kromě její frekvence. Protokol, který používá, nepotřebujete zpětně analyzovat, ve skutečnosti pouze používáte skutečný klíč!

Zde je video, jak někteří zloději péče ukradli Teslu s tímto přístupem

Jak můžete toto riziko snížit?

Útok na systém Rolling Key

Další útoky jdou po samotném systému rolovacího klíče. Obecně to funguje tak, že klíčenka odešle ID spolu s počítadlem, kolikrát byla klávesa stisknuta. To je zašifrováno a přeneseno do auta, když stisknete tlačítko.

Pokud je šifrování silné, je extrémně obtížné zjistit, jaké je ID uživatele a čítač. Zajímavých případů je několik. Jedním z nich je 20 let VW (a Audi, Porsche atd.), na které se zde podíváme. Další je pro Subarus, na který se můžete podívat na svůj úkol tento týden.

Popis systému VW RKS je uveden zde

ČTĚTE VÍCE
Má Citroen C5 Aircross pohon zadních kol?

To ukazuje na článek Wired (který je bohužel v současnosti za paywallem) a obsahuje technický dokument, který jde do velkých podrobností o tom, jak to funguje. Autoři technické práce se zabývali systémy VW RKS za posledních 20 let.

U nejnovějších systémů bylo šifrování relativně silné, ekvivalentní 90bitovému klíči. Ukázalo se však, že použili stejný klíč v každém autě! 100 milionů z nich!

Úkolem pak je zjistit, jaký je klíč a jaký je šifrovací algoritmus. Samotné auto vám to pomůže vyřešit. Po stisknutí tlačítka vůz přijme signál a poté jej dekóduje v palubním počítači (ECU). Klíč a algoritmus jsou uloženy ve firmwaru ECU. Autoři nakoupili některé ECU na EBay, stáhli firmware a provedli zpětnou analýzu šifrování (obvykle jde o poměrně jednoduché bitové operace, které lze snadno identifikovat). S touto znalostí lze po získání signálu jediným stisknutím tlačítka dekódovat ID uživatele a počítadlo a naklonovat klíčenku, což poskytuje úplnou kontrolu nad vozem.

Je zde několik zajímavých věcí. Jedním z nich je, že každé auto VW dekóduje každý přívěsek na klíče, takže sledováním výkonu vaší ECU můžete najít ID uživatele a počítadlo pro všechna auta kolem vás. Existují zprávy o lidech, kteří používají podobné systémy ke krádeži automobilů jiných značek.

Důvodem, proč pouze vaše auto reaguje na vaše dálkové ovládání, je to, že vaše auto má „seznam povolených“ ID klíčenky, na které reaguje. To je to, co se nastaví, když překlíčujete auto.

To vše zní dost alarmujícím způsobem. Ale bude to horší, jak uvidíme příští týden.

Přiřazení

Tento týden máte několik možností pro váš úkol. Pro každé téma vygenerujte asi 5 snímků, ve kterých popíšete své myšlenky nebo výsledky. Zaregistrujte se zde

a nahrajte své snímky zde:

1. Tento článek se týká systému Subaru RKS. Přečtěte si to, podívejte se na videa a popište, co najdete.

2. Přemýšleli jste někdy, jak fungují tyto hotelové karty? Tento článek popisuje non-RF hack, který využívá stejné myšlenky jako útoky na klíčenky.

3. Proč krást auto, když můžete mít buldozer! Přečtěte si tento článek a podívejte se na video, abyste viděli, jak to funguje.

ČTĚTE VÍCE
Proč mi nezhasne kontrolka výměny oleje?

4. Existuje spousta dalších autohacků. Podívejte se, jestli nenajdete něco zajímavého, a popište to. Hledejte příběhy, kde zjistíte, jak to funguje. Zábavní systémy jsou běžným způsobem přístupu (podívejte se na hack Uconnect pro Jeepy). Tesla a hackeři mají za sebou dlouhou hru na kočku a myš. Je zde spousta zajímavých příkladů. Dvě nedávné jsou Tesly a Hondy.

Nakonec, pokud jste to ještě neudělali, pošlete mi e-mail o tom, jak pro vás kurz probíhá. Oceňuji vaše myšlenky. Dík!