Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Briefing al discursului:

Pentru mulți dintre noi, o mașină este una dintre cele mai scumpe achiziții pe care le vom face vreodată. Într-o lume în care totul este conectat, este firesc să dorim să ne controlăm mașina de la distanță: primiți mementouri despre locul în care am parcat-o, verificați pentru a vă asigura că am uitat să blocăm ușile sau porniți de la distanță motorul pentru a preîncălzi sau răci interiorul in functie de perioada anului.

Există mulți producători care oferă sisteme de alarmă opționale care oferă acest confort și liniște sufletească. Dar cât de mult putem avea încredere în furnizorii acestor sisteme pentru a proteja accesul la mașinile noastre în domeniul digital? În această discuție, Jmaxxz va vorbi despre ceea ce a descoperit când s-a uitat într-unul dintre aceste sisteme.

Jmaxxz este cunoscut pentru munca sa cu sistemele inteligente August Smart Lock (prezentare la DEFCON 24 „Backdooring The Frontdoor”). În ultimii ani, s-a concentrat pe dispozitivele IoT. El a participat la secțiunile „IoT village zero day” din DEFCON 24 și DEFCON 25 și, în cele din urmă, a decis că este timpul să exploreze un produs al pieței secundare de automobile - un pornitor de la distanță (denumit în continuare RS).

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Deci, numele meu este J-Max, sunt programator de profesie și hacker de vocație. Sunt implicat în toate lucrurile legate de blocarea și pe parcursul acestei conversații veți auzi multe declarații care exprimă doar opinia mea și nu au nicio legătură cu opiniile angajatorilor mei din trecut, prezent și viitor. După cum probabil ați înțeles, vom vorbi despre mașini, și anume despre demaroare de la distanță și sisteme de alarmă. Să începem cu niște antecedente, ceea ce este important în acest context, deoarece mulți consideră astfel de sisteme ca fiind un lux inutil.
Deci acolo unde locuiesc este destul de frig și prietenul meu suferă de o afecțiune numită sindromul Raynaud. Frigul provoacă un spasm al vaselor de sânge din mâini, fluxul de sânge către degete este redus brusc și apar semne de degerături, inclusiv necroza tisulară. Slide-ul arată cum arată de obicei.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

În noiembrie anul trecut, încă nu mă hotărâsem ce îi voi da de Crăciun. Așa că se întoarce acasă de la aeroport supărată pentru că mașina ei nu s-a încălzit niciodată în drum spre casă. În acel moment, mi-am dat seama că îi voi oferi un sistem de pornire a motorului de la distanță și am început să caut cea mai bună variantă. Se pare că piața de pornire de la distanță este destul de mare, mulți producători nu oferă suficiente informații despre produsul lor.

Nu vă spun cum să instalați sistemul sau ce instrumente să utilizați pentru a programa dispozitivul. Aceasta este o problemă pentru mine, deoarece aceasta este mașina mea, pornirea mea de la distanță și trebuie să am acces la aceste instrumente. Așa că am mai căutat puțin și am găsit o firmă din Canada, Fortin, care produce astfel de startere și oferă de bunăvoie toată documentația necesară. M-am hotărât pe acest produs și am început să caut o telecomandă potrivită. Faptul este că, dacă utilizați o telecomandă standard cu un demaror de la distanță, atunci aria sa de acțiune va fi limitată la aria telecomenzii standard. Sunt oferite telecomenzi aftermarket care funcționează pe o rază de o jumătate de milă până la o milă și jumătate. Potrivit recenziilor consumatorilor, aceasta este o cascadorie publicitară, deoarece, în realitate, distanța este mult mai mică. Aceasta este problema, pentru că prietena mea trebuie să pornească motorul mașinii ei în parcarea aeroportului de îndată ce coboară din avion, care este la aproximativ jumătate de milă.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Așa că ar fi grozav dacă și-ar putea scoate telefonul, deschide aplicația și apasă pe Start. Am găsit un produs terță parte numit MyCar care este pe deplin compatibil cu demarorul Fortin. Acesta este un breloc mic cu o cartelă SIM și un receptor GPS pe care îl puteți pune în mașină și îl puteți conecta la demaror de la distanță. Apoi, folosind o aplicație mobilă, puteți porni motorul de la distanță, puteți debloca încuietorile și altele asemenea.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

M-am gândit că asta ar fi grozav: imediat după ce avionul aterizează, prietena mea poate porni motorul și, până ajunge la mașină, cabina va fi deja caldă.

