Konferens DEFCON 27. Din bil är min bil. Del 1

Sammanfattning av talet:

För många av oss är en bil ett av de dyraste köpen vi någonsin kommer att göra. I en värld där allt hänger ihop är det naturligt att vilja fjärrstyra vår bil: få påminnelser om var vi parkerade den, kontrollera att vi har glömt att låsa dörrarna eller fjärrstarta motorn för att förvärma eller kyla interiören beroende på årstid.

Det finns många tillverkare som erbjuder valfria larmsystem som ger denna bekvämlighet och sinnesfrid. Men hur mycket kan vi lita på att leverantörerna av dessa system skyddar åtkomsten till våra bilar i den digitala domänen? I det här föredraget kommer Jmaxxz att prata om vad han upptäckte när han tittade in i ett av dessa system.

Jmaxxz är känd för sitt arbete med August Smart Lock smarta hemsystem (presentation på DEFCON 24 "Backdooring The Frontdoor"). De senaste åren har hans fokus legat på IoT-enheter. Han deltog i avsnitten "IoT village zero day" i DEFCON 24 och DEFCON 25 och beslutade till slut att det var dags att utforska en produkt från den sekundära fordonsmarknaden - en fjärrstartare (nedan kallad RS).

Konferens DEFCON 27. Din bil är min bil. Del 1

Så jag heter J-Max, jag är programmerare till yrket och hackare till yrket. Jag är involverad i allt som har med lås att göra, och under hela det här samtalet kommer du att höra många uttalanden som endast uttrycker min åsikt och som inte har någon relation till åsikterna från mina tidigare, nuvarande och framtida arbetsgivare. Som du säkert förstått kommer vi att prata om bilar, nämligen om fjärrstartare och larmsystem. Låt oss börja med lite bakgrund, vilket är viktigt i sammanhanget eftersom många anser att sådana system är en onödig lyx.
Så där jag bor är det ganska kallt och min vän lider av ett tillstånd som kallas Raynauds syndrom. Kylan orsakar en spasm i blodkärlen i händerna, blodflödet till fingrarna minskar kraftigt och tecken på frostskador uppträder, inklusive vävnadsnekros. Bilden visar hur det brukar se ut.

Konferens DEFCON 27. Din bil är min bil. Del 1

I november förra året hade jag fortfarande inte bestämt mig för vad jag skulle ge henne i julklapp. Så hon återvänder hem från flygplatsen upprörd eftersom hennes bil aldrig blev varm på vägen hem. I det ögonblicket insåg jag att jag skulle ge henne ett fjärrstartsystem och började leta efter det bästa alternativet. Det visar sig att marknaden för fjärrstartare är ganska stor, med många tillverkare som inte tillhandahåller tillräcklig information om sin produkt.

De berättar inte hur du installerar systemet eller vilka verktyg du ska använda för att programmera enheten. Det här är ett problem för mig eftersom det här är min bil, min fjärrstart och jag måste ha tillgång till dessa verktyg. Så jag letade lite mer och hittade ett företag från Kanada, Fortin, som tillverkar sådana förrätter och som gärna tillhandahåller all nödvändig dokumentation. Jag bestämde mig för den här produkten och började leta efter en lämplig fjärrkontroll. Faktum är att om du använder en standardfjärrkontroll med en fjärrstartare, kommer dess åtgärdsområde att begränsas till standardfjärrkontrollens räckvidd. Eftermarknadsfjärrkontroller erbjuds som fungerar inom en räckvidd på en halv mil till en och en halv mil. Enligt konsumentrecensioner är detta ett reklamtrick, eftersom avståndet i verkligheten är mycket kortare. Detta är problemet, eftersom min vän måste starta motorn på sin bil på flygplatsens parkeringsplats så fort hon kliver av planet, vilket är ungefär en halv mil.

Konferens DEFCON 27. Din bil är min bil. Del 1

Så det skulle vara bra om hon bara kunde dra fram sin telefon, öppna appen och trycka på Start. Jag hittade en tredjepartsprodukt som heter MyCar som är helt kompatibel med Fortin starter. Det här är en liten nyckelbricka med ett SIM-kort och en GPS-mottagare som du kan sätta i din bil och ansluta den till fjärrstartaren. Sedan, med hjälp av en mobilapp, kan du fjärrstarta motorn, låsa upp låsen och liknande.

Konferens DEFCON 27. Din bil är min bil. Del 1

