Proteggere i dati in applicazioni a basso consumo

MC Apertura

In questo mondo sempre più connesso a internet, il trasferimento sicuro dei dati e la loro archiviazione alimentata a batterie a lunga durata stanno diventando requisiti applicativi fondamentali. La famiglia di microcontrollori PIC24F GB2 di Microchip offre protezione dati per applicazioni a basso consumo. Questa famiglia integra un completo motore hardware di criptazione, che include supporto per Aes, Des e 3DES. Il Random Number Generator viene utilizzato per generare chiavi di autenticazione e codifica/decodifica dei dati, e la memoria One-Time-Programmable dispone di 512 bit per l'archiviazione sicura delle chiavi. In questo Mcu sono integrati motore hardware di criptazione e tecnologia eXtreme Low Power per la protezione dei dati in applicazioni di sicurezza embedded a basso consumo. Molte altre soluzioni per la criptazione richiedono Mcu 32-bit di maggiori prestazioni e maggiore potenza, e possono quindi scaricare le batterie. Le specifiche XLP per la famiglia GB2 sono di soli 18 nA in modalità Sleep e 180 μA/MHz in modalità Run, ideali per applicazioni alimentate a batterie. Per connettere le applicazioni al resto del mondo, la “GB2” prevede Usb integrata per la facile connessioni a pen drive o computer. I progettisti possono anche connetterle in wireless, Wi-Fi, ZigBee o Bluetooth Low Energy certificati Microchip. Questi moduli offrono anche basso consumo per la connessione a internet e altri protocolli.


Applicazioni target
Visti la sicurezza dati e i bassi consumi di potenza, la famiglia GB2 può essere utilizzata in una grande varietà di applicazioni industriali, informatiche e di medical fitness. Tra gli esempi, incontriamo serrature di sicurezza, e sistemi di controllo accessi, quale che sia la loro tipologia di funzionamento, via keypad, scheda magnetica, o connessione wireless. Tra le altre applicazioni troviamo videocamere di sicurezza e terminali Pos, entrambi con la necessità di elevati livelli di sicurezza dei dati. Inoltre, molte applicazioni di nodi di sensori per Internet of Things possono beneficiare del basso consumo di potenza ed elevato livello di protezione dati offerti, quando si debbano monitorare aspetti quali pressione, temperatura, luminosità e umidità. Nell'area informatica, la GB2 è molto adatta a dispositivi periferiche che richiedano basso consumo e connettività Usb o wireless, per esempio una cuffia o una stampante wireless. Nell'area medicale e fitness, è indicata per applicazioni quali contapassi e altri dispositivi indossabili che trattino dati sensibili personali, e debbano comunicare con altri dispositivi, quali smartphone, tablet o personal computer. Il salvataggio in sicurezza dei dati è importante per molte applicazioni, incluse quelle che siano focalizzate su data logging verso una pen drive, o applicazioni che debbano caricare da file di configurazione multiple. Sia che i dati siano salvati in prossimità della Cpu su una scheda con qualche tipo di memoria esterna (come Eeprom), sia che vengano inviati via Usb o wireless ad un altro dispositivo, poter disporre di criptazione è vitale per proteggere l'integrità dai dati.

Il motore di criptazione
La famiglia PIC24 GB2 include un completo motore hardware di criptazione, con supporto per Aes, Des e Triple Des. Altamente configurabile, prevede opzioni Aes di criptazione 128-, 196- o 256-bit. La GB2 supporta tutte le modalità (Ecb, Cbc, Cfb, Ofb, e Ctr utilizzato per supportare Gcm) all'interno di questi protocolli , per un ampio range di applicazioni di trasferimento sicuro dei dati e la loro archiviazione. Implementando queste funzionalità nell'hardware, anziché nel software, vengono ridotti sovraccarico e larghezza di banda di elaborazione. Il motore di criptazione hardware esegue i calcoli di criptazione e decriptazione a una velocità diverse volte superiore a quella via software. In special modo, l'implementazione hardware richiede solo alcune centinaia di cicli per blocco di dati per completare un’operazione, rispetto alle svariate migliaia di cicli per blocco tipici del software. Nel caso hardware, la Cpu può intanto continuare a fare altro mentre il dato è in lavorazione, mentre nel caso del software la Cpu è bloccata nell'esecuzione di queste operazioni. I tempi di funzionamento di base varieranno a seconda delle operazioni che possono essere eseguite, il numero di blocchi dati che debbano essere criptati, e la robustezza della chiave usata. Il motore di criptazione funziona senza alcun intervento da parte della Cpu, cosi che l’Mcu può proseguire nell’esecuzione di istruzioni mentre viene eseguita l’operazione di criptazione. L’essere in grado di completare il lavoro in un numero di cicli inferiore si traduce in una minore potenza nel tempo per completare la stessa quantità di lavoro. I progettisti possono sia far funzionare l’Mcu a frequenza inferiore per risparmiare potenza, sia a frequenza più elevata per eseguire il compito in un tempo inferiore, consentendo al sistema di tornare più rapidamente al più basso livello di alimentazione Sleep. Oppure, sarebbe possibile adattare l'applicazione a un Mcu più piccolo, di costo inferiore, con minori caratteristiche di elaborazione e di memoria, ma in grado di lasciare tutto lo spazio per i codice e le prestazioni per il resto dell’applicazione. Esaminiamo uno specifico esempio di Aes 128-bit, con un cycle count di 250 cicli per blocco attraverso il motore di criptazione, e assumendo 1024 byte i dati da elaborare. Funzionando alla massima velocità, vale a dire 32 MHz, può raggiungere 16.000.000 di cicli per secondo. Il massimo throughput sarà quindi di 1.024.000 byt per secondo.