Deci, să vorbim puțin despre modul în care funcționează pornitoarele de la distanță. Pentru a face acest lucru, mai întâi trebuie să înțelegeți cum pornește motorul unei mașini. Până la jumătatea anilor nouăzeci, demarorul de mașină era o încuietoare mecanică tradițională într-o combinație cheie-întrerupător. Trebuia să introduci cheia și să o rotești pentru a finaliza circuitul electric. Apoi, încuietorile etichetate „imobilizator” au devenit populare în Statele Unite. Sună complicat, dar este doar o încuietoare electronică. Deci, aveți o încuietoare mecanică, care este cheia unei încuietori electronice, care, la rândul său, este un transponder și conține câteva informații care pot fi citite. Și până când nu deschideți încuietoarea electronică, mașina dvs. nu va porni. În partea dreaptă a glisierei vezi 2 chei: cea din stânga este pentru imobilizator, iar cea din dreapta este pentru contactul obișnuit. Pur și simplu acţionează componentele mecanice ale broaștei, în timp ce cheia din stânga deblochează încuietoarea electronică, care va porni motorul mașinii.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

De ce vă spun despre asta? Pornirea de la distanță funcționează prin imobilizator. Pe următorul diapozitiv vedeți o diagramă de conectare a dispozitivului Fortin EVO One la imobilizator - în stânga jos vedeți o pereche de contacte desemnate ca IMO. În dreapta sus a diagramei vezi două linii: CAN LOW și CAN HIGH. Acestea sunt contacte pentru conectarea la magistrala CAN auto. Motivul pentru care demaroarele de la distanță sunt conectate la magistrala CAN este reducerea costurilor de instalare, deoarece sunt utilizate mai puține conexiuni în timpul instalării. Dacă demarorul de la distanță poate citi date din magistrala CAN sau poate trimite comenzi prin magistrala CAN, acest lucru reduce timpul de instalare pentru sistemul de pornire de la distanță a motorului.

În partea stângă sus a diagramei există o mulțime de GPIO care sunt asociate cu controlul sau citirea informațiilor despre mașină. De exemplu, doriți ca luminile să clipească sau să sune un claxon atunci când apăsați butonul de blocare. Lucruri de genul acesta pot fi controlate folosind aceste GPIO. În partea stângă jos a diagramei, puteți vedea un conector mare și neplăcut - aceasta este interfața care ocolește blocarea mecanică. Adică nu trebuie să introduceți și să întoarceți cheia în contact deoarece această interfață permite releului sistemului de pornire de la distanță să comunice direct cu încuietoarea electrică.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Următoarele diapozitive arată etapele instalării unui demaror de la distanță. Constă în principal în îndepărtarea capacului coloanei de direcție, instalarea și conectarea unității DS. Pare destul de înfricoșător, dar este ușor de făcut.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Telecomenzile în sine se conectează la ceea ce Fortin numește o legătură de date. Sistemul folosește protocolul proprietar de transfer de date fizice UART - un transmițător asincron universal care schimbă date la o viteză de 9600 baud. Pornitorul de la distanță Fortin se conectează pur și simplu printr-o magistrală UART la cele două telecomenzi pe care le vedeți pe slide.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