Jag trodde att det här skulle vara bra: direkt efter att planet har landat kan min vän starta motorn, och när hon kommer till bilen kommer kabinen redan att vara varm.

Så låt oss prata lite om hur fjärrstartare fungerar. För att göra detta måste du först förstå hur en bilmotor startar. Fram till ungefär mitten av nittiotalet var en bilstartare ett traditionellt mekaniskt lås i en nyckel-omkopplarkombination. Du var tvungen att sätta i nyckeln och vrida den för att slutföra den elektriska kretsen. Sedan blev lås märkta "immobilizer" populära i USA. Det låter komplicerat, men det är bara ett elektroniskt lås. Så du har ett mekaniskt lås, som är nyckeln till ett elektroniskt lås, som i sin tur är en transponder och innehåller en del information som kan läsas. Och tills du öppnar det elektroniska låset startar inte din bil. På höger sida av bilden ser du 2 nycklar: den vänstra är för startspärren och den högra är för den vanliga tändningslåset. Den manövrerar helt enkelt låsets mekaniska komponenter, medan den vänstra nyckeln låser upp det elektroniska låset, som startar bilens motor.

Konferens DEFCON 27. Din bil är min bil. Del 1

Varför berättar jag om det här? Fjärrstart fungerar via startspärren. På nästa bild ser du ett diagram över anslutning av Fortin EVO One-enheten till startspärren - längst ner till vänster ser du ett par kontakter betecknade som IMO. Längst upp till höger i diagrammet ser du två linjer: CAN LOW och CAN HIGH. Dessa är kontakter för anslutning till fordons CAN-bussen. Anledningen till att fjärrstartare ansluts till CAN-bussen är för att minska installationskostnaderna eftersom färre anslutningar används under installationen. Om fjärrstartaren kan läsa data från CAN-bussen eller skicka kommandon via CAN-bussen, minskar detta installationstiden för fjärrstartsystemet för motorn.

Längst upp till vänster i diagrammet finns ett helt gäng GPIO:er som är associerade med att kontrollera eller läsa information om maskinen. Du vill till exempel att lamporna ska blinka eller att en tuta ska ljuda när du trycker på låsknappen. Sådana saker kan styras med dessa GPIO:er. Längst ner till vänster i diagrammet ser du en stor, klumpig kontakt - det här är gränssnittet som kringgår det mekaniska låset. Det vill säga att du inte behöver sätta i och vrida nyckeln i tändningen eftersom detta gränssnitt gör att fjärrstartsystemets relä kan kommunicera direkt med det elektriska låset.

Konferens DEFCON 27. Din bil är min bil. Del 1

Följande bilder visar stegen för att installera en fjärrstartare. Den består huvudsakligen av att ta bort rattstångsskyddet, installera och ansluta DS-enheten. Det ser ganska läskigt ut, men det är lätt att göra.

Konferens DEFCON 27. Din bil är min bil. Del 1

Fjärrkontrollerna ansluter själva till vad Fortin kallar en datalänk. Systemet använder det proprietära fysiska dataöverföringsprotokollet UART - en universell asynkron sändare som utbyter data med en hastighet av 9600 baud. Fortin fjärrstarter ansluts helt enkelt via en UART-buss till de två fjärrkontrollerna du ser på bilden.

Konferens DEFCON 27. Din bil är min bil. Del 1

Efter att ha installerat DS tänkte jag på hur sådana enheter kan påverka bilens säkerhet. Självklart måste DS gå förbi startspärren, så hur säkert är detta med tanke på möjligheten till stöld eller avlyssning av kontrollen över bilen? Detta gäller inte bara för dataöverföring över mobilnätet, utan även för själva fjärrstartsignalen. Så jag började söka på Internet efter tillverkarinformation om det dataöverföringsprotokoll som används och hamnade på forum där folk skrev att Fortin vägrade att tillhandahålla detta protokoll. En av anledningarna: "Vi distribuerar inte sådan information eftersom EVO inte är en leksak för amatörer, den är avsedd att användas av proffs.

Konferens DEFCON 27. Din bil är min bil. Del 1

Eftersom jag var något av ett proffs bestämde jag mig för att bygga min egen maskin på skrivbordet. Jag fick tag i en andra EVO-systemenhet, satte ihop ett kretskort som representerade bilen, lade till strömbrytare för att simulera tändningen, en knapp för bromspedalen och en hel massa lysdioder för att visa olika tillstånd.

Konferens DEFCON 27. Din bil är min bil. Del 1

