Ettekande lühikokkuvõte:
Paljude meist on auto üks kallimaid oste, mille me kunagi teeme. Maailmas, kus kõik on omavahel ühendatud, on loomulik, et tahame oma autot kaugjuhtida: saada meeldetuletusi selle kohta, kuhu auto parkisime, kontrollida, kas oleme unustanud uksed lukustada, või kaugkäivitada mootor salongi eelsoojendamiseks või jahutamiseks. olenevalt aastaajast.
Paljud tootjad pakuvad valikulisi häiresüsteeme, mis tagavad selle mugavuse ja meelerahu. Kuid kui palju saame usaldada nende süsteemide pakkujaid, et nad kaitseksid juurdepääsu meie autodele digitaalvaldkonnas? Selles kõnes räägib Jmaxxz sellest, mida ta avastas, kui ta ühte neist süsteemidest uuris.
Jmaxxz on tuntud oma töö eest August Smart Lock nutikodu süsteemidega (ettekanne DEFCON 24 "Backdooring The Frontdoor"). Viimastel aastatel on ta keskendunud asjade Interneti-seadmetele. Ta osales DEFCON 24 ja DEFCON 25 sektsioonides „IoT Village zero day” ning otsustas lõpuks, et on aeg uurida autotööstuse järelturu toodet – kaugkäivitit (edaspidi RS).

Niisiis, minu nimi on J-Max, olen elukutselt programmeerija ja kutselt häkker. Olen seotud kõigi lukuga seotud asjadega ja selle vestluse jooksul kuulete palju avaldusi, mis väljendavad ainult minu arvamust ja millel pole seost minu endiste, praeguste ega tulevaste tööandjate arvamustega. Nagu te ilmselt aru saite, räägime autodest, nimelt kaugkäivititest ja häiresüsteemidest. Alustame taustast, mis on selles kontekstis oluline, sest paljud peavad selliseid süsteeme tarbetuks luksuseks.
Seega, kus ma elan, on üsna külm ja mu sõber põeb haigust, mida nimetatakse Raynaudi sündroomiks. Külm põhjustab kätes veresoonte spasmi, sõrmede verevool väheneb järsult, ilmnevad külmumisnähud, sealhulgas kudede nekroos. Slaid näitab, kuidas see tavaliselt välja näeb.

Eelmise aasta novembris polnud ma ikka veel otsustanud, mida ma talle jõuludeks kinkin. Nii naaseb ta lennujaamast koju ärritunult, sest tema auto ei läinud koju minnes kordagi soojaks. Sel hetkel mõistsin, et annan talle mootori kaugkäivitussüsteemi ja hakkasin otsima parimat varianti. Selgub, et kaugkäivitajate turg on üsna suur, paljud tootjad ei anna oma toote kohta piisavalt teavet.
Nad ei ütle teile, kuidas süsteemi installida või milliseid tööriistu seadme programmeerimiseks kasutada. See on minu jaoks probleem, sest see on minu auto, minu kaugkäivitus ja mul peab olema juurdepääs nendele tööriistadele. Niisiis otsisin veidi rohkem ja leidsin Kanadast firma Fortini, kes toodab selliseid startereid ja varustab meelsasti kogu vajalikku dokumentatsiooni. Otsustasin selle tootega ja hakkasin sobivat kaugjuhtimispulti otsima. Fakt on see, et kui kasutate kaugkäivitiga tavalist kaugjuhtimispulti, siis piirdub selle tegevusulatus tavalise kaugjuhtimispuldi vahemikuga. Pakutakse järelturu kaugjuhtimispulte, mis töötavad vahemikus pool miili kuni poolteist miili. Tarbijate arvustuste kohaselt on tegemist reklaamitrikiga, sest tegelikkuses on vahemaa palju lühem. See on probleem, sest mu sõbrannal on vaja lennujaama parklas oma auto mootor käivitada kohe pärast lennukist väljumist, mis on umbes pool miili.

Seega oleks tore, kui ta saaks lihtsalt oma telefoni välja tõmmata, avada rakenduse ja vajutada Start. Leidsin kolmanda osapoole toote nimega MyCar, mis ühildub täielikult Fortini starteriga. See on väike SIM-kaardi ja GPS-vastuvõtjaga võtmehoidja, mille saad autosse panna ja puldiga starteriga ühendada. Seejärel saate mobiilirakenduse abil mootori kaugkäivitada, lukke avada jms.