După ce am instalat DS-ul, m-am gândit la modul în care astfel de dispozitive ar putea afecta siguranța mașinii. Evident, DS-ul trebuie să ocolească imobilizatorul, deci cât de sigur este acesta în ceea ce privește posibilitatea furtului sau interceptării controlului mașinii? Acest lucru se aplică nu numai transmisiei de date prin rețeaua celulară, ci și semnalului de pornire de la distanță în sine. Așa că am început să caut pe internet informații despre producător despre protocolul de transfer de date folosit și am ajuns pe forumuri unde oamenii au scris că Fortin a refuzat să ofere acest protocol. Unul dintre motive: „Nu distribuim astfel de informații pentru că EVO nu este o jucărie pentru amatori, este destinată utilizării de către profesioniști.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Fiind ceva profesionist, am decis să-mi construiesc propria mașină pe desktop. Am luat o a doua unitate de sistem EVO, am asamblat o placă de circuite care reprezenta mașina, am adăugat întrerupătoare pentru a simula contactul, un buton pentru pedala de frână și o grămadă de LED-uri pentru a arăta diverse stări.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Punând toate acestea cap la cap, am conectat dispozitivul de monitorizare a legăturii de date FTI și am început să colectez aceste date. La început seamănă cu diapozitivul și nu este complet clar ce se întâmplă aici. Dar dacă te uiți cu atenție, poți spune că există cu siguranță un fel de structură aici.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Vă rugăm să rețineți că ori de câte ori apăs pe un buton de pe telecomandă, mesajul pe care antena îl trimite către DS-ul meu începe întotdeauna cu 0C și se termină cu 0D. Deci, dacă împărțim ceea ce obținem, presupunând că 0C este începutul și 0D este sfârșitul, vom ajunge cu ceva de genul acesta.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Există deja un fel de structură clar vizibilă aici, astfel încât să vă puteți da seama ce se întâmplă. Petrecând timp urmărind ce mesaj a apărut după apăsarea unui anumit buton, am reușit să creez un tabel de comenzi, fiecare din care corespundea unei anumite acțiuni. Adică, atunci când apăsați un buton de pe telecomandă, antena trimite o comandă către modulul de pornire de la distanță care arată așa.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Iată cum arată o structură tipică de echipă.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Când apăsați un buton de pe telecomandă, antena trimite o astfel de comandă la telecomandă. Este trezit de octetul 0C, urmat de 2 octeți, care cred că reprezintă direcția de transmisie. Acest lucru este interesant pentru că UART are deja o direcție a semnalului, așa că am marcat acești octeți ca „gunoi”, doar tratează-i ca o constantă. Acesta este urmat de un singur octet care indică comanda pe care utilizatorul ar dori să o execute. Aceasta ar putea fi încuierea ușilor sau deschiderea lor, oprirea alarmei etc. În general, tot ceea ce doriți să faceți de la distanță este asociat cu această comandă. Sarcina utilă FF FF F1 este o adresă sau un identificator care identifică antena de la distanță de la care a venit mesajul. Dacă unitatea DS nu recunoaște identificatorul, comanda este ignorată. Dacă DS acceptă identificatorul, începe o procedură în mai mulți pași, care include verificarea prezenței cheii în contact, pornirea sau oprirea motorului, apăsarea pedalei de frână etc. De fapt, acest proces nu are prea multă semnificație, doar că dispozitivul învață ID-ul în acest moment.

La sfârșitul mesajului există un octet cu o sumă de control și un octet care indică sfârșitul comenzii. Acum că înțelegem cum funcționează protocolul, ce putem face în privința acestuia? Am câteva videoclipuri pe această temă. Din păcate, din anumite motive, videoclipul este fără sunet, așa că vă voi spune ce se întâmplă pe ecran. În stânga coloanei de direcție de pe carcasa tabloului de bord se află o cutie albă care conține electronice cu firmware Particle.IO care înțelege protocolul Fortin. Firul cu vârful albastru este antena. Acest lucru îmi permite să interacționez cu unitatea de pornire de la distanță din interiorul mașinii și să văd ce se întâmplă pe ecranul laptopului.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Așa că trimit comanda de blocare deblocare la mașină dar nu funcționează pentru că DS-ul nu știe de această antenă. După cum am menționat deja, acesta este doar un UART, a cărui proprietate este de a sprijini așa-numita comunicare bidirecțională, datorită căreia puteți obține de la distanță informații despre starea mașinii. De exemplu, dacă motorul a fost pornit sau oprit fizic, unitatea DS va trimite un mesaj corespunzător la antena telecomenzii. În acest caz, mesajul va conține chiar adresa acestei antene.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Problema este că comunicarea se realizează folosind protocolul UART și oricine se conectează la magistrala UART poate vedea adresa la care este trimis un anumit mesaj, astfel încât firmware-ul meu are capacitatea de a clona adresa unei antene existente, ceea ce fac eu. cu comanda corespunzătoare.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Pentru a genera un mesaj, trebuie doar să deschideți ușa mașinii. După cum puteți vedea, DS trimite un mesaj către antenă că ușa a fost deschisă, iar alarma se aprinde imediat.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Pentru a opri alarma, trimit comanda „deblocare”, după care sunetul alarmei este oprit și mașina este deblocată. Va trebui să mă credeți pe cuvânt, deoarece nu am reușit ca acest videoclip să fie redat cu sunet. Să încercăm să redăm videoclipul din nou.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Ei bine, a apărut sunetul (nota traducătorului: același videoclip cu sunet este redat pe ecran). Deci, ați văzut cum am trimis comanda DS și am pornit alarma, totul fără cheie. Acum să încercăm să pornim mașina în același mod; pentru a face acest lucru, urmăriți următorul videoclip.