När jag satte ihop allt detta, kopplade jag in FTI-datalänksövervakningsenheten och började samla in denna data. Till en början ser det ungefär ut som rutschkanan, och det är inte helt klart vad som händer här. Men tittar man noga kan man säga att det definitivt finns någon form av struktur här.

Konferens DEFCON 27. Din bil är min bil. Del 1

Observera att när jag trycker på en knapp på min fjärrkontroll börjar meddelandet som antennen skickar till min DS alltid med 0C och slutar med 0D. Så om vi bara delar upp det vi får, om vi antar att 0C är början och 0D är slutet, kommer vi att sluta med något sånt här.

Konferens DEFCON 27. Din bil är min bil. Del 1

Det finns redan någon form av struktur tydligt synlig här, så att du kan lista ut vad som händer. Genom att spendera tid på att spåra vilket meddelande som dök upp efter att en specifik knapp tryckts ned kunde jag skapa en tabell med kommandon, som var och en motsvarade en specifik åtgärd. Det vill säga när du trycker på en knapp på fjärrkontrollen så skickar antennen ett kommando till fjärrstartmodulen som ser ut så här.

Konferens DEFCON 27. Din bil är min bil. Del 1

Så här ser en typisk lagstruktur ut.

Konferens DEFCON 27. Din bil är min bil. Del 1

När du trycker på en knapp på fjärrkontrollen skickar antennen ett sådant kommando till fjärrstartaren. Den väcks av byte 0C, följt av 2 byte, som jag tror representerar överföringsriktningen. Detta är intressant eftersom UART redan har en signalriktning, så jag markerade dessa bytes som "skräp", bara behandla dem som en konstant. Detta följs av en enda byte som anger kommandot som användaren vill utföra. Det kan vara att låsa dörrar eller öppna dem, stänga av larmet osv. I allmänhet är allt du vill göra på distans associerat med detta kommando. FF FF F1 nyttolasten är en adress, eller identifierare, som identifierar fjärrantennen från vilken meddelandet kom. Om DS-enheten inte känner igen identifieraren ignoreras kommandot. Om DS accepterar identifieraren påbörjas en flerstegsprocedur, som inkluderar att kontrollera om nyckeln finns i tändningen, slå på eller stänga av motorn, trycka på bromspedalen, etc. Faktum är att denna process inte har så stor betydelse, det är bara att enheten lär sig ID:t just nu.

I slutet av meddelandet finns en byte med en kontrollsumma och en byte som indikerar slutet på kommandot. Nu när vi förstår hur protokollet fungerar, vad kan vi göra åt det? Jag har ett par videos om ämnet. Tyvärr är videon av någon anledning utan ljud, så jag ska berätta vad som händer på skärmen. Till vänster om rattstången på instrumentpanelhuset finns en vit låda som innehåller elektronik med Particle.IO firmware som förstår Fortin-protokollet. Tråden med den blå spetsen är antennen. Denna sak låter mig interagera med fjärrstartenheten inifrån bilen och se vad som händer på den bärbara datorns skärm.

Konferens DEFCON 27. Din bil är min bil. Del 1

Så jag skickar lås upplåsningskommandot till bilen men det fungerar inte eftersom DS inte känner till den här antennen. Som jag redan nämnt är detta bara en UART, vars egenskap är att stödja den så kallade tvåvägskommunikationen, tack vare vilken du kan få information om bilens status på distans. Till exempel, om motorn startades eller stoppades fysiskt, kommer DS-enheten att skicka ett motsvarande meddelande till fjärrkontrollantennen. I det här fallet kommer meddelandet att innehålla adressen till just denna antenn.

Konferens DEFCON 27. Din bil är min bil. Del 1

Problemet är att kommunikationen utförs med UART-protokollet, och alla som ansluter till UART-bussen kan se adressen dit ett givet meddelande skickas, så min firmware har förmågan att klona adressen till en befintlig antenn, vilket jag gör med lämpligt kommando.

Konferens DEFCON 27. Din bil är min bil. Del 1

För att generera ett meddelande behöver du bara öppna bildörren. Som du kan se skickar DS ett meddelande till antennen att dörren var öppen, och larmet slås omedelbart på.

Konferens DEFCON 27. Din bil är min bil. Del 1

För att stänga av larmet skickar jag kommandot ”lås upp”, varefter larmljudet stängs av och bilen låses upp. Du får ta mitt ord för det, eftersom vi inte kunde få den här videon att spela med ljud. Låt oss försöka spela upp videon igen.

Konferens DEFCON 27. Din bil är min bil. Del 1

