Panoramica
Quasi tutte le auto sono attualmente dotate di un portachiavi, che consente di aprire le porte e avviare l’auto. Quando si acquista una macchina, la convenienza è la caratteristica convincente. Puoi lasciare il portachiavi in tasca e non preoccuparti mai più di avere una chiave fisica. Sembra fantastico.
L’assunto implicito che fai è che il sistema portachiavi è sicuro e che una persona a caso con 5 50 di hardware non può partire con la tua auto. Non hai un vero modo per dire se la compagnia automobilistica ha fatto un lavoro ragionevole con il loro sistema, quindi devi fidarti di loro. Sfortunatamente, quella fiducia non è sempre giustificata. E non è fino a quando le persone cercano di hackerare questi sistemi che i problemi vengono fuori. Problemi che le persone meno scrupolose potrebbero aver già sfruttato.
Portachiavi della tua auto
Ci sono molti sistemi di portachiavi diversi. Inizieremo guardando il portachiavi della mia Prius del 2006. I telecomandi usano qualcosa chiamato un sistema Keyless remoto (RKS). Negli Stati Uniti questi operano a 315 MHz, + / – 2,5 MHz. La mia chiave Prius si è rivelata a 312.590 MHz.I telecomandi sono tutti elencati nel database FCC. Guardando per le nuove voci è uno dei modi in cui le persone possono dire quando nuovi modelli di auto stanno venendo fuori. Questi appariranno molto prima dell’annuncio ufficiale.
Puoi capire quale frequenza trasmette il tuo portachiavi usando il tuo SDR e usare GQRX o SDR # per monitorare lo spettro. Quando si preme un pulsante sul fob, si dovrebbe vedere un breve salto nello spettro. Potrebbe essere necessario spostare la banda di frequenza su o giù di un paio di MHz per trovare il segnale, il mio era quasi 2,5 MHz basso.
Una parola di cautela. Non troppo portato via premendo il pulsante! Il sistema RKS utilizza un codice generato in modo pseudo casuale. Sia il portachiavi che l’auto rimangono sincronizzati, in modo che l’auto riconosca il codice successivo. Tuttavia, se il portachiavi ottiene troppo avanti nella sequenza (100s di pulsante spinge) l’auto non lo riconoscerà. Ciò rende la chiave (e l’auto) notevolmente meno utile!
Se catturiamo il segnale il risultato è mostrato di seguito
La larghezza totale della trama è di 10 secondi, quindi puoi vedere che c’è una pressione di un tasto poco dopo 2 secondi e un’altra poco dopo 5 secondi.
Se ci trama 100 ms a partire da 2 secondi, si può vedere il segnale digitale che stiamo cercando:
Ingrandendo la prima coppia di bit, si ottiene
I bit sono facili da identificare. Una soglia di decisione di 15 darà un rilevamento quasi perfetto. Se facciamo questo, e poi tracciare la prima parte dei dati digitali per i due tasti premuti, otteniamo questo
Sebbene i due inizino allo stesso modo, divergono rapidamente. Questa è una fortuna, perché se il segnale fosse sempre lo stesso, avresti abbastanza informazioni per rubare la mia auto ora!
I dati sono di nuovo on-off keying (OOK). E ‘ anche quasi certamente fase divisa (o Manchester) codifica. Invece di un” 1 “alto e uno” 0 ” basso, l’informazione è codificata nella transizione da alto a basso o basso a alto. Ciò significa che un bit ” 0 “è una transizione in aumento e un bit” 1 ” è una transizione in calo. Un buon modo per riconoscere la codifica di fase divisa è che puoi avere solo uno o due segmenti bassi o alti di fila. La cosa bella della codifica Manchester è che ogni simbolo ha una transizione, e questi sono più facili da trovare quando il segnale è stato alto o basso per diversi intervalli.
Questo esempio è OOK, che è il più comune per i telecomandi auto. Alcuni usano frequency-shift keying (FSK), dove ogni bit viene trasmesso come una frequenza diversa e l’inviluppo è costante.
Attacchi a telecomandi auto
Ci sono un sacco di diversi attacchi che possono essere utilizzati contro telecomandi auto, a seconda di come funzionano, e che tipo di accesso che si sta cercando. Il più semplice ti consente di aprire la macchina. Gli attacchi più approfonditi ti danno il controllo completo praticamente clonando il telecomando.
La maggior parte dei portachiavi utilizza un tasto rotante. Ciò produce una nuova forma d’onda che dipende dall’ID del portachiavi, da un seme casuale e da quante volte il tasto è stato premuto. L’auto tiene traccia dell’ultimo codice ricevuto e sa quali potrebbero essere le prossime centinaia di codici. Se rileva uno dei codici futuri attesi, apre l’auto. Se ottiene un codice utilizzato in precedenza, smette di rispondere al portachiavi. Per la Prius devi fare la “Danza del pollo” per farlo funzionare di nuovo, a condizione che tu abbia un altro portachiavi funzionante. In caso contrario, è necessario avere il rivenditore rekey l’auto, per molte centinaia di dollari. Ho dovuto farlo un paio di volte, ora (per altri motivi).
Ci sono diverse linee di attacco. Uno sta semplicemente registrando l’uscita del portachiavi per un paio di pressioni dei pulsanti quando è lontano dalla macchina, o l’auto viene inceppata. Con i codici inutilizzati registrati, è possibile aprire l’auto.
Un altro è quello di decodificare la sequenza RKS. In generale questo dovrebbe essere estremamente difficile. Tuttavia, ci sono state diverse situazioni in cui questo è molto facile.
Infine, ci sono auto che si aprono quando il proprietario si avvicina all’auto. Questo si basa su un segnale di bassa potenza che può essere ricevuto solo quando il portachiavi è molto vicino. Questo può essere sconfitto amplificando questi piccoli segnali.
Ci sono molti altri attacchi e questi continueranno a moltiplicarsi man mano che le auto diventano più complesse e hanno più sistemi informatici incorporati da seguire. Puoi guardare alcuni di questi per la prossima settimana.
Replay Attacks
L’approccio più antico e semplice era quello di registrare la forma d’onda che un portachiavi emette (usando il tuo rtl-sdr), e quindi riprodurlo. Questo funziona bene per i vecchi apriporta da garage, che utilizzavano una singola chiave fissa. Ci sono ancora auto là fuori che hanno portachiavi che funzionano in questo modo (alcune Mercedes pre-2000 per esempio).
Per i portachiavi che utilizzano un tasto rotante, è comunque possibile utilizzare un attacco replay. Se è possibile ottenere l’accesso al portachiavi quando è lontano dalla macchina e registrare diversi tasti premuti, è possibile riprodurre questi per avere la macchina aperta.
Se non è possibile accedere al portachiavi, un secondo approccio consiste nel creare un dispositivo che registra l’uscita del portachiavi quando viene utilizzato e contemporaneamente blocca l’auto. Un modo standard per farlo è ascoltare la trasmissione del portachiavi e quindi iniziare a bloccarsi quando i bit di correzione degli errori vengono trasmessi alla fine. In questo modo non ti inceppi. L’auto non riconosce il pacchetto, ma è possibile ricreare i bit di correzione degli errori e ritrasmettere la forma d’onda in seguito.
Infine, un jammer da solo manterrà il telecomando da iniziare in grado di bloccare l’auto. Se l’autista non è attento, potrebbe allontanarsi dall’auto lasciandola aperta.
Dispositivi di ritrasmissione
Tutto ciò dipende dalla capacità di trasmettere e ricevere RF. I tuoi rtl-sdr sono solo ricevitori e fanno un ottimo lavoro nell’acquisizione di segnali. Ci sono molte opzioni per la trasmissione. Ci sono un certo numero di dongle USB che si basano sul TI CC111X chip che vengono utilizzati in portachiavi, come questo
Un approccio interessante e più flessibile utilizza il Raspberry PI per generare RF inviando una sequenza di dati accuratamente elaborata alla porta GPIO. Questo è descritto in dettaglio, con video e link al codice qui:
Raspberry PI trasmettitore
Con questo, è possibile generare praticamente qualsiasi forma d’onda pacchetto digitale che si desidera. I livelli di potenza sono più che adeguati per emulare un portachiavi. Gli rtl-sdr sono anche ben supportati sul Raspberry PI, quindi i due insieme ti danno un sistema di hacking totale per key 50 o giù di lì, come vedremo a breve.
Attaccare i sistemi passivi Keyless Entry e Start (PKES)
Molte auto di fascia alta utilizzano un sistema passivo per aprire l’auto quando il conducente si avvicina. Un segnale di bassa potenza viene trasmesso dall’auto come una sfida. Il portachiavi risponde quindi con un’autenticazione. Poiché la potenza è così bassa, l’auto presuppone che il conducente debba essere nelle immediate vicinanze se riceve una risposta.
Questi sistemi possono essere hackerati costruendo un ripetitore posizionato vicino all’auto. Cattura il segnale dell’auto e lo ritrasmette a potenza superiore. Il telecomando può essere ovunque con in un paio di centinaia di metri, e sarà ancora sentire il segnale. Il telecomando risponde, e che viene nuovamente catturato dal ripetitore, e ritrasmesso. L’auto pensa che il portachiavi sia nelle vicinanze e apre l’auto.
La cosa bella di questo approccio è che non è necessario sapere nulla sul portachiavi, tranne la sua frequenza. Non è necessario decodificare il protocollo che utilizza, in realtà si sta solo utilizzando la chiave reale!
Ecco un video di alcuni ladri di cura che rubano una Tesla con questo approccio
Attacco remoto passivo, Tesla Model 3
Come puoi ridurre questo rischio?
Attaccare il sistema a chiave rotante
I prossimi attacchi vanno dopo il sistema a chiave rotante stesso. Il modo in cui funziona generalmente è che il portachiavi invia un ID, insieme a un contatore di quante volte è stato premuto un tasto. Questo è crittografato e trasmesso alla macchina quando si preme il pulsante.
Se la crittografia è forte, è estremamente difficile capire quale sia l’ID utente e il contatore. Ci sono diversi casi interessanti. Uno è per i 20 anni di VW (e Audi, Porsche, ecc.), che vedremo qui. Un altro è per Subarus, che puoi guardare per il tuo incarico questa settimana.
Una descrizione del sistema VW RKS è dato qui
VW Hack
Questo punta a un articolo Wired (che purtroppo attualmente dietro un paywall), e include un documento tecnico che va in grande dettaglio su come funziona. Gli autori del documento tecnico hanno esaminato i sistemi VW RKS negli ultimi 20 anni.
Per i sistemi più recenti, la crittografia era relativamente forte, equivalente a una chiave a 90 bit. Tuttavia, si scopre che hanno usato la stessa chiave in ogni auto! 100 milioni di loro!
La sfida è quindi capire qual è la chiave e qual è l’algoritmo di crittografia. L’auto stessa ti aiuta a risolvere quello. Quando il pulsante viene premuto, l’auto riceve il segnale e quindi lo decodifica nel computer di bordo (ECU). La chiave e l’algoritmo sono memorizzati nel firmware ECU. Gli autori hanno acquistato alcune ECU su eBay, scaricato il firmware e decodificato la crittografia (di solito sono operazioni bit a bit abbastanza semplici che sono facili da identificare). Con questa conoscenza, dopo aver acquisito il segnale da una singola pressione di un tasto, l’ID utente e il contatore possono essere decodificati e il portachiavi clonato, dando il controllo completo dell’auto.
Ci sono un paio di cose interessanti qui. Uno è che ogni auto VW decodifica ogni portachiavi, quindi monitorando l’esecuzione della tua ECU, puoi trovare l’ID utente e il contatore per tutte le auto intorno a te. Ci sono rapporti di persone che utilizzano sistemi come questo per rubare altre marche di automobili, anche.
Il motivo per cui solo la tua auto risponde al telecomando è che la tua auto ha una “lista di permessi” di ID portachiavi a cui risponde. Questo è ciò che viene impostato quando si rekey la macchina.
Tutto questo suona piuttosto allarmante. Ma c’è di peggio, come vedremo la prossima settimana.
Assegnazione
Hai diverse opzioni per il tuo incarico questa settimana. Per ogni argomento, generare circa 5 diapositive per descrivere i vostri pensieri o risultati. Iscriviti qui
Iscriviti Foglio
e caricare le diapositive qui:
Settimana 5 Diapositive
1. Questo articolo riguarda il sistema Subaru RKS. Leggilo, guarda i video e descrivi ciò che trovi.
Subaru RKS
2. Vi siete mai chiesti come funzionano quelle carte chiave dell’hotel? Questo articolo descrive un hack non RF che sfrutta le stesse idee degli attacchi key fob.
Carte chiave dell’hotel
3. Perché rubare una macchina quando si può avere un bulldozer! Leggi questo articolo e guarda il video per vedere come funziona.
Hacking Macchine industriali
4. Ci sono un sacco di altri hack auto là fuori. Vedi se riesci a trovare qualcosa di interessante e descrivilo. Cerca storie in cui puoi capire come funziona. I sistemi di intrattenimento sono una modalità comune di accesso (controllare l’hack Uconnect per Jeep). Tesla e gli hacker hanno una lunga corsa gatto-e-topo gioco in corso. Ci sono molti esempi interessanti qui
5. Se si dispone di un Raspberry Pi, vedere se si può ottenere per trasmettere un segnale. Questo dovrebbe essere abbastanza semplice. Usa il link qui sopra. Ti manderò un Raspberry Pi se vuoi provare questo.
Infine, se non l’hai già fatto, ti prego di inviarmi una e-mail su come la classe sta andando per te. Apprezzo sentire i tuoi pensieri. Grazie!