Arvasin, et see oleks suurepärane: kohe pärast lennuki maandumist saab sõbranna mootori käivitada ja auto juurde jõudes on salong juba soe.
Räägime siis natuke sellest, kuidas kaugkäivitajad töötavad. Selleks peate kõigepealt mõistma, kuidas auto mootor käivitub. Kuni üheksakümnendate keskpaigani oli auto starter traditsiooniline mehaaniline lukk võtme-lüliti kombinatsioonis. Elektriahela lõpuleviimiseks tuli võti sisestada ja keerata. Seejärel muutusid USA-s populaarseks lukud, millel oli silt "immobilisaator". See kõlab keeruliselt, kuid see on lihtsalt elektrooniline lukk. Niisiis, teil on mehaaniline lukk, mis on elektroonilise luku võti, mis omakorda on transponder ja sisaldab teavet, mida saab lugeda. Ja enne, kui avate elektroonilise luku, ei käivitu teie auto. Lükand paremal küljel näete 2 võtit: vasakpoolne on immobilisaatori jaoks ja parempoolne tavalise süütevõtme jaoks. See juhib lihtsalt luku mehaanilisi komponente, vasak võti aga avab elektroonilise luku, mis käivitab auto mootori.

Miks ma teile sellest räägin? Kaugkäivitus töötab läbi immobilisaatori. Järgmisel slaidil näete skeemi Fortin EVO One seadme ühendamisest immobilisaatoriga – vasakpoolses alanurgas näete kontaktide paari, mis on tähistatud kui IMO. Diagrammi paremas ülanurgas näete kahte joont: CAN LOW ja CAN HIGH. Need on kontaktid auto CAN-siiniga ühendamiseks. Põhjus, miks kaugkäivitajad on CAN-siiniga ühendatud, on paigalduskulude vähendamine, kuna paigaldamise ajal kasutatakse vähem ühendusi. Kui kaugkäiviti suudab lugeda andmeid CAN-siinist või saata käske läbi CAN-siini, vähendab see mootori kaugkäivitussüsteemi installimise aega.
Diagrammi vasakus ülanurgas on terve hulk GPIO-sid, mis on seotud masina juhtimise või teabe lugemisega. Näiteks soovite, et lukustusnupu vajutamisel vilkuksid tuled või kostaks helisignaal. Selliseid asju saab juhtida nende GPIO-de abil. Diagrammi vasakus alanurgas näete suurt kohmakat pistikut – see on liides, mis läheb mehaanilisest lukust mööda. See tähendab, et te ei pea võtit süütelukku sisestama ja keerama, kuna see liides võimaldab kaugkäivitussüsteemi releel suhelda otse elektrilukuga.

Järgmised slaidid näitavad kaugkäiviti installimise etappe. See koosneb peamiselt roolisamba katte eemaldamisest, DS-seadme paigaldamisest ja ühendamisest. See tundub üsna hirmutav, kuid seda on lihtne teha.

Kaugjuhtimispuldid ise ühenduvad sellega, mida Fortin nimetab andmesideühenduseks. Süsteem kasutab patenteeritud füüsilist andmeedastusprotokolli UART – universaalset asünkroonset saatjat, mis vahetab andmeid kiirusega 9600 boodi. Fortini kaugkäivitus ühendub lihtsalt UART siini kaudu kahe kaugjuhtimispuldiga, mida näete slaidil.

Pärast DS-i paigaldamist mõtlesin, kuidas sellised seadmed võivad mõjutada auto ohutust. Ilmselgelt peab DS immobilisaatorist mööda minema, nii et kui turvaline on see varguse või auto juhtimise katkestamise võimaluse osas? See kehtib mitte ainult andmeedastuse kohta mobiilsidevõrgu kaudu, vaid ka kaugkäivitussignaali enda kohta. Nii hakkasin Internetist otsima tootjateavet kasutatava andmeedastusprotokolli kohta ja sattusin foorumitesse, kus inimesed kirjutasid, et Fortin keeldus seda protokolli andmast. Üks põhjusi: “Sellist infot me ei levita, kuna EVO ei ole amatööride mänguasi, see on mõeldud kasutamiseks professionaalidele.