Nåväl, ljudet dök upp (översättarens anmärkning: samma video med ljud spelas upp på skärmen). Så du såg hur jag skickade DS-kommandot och slog på larmet, allt utan nyckel. Låt oss nu försöka starta bilen på samma sätt; för att göra detta, titta på följande video.

Vanligtvis, om du bara skriver "start" och försöker starta motorn, kommer det inte att fungera. Anledningen är att detta är en bil med manuell växellåda och fjärrstartsystem har en speciell procedur för sådana bilar. I detta fall måste du trycka på fjärrstartknappen medan nyckeln är i tändningslåset och motorn är igång. Sedan kan du ta ur nyckeln, gå ur bilen, stänga dörren, varefter DS kommer att stänga av motorn och låsa dörren. Detta görs för att förhindra att bilen reagerar på fjärrstart av motorn under körning, eftersom detta är farligt. Detta är dock inte en fullständig säkerhetsfunktion. Detta är ganska lätt att bevisa genom att titta på EVO fjärrstartenhet. Du ser den här gula öglan som är designad för att fungera med en manuell växellåda. Om det skärs kan detta block användas för en bil med automatisk växellåda. Denna design av enheten gör att du inte kan använda några speciella inställningar när du installerar DS i bilar med olika typer av transmission.

Konferens DEFCON 27. Din bil är min bil. Del 1

Så systemet svarade inte på "start"-kommandot, så jag ska sätta tillbaka det här blocket och bara klippa av den här ledningen för att bryta anslutningen. Om du nu upprepar "start"-kommandot hörs en ljudsignal och statusindikatorerna för bilens system tänds på instrumentpanelen, vilket händer när en nyckel sätts in i låset.

Konferens DEFCON 27. Din bil är min bil. Del 1

För tillfället har vi en bil som vi kan fjärrstarta utan nyckel i tändningen, men DS-modulen är inte allt vi behöver. Under normala omständigheter kommer du fortfarande inte att kunna köra iväg i en fjärrstartad bil, men låt oss försöka ändå.

För att inaktivera rattlåset måste du sätta in en vanlig nyckel i tändningslåset, som inte har någon transponder. Som du kan se räcker det att flytta nyckeln till läget innan du startar motorn, och Subaru Impreza-ratten börjar rotera helt fritt.

Men om du inte har någon nyckel kommer bilen att stanna när du trycker på bromspedalen. Det är ganska lätt att komma runt denna begränsning. Du måste ta reda på hur bilen säger till fjärrstartaren att bromsen är åtdragen. Du ser flera flerfärgade portar på baksidan av EVO-modulhuset - kabeln från CAN-bussen kommer att anslutas här. Det räcker att helt enkelt ta bort den här kabeln från DS-enheten efter att bilen har fjärrstartats, och den kommer inte att reagera på att trycka på bromspedalen. Eftersom denna enhet är placerad under rattstångslocket ger jag kommandot "start" via min bärbara dator, bilen startar, jag öppnar dörren, går ut ur bilen och tar bort CAN-busskontakten från EVO-enheten. Som ni ser går bilmotorn men vi har fortfarande ingen nyckel i tändningen.

Om du nu trycker på bromspedalen kommer ingenting att hända eftersom EVO inte vet att den trycktes ned. Efter det kan jag sätta mig bakom ratten, trycka på bromsen, flytta växelspaken till "Drive"-läget och bilen börjar röra sig. Allt detta görs utan nyckel.

21:40

Konferens DEFCON 27. Din bil är min bil. Del 2

Några annonser 🙂

Tack för att du stannar hos oss. Gillar du våra artiklar? Vill du se mer intressant innehåll? Stöd oss ​​genom att lägga en beställning eller rekommendera till vänner, moln VPS för utvecklare från $4.99, en unik analog av ingångsservrar, som uppfanns av oss för dig: Hela sanningen om VPS (KVM) E5-2697 v3 (6 kärnor) 10GB DDR4 480GB SSD 1Gbps från $19 eller hur delar man en server? (tillgänglig med RAID1 och RAID10, upp till 24 kärnor och upp till 40 GB DDR4).

Dell R730xd 2 gånger billigare i Equinix Tier IV datacenter i Amsterdam? Bara här 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV från $199 i Nederländerna! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - från $99! Läs om Hur man bygger infrastructure corp. klass med användning av Dell R730xd E5-2650 v4-servrar värda 9000 XNUMX euro för en slant?

Källa: will.com

Lägg en kommentar