L’industria automobilistica ha subìto un’enorme evoluzione da quando è stata prodotta la prima automobile più di un secolo fa. Mentre efficienza e versatilità sono gli obiettivi primari della ricerca in ambito automotive, dall'inizio degli anni '80, i produttori hanno sempre fatto affidamento sugli embedded computer, noti come unità di controllo elettronico (ECU), per migliorare la sicurezza, la stabilità, la diagnostica e il comfort delle auto. Sebbene il passaggio dai tradizionali meccanismi meccanici ad un controllo completamente digitale si sia dimostrato utile, ciò ha aperto la strada ad un'ampia gamma di nuovi attacchi informatici. In questo articolo, andremo a descrivere le modalità con cui un malintenzionato potrebbe hackerare la portiera di un'auto.
Introduzione
Una delle prime invenzioni che hanno migliorato il comfort degli automobilisti è stato il sistema Remote Keyless Entry (RKE). Noto ai più come "il telecomando dell'auto", questa tecnologia elimina la necessità di chiavi fisiche e consente di bloccare e sbloccare la portiera del veicolo da remoto. La tecnologia RKE era già presente nei veicoli commerciali all'inizio degli anni '80 e già allora (e lo è tuttora) è stato uno dei principali obiettivi degli aggressori (hacker).
I sistemi RKE utilizzano segnali radio wireless e a causa del numero limitato di comandi richiesti (ad esempio, bloccare, sbloccare) e, soprattutto, a causa dei limiti di potenza e di risorse dei piccoli dispositivi a batteria all'interno dei telecomandi, la comunicazione tra il telecomando e il veicolo è progettata per essere semplice. Il meccanismo di funzionamento è il seguente: il telecomando genera un segnale radio contenente un codice di autenticazione e alcuni bit che rappresentano il comando che l'auto deve eseguire, l'auto lo riceve e se il codice di autenticazione viene convalidato, l'auto esegue il comando.
In alcuni casi, viene utilizzata la crittografia per evitare intercettazioni (ovvero, acquisizione e decodifica dei segnali) o attacchi di manomissione (ad esempio, "inversione" dei segnali di blocco per sbloccare). Tuttavia, la riproduzione dei segnali, anche se crittografati, è semplice. Al giorno d'oggi molti sistemi RKE implementano ancora codici statici. Un sistema con codice statico è caratterizzato da un univoco codice di autenticazione che non cambia mai. Pertanto, l'acquisizione di un segnale di "sblocco", anche se crittografato, consente ad un aggressore di riprodurlo e accedere al veicolo in qualsiasi momento successivo.
Rolling code
Per far fronte a questi semplici attacchi di ripetizione (replay), sono stati introdotti i rolling codes, in cui un particolare codice (ad esempio, un codice di "sblocco") è considerato usa e getta, cioè è usato solo una volta. In poche parole, ogni clic sul pulsante del telecomando attiva un contatore nel telecomando, ma anche nel veicolo al momento della ricezione. I codici inviati, che vengono utilizzati una volta, vengono invalidati dal codice successivo, prevenendo così di fatto gli attacchi di ripetizione come mostrato in Figura 1.
Si tenga presente che un codice inviato può essere considerato inutilizzato anche se il telecomando ha emesso il segnale ma il veicolo non l'ha ricevuto. Un esempio di ciò, è quando il pulsante di sblocco viene premuto accidentalmente (ad esempio, in tasca o quando un bambino gioca con la chiave) e non si è nelle vicinanze del veicolo (raffigurato dal "codice di sblocco n+2" e "n+3" in Figura 1). Per evitare di perdere la sincronizzazione e quindi di restare bloccati fuori dal veicolo in questi casi, i sistemi basati su rolling code forniscono una funzionalità di sicurezza che consente al contatore del portachiavi di essere alcuni passi avanti rispetto al contatore del veicolo.
Ciò si ottiene mantenendo non uno ma una serie di "codici futuri" validi sul veicolo. Se il codice inviato dalla chiave corrisponde a uno qualsiasi di questi codici futuri, il veicolo si risincronizza con l'ultimo codice nella chiave e invalida tutti i precedenti (ma non utilizzati) di questo set (fare riferimento a "Codice di sblocco n+4" nella Figura 1). Chiaramente, se un malintenzionato potesse ottenere uno di questi codici futuri non utilizzati (ad esempio catturando i segnali della pressione accidentale di un pulsante quando non si è nelle vicinanze dell'auto) e riprodurlo prima che il proprietario utilizzi nuovamente il portachiavi, l’aggressore potrebbe accedere al veicolo.
Tuttavia, ottenere questi codici futuri è estremamente difficile nella pratica, soprattutto se si tratta di un utente malintenzionato che vuole prendere di mira una vittima casuale. Questo è il motivo per cui tale misura di sicurezza è stata considerata nella pratica utilizzabile senza problemi.
L'attacco Rolljam
Nel 2015, però, una tecnica di attacco piuttosto sofisticata chiamata Rolljam ha dimostrato quanto i sistemi basati sui rolling code fossero fragili. In poche parole, utilizzando un'attenta sequenza di segnali di jamming, cattura e riproduzione, Rolljam può convertire efficacemente questa caratteristica di sicurezza in un exploit.
L'applicazione di Rolljam si basa fondamentalmente su quattro fasi:
- catturare i segnali di sblocco
- contemporaneamente bloccare la banda di frequenze verso il veicolo per ostacolare la corretta ricezione del segnale
- la seconda prova del proprietario come meccanismo di failover
- tempestiva riproduzione dei segnali precedentemente catturati
A tal fine, è disponibile un dispositivo speciale (di seguito denominato dispositivo Rolljam) utilizzato come disturbatore di segnale tra il telecomando e il veicolo, per catturare il segnale (vedere Figura 2).
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2012 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.