Tecnologie a supporto degli immobilizzatori

AUTOMOTIVE –

Tecniche di modulazione, processi di autenticazione, crittografia: una breve panoramica sulle tecnologie (tutt’altro che banali) necessarie per realizzare i dispositivi che hanno lo scopo di impedire il furto degli autoveicoli.

Gli immobilizzatori installati a bordo delle automobili possono essere definiti come dispositivi che rendono possibile l'avviamento del motore solo se nel quadro viene inserita una chiave riconosciuta come autentica tramite uno scambio elettronico di dati. In questo numero della nostra rubrica passeremo rapidamente in rassegna le tecnologie - piuttosto complesse e indubbiamente interessanti - necessarie per realizzare un immobilizzatore, basandoci sulla documentazione diffusa da un produttore di semiconduttori molto attivo in questo campo: Atmel.

L'alimentazione del transponder passivo

Un immobilizzatore è composto di due parti principali: una stazione base installata permanentemente nel veicolo e un transponder contenuto nella testa della chiave. Solitamente le due parti comunicano tramite un campo magnetico modulato, generato dalla stazione base tramite una corrente alternata a 125 kHz, che oltre a trasportare l'informazione ha anche il compito di fornire energia al transponder. Nei sistemi di tipo passivo, infatti, quest'ultimo elemento è privo di batteria. La maggior parte degli immobilizzatori odierni impiega una comunicazione full-duplex, nella quale la stazione base svolge le due funzioni (fornire energia alla chiave e trasmettere dati) in modo simultaneo. La modulazione utilizzata per associare l'informazione alla portante è la Ask (Amplitude Shift Keying). Il sistema full-duplex si è imposto sull'half-duplex per la maggiore velocità di trasmissione dei dati e la migliore immunità ai disturbi.

La codifica dei bit
A un livello logico superiore rispetto alla modulazione della portante si trova il sistema utilizzato per rappresentare i bit di informazione. Normalmente per la trasmissione dalla stazione base verso la chiave viene utilizzata la Bplm (Binary Pulse Length Modulation) o la Qplm (Quad Pulse Length Modulation); in quest'ultimo caso i bit vengono codificati a coppie per aumentare la quantità di energia trasmessa e la velocità di trasmissione. Per l'uplink, cioè la comunicazione dalla chiave verso la stazione base, vengono solitamente utilizzate le codifiche Manchester o biphase. Entrambe si caratterizzano per un duty cycle del 50% ed entrambe consentono l'estrazione del clock in ricezione.

Autenticazione e crittografia
Salendo a livelli di astrazione logica via via superiori troviamo lo strato del protocollo, che definisce una serie di comandi e le rispettive risposte. La funzione principale svolta a questo livello è l'autenticazione, ossia il processo tramite il quale la stazione base decide se consentire l'avviamento del motore oppure no. L'autenticazione può essere unilaterale o bilaterale; nel primo caso la stazione base sottopone la chiave a un test, mentre nel secondo caso le due parti del sistema si verificano reciprocamente. Ciò consente di aumentare il livello di sicurezza, ma al costo di un allungamento del tempo necessario per completare l'operazione. Il processo in questione è piuttosto complesso; prendendo come esempio la tecnica di autenticazione bilaterale messa a punto da Atmel, le fasi in gioco sono le seguenti:
1) la stazione base legge il numero che identifica univocamente il transponder della chiave;
2) la stazione base genera un numero casuale e lo invia al transponder;
3) la stazione base codifica lo stesso numero tramite una chiave crittografica e invia il risultato al transponder;
4) il transponder esegue localmente la stessa operazione sul numero casuale “in chiaro”, utilizzando la stessa chiave crittografica, e confronta il risultato con il numero criptato che ha ricevuto dalla stazione base;
5) se i due numeri criptati coincidono, il transponder codifica questo risultato utilizzando una seconda chiave crittografica (diversa dalla prima) e lo trasmette alla stazione base;
6) la stazione base confronta la risposta ricevuta dal transponder con la risposta che ha calcolato utilizzando la seconda chiave crittografica.