- Equazione 1: Conversione del massimo Throughput

(16.000.000 cicli/secondo) / (250 cicli/blocco) * (16 byte/blocco) = 1.024.000 byte per secondo
Quindi, per calcolare l’energia richiesta, prediamo in considerazione l’ammontare dei dati da elaborare (1024 byte) ed il numero di cicli che sarà necessario per eseguire la criptazione. Quindi utilizziamo la velocità del processore (32 MHz) per calcolare l’ammontare finale di potenza consumata per completare questo lavoro, assumendo 7.6 mA come il consumo massimo di corrente a 32 MHz e funzionamento a 2V. Ciò porta a 0,001 secondi, o 1 ms, o 0.0076 mAh quanto riguarda per la potenza complessivamente consumata per questo lavoro.

- Equazione 2: Tempo di conversione per il completamento del lavoro
1024 byte / (1.024.000 byte/secondo) = 0,001 secondi (1 ms)

- Equazione 3: Conversione della Potenza complessivamente utilizzata
7,6 mA * 0,001 secondi = 0,0076 mAh

Creazione e sicurezza nel salvataggio delle chiavi
Per creare chiavi per criptazione/decriptazione e autenticazione viene utilizzato un Rng, che offre un più elevato livello di sicurezza rendendo le chiavi difficili da riprodurre. La famiglia GB2 supporta sia true Rng che pseudo Rng. Le chiavi realmente randomiche non possono essere replicate, riducendo la possibilità di pirataggio del software, e sono ideali per applicazioni di sicurezza e gioco d'azzardo. Alcune applicazioni di simulazione e modellazione preferiscono le funzionalità deterministiche di uno pseudo Rng per le loro applicazioni. Cosi, la GB2 supporta sia le opzioni true Rng che pseudo Rng.
L'archiviazione Otp protegge la chiave di criptazione da letture o sovrascritture da parte del software. Ciò rende la chiave “programmaticamente sicuro” dato che il software non entra mai in contatto con le chiavi. Senza secure key storage, le chiavi sono in qualche modo più facili da rubare, specialmente se l’applicazione implementa un boot loader. Entro i 512 bit di Otp, possono essere immagazzinate chiavi multiple. Se un cliente utilizza Aes 256-bit, può archiviare 2 chiavi, o nel caso di Aes 128-bit 4 chiavi. Il Des ha una lunghezza delle chiavi di 64-bit, quindi possono essere archiviate 8 chiavi. Un altro modo per avere un numero virtualmente illimitato di chiavi è quello di utilizzare il concetto di Key Encryption Key. Le chiavi criptate in Flash o Ram, e la chiave utilizzata per criptare quella stessa chiave basata su Ram o Flash può essere immagazzinata in OTP. Le chiavi possono anche essere immagazzinate su memoria esterna, e quindi caricate nella Ram per la decriptazione da parte del Kek. In questo scenario il modulo le decripta in un registro delle chiavi non accessibile al software.

Esempio applicativo: serrature di sicurezza
La serratura utilizza il motore di criptazione presente sui GB2 per criptare i dati utente, quali nome del dipendente, codice, date e orari di ingresso e uscita. Può anche essere utilizzata per l’autenticazione di accessi a specifiche aree di sicurezza di edifici, basati sulle credenziali del dipendente. Utilizzando il secure key storage, questi dati sono protetti fino a quando qualcuno non sia pronto per decriptarli. Inoltre, la periferica di Charge Time Measurement Unit integrata nell’Mcu può essere utilizzata per implementare pulsanti tattili o rilevamento di prossimità per una tastiera di controllo. Quando nessuno sta interagendo con il sistema, questo può passare alla modalità Sleep di minor consumo di potenza per preservare la durata delle batterie. Un semplice interrupt viene utilizzato per notificare al motore di sbloccare la serratura della porta. Alcuni di questi sistemi sono alimentati direttamente, mentre altri sono alimentati attraverso quattro batterie AA. Il sistema può essere alimentato per tutto il tempo unicamente a batteria, ed in questo caso andranno sostituite ogni due anni. I GB2 hanno una connessione Vbat per l’utilizzo di una batteria di backup, con Real Time Clock Calendar, che è utilizzato per il rilevamento dei tempi, persino a batteria principale scarica. L’interfaccia Uart è utilizzata per connessione sia attraverso scheda magnetica che wireless. In alcune applicazioni high-tech, l’utente otterrà un codice di accesso per il suo smartphone per bloccare o sbloccare porte. Questa comunicazione potrebbe essere realizzata via Bluetooth LE o Near Field Communication.

 

Pubblica i tuoi commenti