Kuna olen professionaal, otsustasin ehitada oma masina töölauale. Sain kätte teise EVO süsteemiploki, panin kokku autot kujutava trükkplaadi, lisasin süüte simuleerimiseks lülitid, piduripedaali nupu ja terve hunniku LEDe erinevate olekute näitamiseks.

Kõik see kokku pannes ühendasin FTI andmeside seireseadme ja hakkasin neid andmeid koguma. Alguses näeb see välja nagu liumägi ja pole päris selge, mis siin toimub. Aga kui tähelepanelikult vaadata, siis võib öelda, et mingi struktuur siin kindlasti on.

Pange tähele, et iga kord, kui ma vajutan oma kaugjuhtimispuldi nuppu, algab teade, mille antenn saadab minu DS-ile, alati 0C-ga ja lõpeb 0D-ga. Nii et kui me lihtsalt jagame selle, mida me saame, eeldades, et 0C on algus ja 0D on lõpp, saame tulemuseks midagi sellist.

Siin on juba selgelt näha mingisugune struktuur, nii et saate aru saada, mis toimub. Veetes aega jälgides, milline sõnum ilmus pärast konkreetse nupu vajutamist, sain luua käskude tabeli, millest igaüks vastas konkreetsele toimingule. See tähendab, et kui vajutate kaugjuhtimispuldil nuppu, saadab antenn kaugkäivitusmoodulile käsu, mis näeb välja selline.

Siin näeb välja tüüpiline meeskonna struktuur.

Kui vajutate kaugjuhtimispuldil nuppu, saadab antenn sellise käsu kaugkäivitile. Selle äratab bait 0C, millele järgneb 2 baiti, mis minu arvates esindavad edastamise suunda. See on huvitav, kuna UART-il on juba signaali suund, seega märkisin need baidid "prügiks", käsitlege neid lihtsalt konstantina. Sellele järgneb üks bait, mis näitab käsku, mida kasutaja soovib täita. See võib olla uste lukustamine või avamine, alarmi väljalülitamine jne. Üldiselt on selle käsuga seotud kõik, mida soovite eemalt teha. FF FF F1 kasulik koormus on aadress või identifikaator, mis identifitseerib kaugantenni, millelt sõnum tuli. Kui DS-seade identifikaatorit ära ei tunne, ignoreeritakse käsku. Kui DS aktsepteerib identifikaatorit, algab mitmeetapiline protseduur, mis hõlmab süütelukku võtme olemasolu kontrollimist, mootori sisse- või väljalülitamist, piduripedaali vajutamist jne. Tegelikult pole sellel protsessil erilist tähtsust, lihtsalt seade õpib hetkel ID-d.
Sõnumi lõpus on bait kontrollsummaga ja bait, mis näitab käsu lõppu. Nüüd, kui saame aru, kuidas protokoll töötab, mida saame sellega teha? Mul on sellel teemal paar videot. Kahjuks on video millegipärast ilma helita, seega räägin teile, mis ekraanil toimub. Roolisambast vasakul armatuurlaua korpusel on valge kast, mis sisaldab Particle.IO püsivaraga elektroonikat, mis mõistab Fortini protokolli. Sinise otsaga juhe on antenn. See võimaldab mul suhelda kaugkäivitusseadmega auto seest ja vaadata, mis sülearvuti ekraanil toimub.

Seega saadan autole luku avamise käsu aga see ei tööta kuna DS ei tea sellest antennist. Nagu ma juba mainisin, on see lihtsalt UART, mille omaduseks on toetada nn kahepoolset suhtlust, tänu millele saate kaugjuhtimisega teavet auto oleku kohta. Näiteks kui mootor käivitati või seisatati füüsiliselt, saadab DS-seade vastava teate kaugjuhtimispuldi antennile. Sel juhul sisaldab teade just selle antenni aadressi.

Probleem seisneb selles, et side toimub UART-protokolli abil ja igaüks, kes loob ühenduse UART-siiniga, näeb aadressi, kuhu antud sõnum saadetakse, nii et minu püsivara suudab kloonida olemasoleva antenni aadressi, mida ma ka teen. vastava käsuga.

Sõnumi genereerimiseks peate lihtsalt avama auto ukse. Nagu näha, saadab DS antennile teate, et uks oli lahti ja alarm lülitub kohe sisse.