De obicei, dacă tastați doar „start” și încercați să porniți motorul, nu va funcționa. Motivul este că aceasta este o mașină cu transmisie manuală, iar sistemele de pornire de la distanță au o procedură specială pentru astfel de mașini. În acest caz, trebuie să apăsați butonul de pornire de la distanță în timp ce cheia este în contact și motorul este pornit. Apoi puteți scoate cheia, puteți coborî din mașină, închide ușa, după care DS va opri motorul și va încuia ușa. Acest lucru se face pentru a împiedica mașina să răspundă la pornirea de la distanță a motorului în timpul conducerii, deoarece acest lucru este periculos. Cu toate acestea, aceasta nu este o caracteristică de securitate completă. Acest lucru este destul de ușor de demonstrat privind unitatea de pornire de la distanță EVO. Vedeți acest fir buclă galben care este proiectat să funcționeze cu o transmisie manuală. Dacă este tăiat, acest bloc poate fi folosit pentru o mașină cu transmisie automată. Acest design al unității vă permite să nu utilizați setări speciale atunci când instalați DS-ul în mașini cu diferite tipuri de transmisie.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Deci sistemul nu a răspuns la comanda „pornire”, așa că voi pune acest bloc la loc și voi tăia acest fir pentru a întrerupe conexiunea. Acum, dacă repeți comanda „pornire”, va suna un semnal sonor și indicatoarele de stare ale sistemelor mașinii se vor aprinde pe panoul de instrumente, așa cum se întâmplă atunci când o cheie este introdusă în încuietoare.

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 1

Momentan avem o mașină pe care o putem porni de la distanță fără cheie în contact, dar modulul DS nu este tot ce ne trebuie. În circumstanțe normale, tot nu vei putea să pleci cu mașina pornită de la distanță, dar haideți să încercăm oricum.

Pentru a dezactiva blocarea volanului, trebuie să introduceți o cheie obișnuită în blocarea contactului, care nu are niciun transponder. După cum puteți vedea, este suficient să mutați cheia în poziție înainte de a porni motorul, iar volanul Subaru Impreza începe să se rotească complet liber.

Cu toate acestea, dacă nu aveți nicio cheie, atunci când apăsați pedala de frână mașina se va bloca. Este destul de ușor să ocoliți această limitare. Trebuie să vă dați seama cum mașina îi spune demarorului de la distanță că frâna este aplicată. Vedeți mai multe porturi multicolore în partea din spate a carcasei modulului EVO - cablul de la magistrala CAN va fi conectat aici. Este suficient să scoateți pur și simplu acest cablu din unitatea DS după ce mașina este pornită de la distanță și nu va răspunde la apăsarea pedalei de frână. Deoarece această unitate este situată sub capacul coloanei de direcție, dau comanda „pornire” prin laptop, mașina pornește, deschid portiera, ies din mașină și scot conectorul CAN bus de la unitatea EVO. După cum puteți vedea, motorul mașinii merge, dar încă nu avem nicio cheie în contact.

Acum, dacă apăsați pedala de frână, nu se va întâmpla nimic pentru că EVO nu știe că a fost apăsat. După aceea, pot să mă urc la volan, să apăs frâna, să muți schimbătorul de viteze în poziția „Drive”, iar mașina începe să se miște. Toate acestea se fac fără nicio cheie.

21:40

Conferința DEFCON 27. Mașina ta este mașina mea. Partea 2

Câteva reclame 🙂

Vă mulțumim că ați rămas cu noi. Vă plac articolele noastre? Vrei să vezi mai mult conținut interesant? Susține-ne plasând o comandă sau recomandând prietenilor, cloud VPS pentru dezvoltatori de la 4.99 USD, un analog unic al serverelor entry-level, care a fost inventat de noi pentru tine: Întregul adevăr despre VPS (KVM) E5-2697 v3 (6 nuclee) 10GB DDR4 480GB SSD 1Gbps de la 19 USD sau cum să partajezi un server? (disponibil cu RAID1 și RAID10, până la 24 de nuclee și până la 40 GB DDR4).

Dell R730xd de 2 ori mai ieftin în centrul de date Equinix Tier IV din Amsterdam? Numai aici 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV de la 199 USD in Olanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - de la 99 USD! Citește despre Cum se construiește infrastructura corp. clasa cu folosirea serverelor Dell R730xd E5-2650 v4 in valoare de 9000 euro pentru un ban?

Sursa: www.habr.com

Adauga un comentariu