Ovviamente questo processo presuppone che la stazione base e il transponder dispongano delle stesse chiavi crittografiche, le quali devono quindi essere preventivamente trasferite dalla prima al secondo. Ciò avviene tramite un altro processo detto “key learn”, che può essere di tipo “aperto” oppure “sicuro”. Al livello di astrazione più alto del sistema si trova l'algoritmo che consente di codificare i dati tramite una chiave crittografica. Anche nel campo degli immobilizzatori si è imposto l'uso dell'algoritmo Aes (Advanced Encryption Standard).

La sicurezza
La sicurezza di un immobilizzatore non dipende solo dalla potenza dell'algoritmo crittografico utilizzato, ma dalla robustezza di tutti i livelli della comunicazione. Gli attacchi basati sull'invio di stimoli alla stazione base e/o al transponder (per cercare di arrivare, con una serie di tentativi, a individuare il codice giusto) possono essere contrastati aumentando il numero di bit delle parole, allungando progressivamente il time-out tra due tentativi falliti consecutivi, bloccando il sistema dopo un certo numero di tentativi falliti. Anche l'adozione di un protocollo di autenticazione bilaterale contribuisce ad aumentare il livello di sicurezza. Esistono poi gli attacchi che sfruttano i cosiddetti “canali laterali”, come la Spa (Simple Power Analysis) e la Dpa (Differential Power Analysis), tecniche che analizzano i consumi di energia del dispositivo combinandoli con le parole criptate per cercare di estrarre la chiave crittografica. Le contromisure per questi e altri attacchi di tipo “fisico” comprendono la “randomizzazione” della frequenza di clock, la schermatura metallica dei blocchi di memoria, l'impiego di chip realizzati con librerie di sintesi non standardizzate, la distribuzione in più punti diversi degli elementi circuitali utilizzati per la crittografia ecc.

Consumo e tempo di autenticazione
Per quanto riguarda le prestazioni di un immobilizzatore (a parte la capacità di resistere ai tentativi di violazione), due aspetti da considerare sono il consumo del transponder contenuto nella chiave e il tempo necessario per l'autenticazione. Il primo dei due parametri è importante perché interagisce con il fattore di accoppiamento tra le due parti del sistema: in altri termini, se il transponder consuma molto, saranno necessarie antenne di grandi dimensioni da ambo le parti per assicurare un flusso di energia sufficiente a farlo funzionare. Per questo è opportuno che i transponder siano realizzati con componenti a consumo estremamente basso, microcontrollori dotati di modalità sleep, ecc. Il tempo di autenticazione, invece, deve essere abbastanza breve da risultare impercettibile per il guidatore: non è accettabile dover “aspettare” che la chiave venga riconosciuta dall'automobile. Generalmente il tempo massimo totale per l'intera operazione di avviamento (incluse le fasi meccaniche) è compreso tra 300 e 500 millisecondi, pertanto restano 100 o 200 millisecondi per il processo di autenticazione vero e proprio. Secondo Atmel, un buon compromesso tra velocità e sicurezza si ottiene con l'autenticazione bilaterale utilizzando uno stimolo di 100 bit e una risposta di 56 bit. Generalmente questi parametri portano a un tempo di autenticazione inferiore a 100 millisecondi. La soluzione messa a punto da Atmel comprende anche un sistema di controllo ciclico di ridondanza che consente di ridurre la quantità dei dati da ritrasmettere in caso di errore. L'offerta Atmel per la realizzazione di immobilizzatori comprende i chip ATA5580 e ATA5795 per il transponder e il chip ATA5272 per la stazione base. Tutti questi dispositivi comprendono un microcontrollore AVR. La società offre inoltre, gratuitamente, un software rivolto appositamente ai protocolli degli immobilizzatori.

Pubblica i tuoi commenti