Alarmi väljalülitamiseks saadan käsu “avamine”, misjärel lülitatakse alarmi heli välja ja auto lukustatakse lahti. Peate minu sõna usaldama, kuna me ei saanud seda videot heliga esitama panna. Proovime videot uuesti esitada.

Noh, heli ilmus (tõlkija märkus: ekraanil mängitakse sama heliga videot). Niisiis, nägite, kuidas ma saatsin DS-käsu ja lülitasin äratuse sisse, seda kõike ilma võtmeta. Proovime nüüd autot samamoodi käivitada, selleks vaadake järgmist videot.
Tavaliselt, kui kirjutate lihtsalt "start" ja proovite mootorit käivitada, siis see ei tööta. Põhjus on selles, et tegemist on manuaalkäigukastiga autoga ja kaugkäivitussüsteemidel on selliste autode jaoks spetsiaalne protseduur. Sel juhul peate vajutama kaugkäivitusnuppu, kui võti on süütes ja mootor töötab. Seejärel saate võtme välja võtta, autost väljuda, ukse sulgeda, misjärel DS lülitab mootori välja ja lukustab ukse. Seda tehakse selleks, et auto ei reageeriks sõidu ajal mootori kaugkäivitamisele, sest see on ohtlik. See ei ole aga täielik turvafunktsioon. Seda on üsna lihtne tõestada, vaadates EVO kaugkäivitusseadet. Näete seda kollast aasajuhet, mis on mõeldud töötama käsikäigukastiga. Kui see on lõigatud, saab seda plokki kasutada automaatkäigukastiga auto jaoks. Seadme selline disain võimaldab teil DS-i paigaldamisel erinevat tüüpi käigukastiga autodesse mitte kasutada mingeid erisätteid.

Seega süsteem ei reageerinud "start" käsule, seega panen selle ploki oma kohale tagasi ja lõikan selle juhtme lihtsalt läbi, et ühendus katkestada. Nüüd, kui korrata käsku “start”, kostab helisignaal ja armatuurlaual süttivad auto süsteemide olekuindikaatorid, nagu juhtub siis, kui võti lukku sisestatakse.

Hetkel on meil auto, mille saame kaugkäivitada ilma süütelukku võtmata, aga DS moodul pole kõik, mida vajame. Tavaolukorras kaugkäivitatud autoga ikkagi ära sõita ei saa, aga proovime siiski.
Rooliluku väljalülitamiseks tuleb süütelukku sisestada tavaline võti, millel puudub transponder. Nagu näete, piisab võtme enne mootori käivitamist asendisse viimisest ja Subaru Impreza rool hakkab täiesti vabalt pöörlema.
Kui sul aga võtit pole, siis piduripedaali vajutamisel auto seiskub. Sellest piirangust on üsna lihtne mööda hiilida. Peate välja mõtlema, kuidas auto ütleb kaugkäivitile, et pidur on rakendatud. EVO mooduli korpuse tagaküljel näete mitut mitmevärvilist porti - siia ühendatakse CAN-siini kaabel. Piisab lihtsalt selle kaabli eemaldamisest DS-seadme küljest pärast auto kaugkäivitamist ja see ei reageeri piduripedaali vajutamisele. Kuna see agregaat asub roolisamba katte all, siis annan "start" käsu läbi sülearvuti, auto läheb käima, avan ukse, väljun autost ja eemaldan CAN siini pistiku EVO seadmelt. Nagu näha, auto mootor töötab, aga meil pole ikka veel süütelukku võtit.
Kui vajutate piduripedaali, ei juhtu midagi, sest EVO ei tea, et seda vajutati. Pärast seda saan rooli istuda, vajutada pidurit, viia käigukangi asendisse “Drive” ja auto hakkab liikuma. Kõik see toimub ilma ühegi võtmeta.
21:40

Mõned reklaamid 🙂
Täname, et jäite meiega. Kas teile meeldivad meie artiklid? Kas soovite näha huvitavamat sisu? Toeta meid, esitades tellimuse või soovitades sõpradele, , algtaseme serverite ainulaadne analoog, mille me teie jaoks leiutasime: (saadaval RAID1 ja RAID10, kuni 24 tuuma ja kuni 40 GB DDR4-ga).
Dell R730xd 2x odavam Amsterdami Equinixi Tier IV andmekeskuses? Ainult siin Hollandis! Dell R420 – 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB – alates 99 dollarist! Millegi kohta lugema
Allikas: www.habr.com
