I sistemi embedded sono esposti a numerose minacce e gli sviluppatori devono individuare modalità atte a contrastarle in maniera efficace. Le principali problematiche che devono essere affrontate si possono così riassumere: contraffazione, reverse engineering, iniezioni di malware o sostituzione del firmware, intercettazione, furto di identità, connessione di rete non autorizzata e riutilizzo non autorizzato.
Ogni giorno, ormai, i sistemi embedded e IT sono sottoposti ad attacchi di natura informatica. Gli attacchi su larga scala condotti utilizzando il ransomware WannaCry che ha colpito centinaia di migliaia di computer in tutto il mondo hanno impedito agli utenti di utilizzate i loro sistemi o di accedere ai propri dati. Questo criptovirus molto virulento ha infettato i sistemi sfruttando una vulnerabilità di SMB (Server Message Block, un protocollo utilizzato soprattutto dai sistemi Windows) tramite un codice exploit, in grado ciò di acquisire illegalmente autorizzazioni al fine di assumere il controllo di un sistema. Gran Bretagna, Spagna, Russia, Ucraina e Taiwan sono solo alcune tra le Nazioni che hanno subito l’attacco: i dati contenuti nei computer degli utenti e delle organizzazioni colpite, compresi dati sensibili come ad esempio quelli medici, sono stati presi in ostaggio dai pirati informatici. Verso la fine del 2017 Equifax, una delle tre principali Agenzie di controllo dei crediti negli Stati Uniti, è stata vittima di un attacco hacker in seguito al quale sono stati rubati i dati personali di circa 143 milioni di consumatori americani. In tempi più recenti, uno dei più importanti appaltatori della US Navy è stato oggetto di un attacco informatico che ha provocato la perdita di dati sensibili relativi alla guerra sottomarina.
I criptovirus sono una realtà che crea non pochi problemi sia alle istituzioni sia ai privati cittadini.
Ovviamente gli attacchi informatici hanno tutte le potenzialità per creare danni di notevole entità a sistemi utilizzati nei settori della Difesa, sanitario, finanziario, delle reti elettriche, del controllo del traffico, bancario e, più in generale, in qualsiasi ambito della vita quotidiana. Il dato più allarmante è comunque il fatto che sia la frequenza sia pericolosità di questi attacchi sembrano essere in aumento.
Sicurezza dei sistemi embedded: gli sviluppi più recenti
I progettisti di sistemi embedded devono adottare un approccio integrato al design del sistema nel quale le caratteristiche legate alla sicurezza devono essere una componente fondamentale della funzionalità del sistema complessivo. Di conseguenza, la sicurezza dovrebbe essere presa in considerazione fin dalla fase iniziale del ciclo di sviluppo, e non essere considerata un aspetto di secondaria importanza. La strategia di sicurezza deve tenere in considerazione sia la componente hardware sia quella software.
Il software, tradizionalmente, rappresenta la prima linea di difesa contro accessi non autorizzati. Meccanismi quali utilizzo di password, crittografia e autenticazione sono senza dubbio i più diffusi. In ogni caso, gli hacker stanno adottando metodi sempre più sofisticati per colpire sistemi e sottosistemi di rete. Tra le tecniche impiegare da segnalare l’attacco condotto nei confronti del processo di avvio (boot up) nel caso quest’ultimo non possa essere protetto e autenticato. Nel momento in cui l’attacco è riuscito a violare il sistema, il malware che è stato introdotto può restare “dormiente” nella ROM di boot per un lungo periodo di tempo.
I microcontrollori (MCU) più avanzati ora integrano funzionalità di sicurezza che possono contribuire ad attenuare l’impatto di diverse forme di attacchi informatici. Tra queste si possono annoverare engine per la protezione e l’autenticazione/crittografia forte, gestione della chiave, prevenzione e rilevamento di manomissioni, protezione della memoria esterna e criptazione/decriptazione dei protocolli di comunicazione.
Attualmente i produttori di chip utilizza un gran numero di schemi abbastanza elaborati per proteggere le chiavi di sicurezza contro eventuali violazioni o tentativi di manomissioni di altra natura. Meccanismi di protezione/rilevamento delle manomissioni integrati a bordo del chip potrebbero difendere i dispositivi contro tentativi di probing invasivo (in sintesi l’analisi dei circuiti che circondano l’engine crittografico alla ricerca di componenti che rivelino informazioni utili). Gli engine crittografici possono rappresentare un valido ausilio per proteggere i dati memorizzati tramite la crittografia. Il sistema, inoltre, può far ricorso a un bus privato per la comunicazione dei dati o delle chiavi di scurezza. Inoltre, sono state elaborate diverse strategie per salvaguardare i contenuti della memoria esterna, come ad esempio l’utilizzo della tecnica XiP (eXecute in Place) protetta che permette l’esecuzione del codice direttamente dalla memoria esterna senza caricare i dati nella memoria integrata del processore oppure la decriptazione “al volo” che permette di far girare le applicazioni sul processore principale e memorizzarle esternamente (off-site) pur garantendo la massima riservatezza.
Per quanto riguarda la sicurezza dei collegamenti in rete, è utile ricordare che le comunicazioni che utilizzano sia reti wireless sia reti cablate possono essere potenzialmente intercettata. Alcuni protocolli di comunicazione presentano vulnerabilità ben note in fatto di sicurezza che sono state ovviamente sfruttate dagli hacker. I protocolli di comunicazione caratterizzati da un elevato grado di sicurezza richiedono spesso risorse aggiuntive per la criptazione e la decriptazione del flusso di comunicazione, oltre a quelle richieste per verificare l’autenticità di mittente e destinatario. In questo caso il maggior livello di sicurezza comporterà una penalizzazione in termini di prestazioni. Un compromesso di questo tipo può essere evitato, o perlomeno, minimizzato, con l’integrazione di acceleratori hardware per gli algoritmi crittografici come parte del protocollo di comunicazione. In questo caso è necessario individuare il miglior compromesso tra costo e sicurezza invece che tra prestazioni e sicurezza.
Funzionalità di sicurezza implementate nelle moderne MCU: alcuni esempi
Come discusso in precedenza, alcune MCU integrano acceleratori crittografici hardware per eseguire funzioni di sicurezza senza per questo penalizzare le prestazioni complessive del sistema. Un esempio è rappresentato da Crypto Connected LaunchPad TM4C129E di Texas Instruments, una scheda microcontrollore basata sul core ARM Cortex-M4F a 120 MHz espressamente ideata per l’utilizzo in applicazioni quali connessioni protette al cloud, automazione di fabbrica e degli edifici, reti “intelligenti” di distribuzione dell’energia (smart grid) e controlli industriali. La MCU TM4C129E a 32-bit che costituisce il nucleo centrale di questa scheda integra tre funzionalità di sicurezza chiave: acceleratore DES (Data Encryption Standard), moduli di sicurezza AES (Advanced Encryption Standard) e algoritmo SHA (Secure Hash Algorithm).
Il modulo acceleratore DES fornisce funzioni di criptazione e decriptazione dei dati accelerate via hardware. Esso può eseguire algoritmi DES o triple DES (una ripetizione per tre volte dell’algoritmo DES) e supporta le modalità ECB (Electronic Codebook), CBC (Cipher Block Chaining) e CFB (Cipher FeedBack) che mettono a disposizione funzionalità di sicurezza avanzate on-chip. Il modulo per la crittografia a chiave simmetrica AES utilizza chiavi hardware a 128, 192 o 256 bit sia per la criptazione sia per la decriptazione. L’algoritmo SHA include la modalità HMAC (Hash Message Authentication Code) che utilizza una chiave di 64 Byte per l’autenticazione del messaggio o dei file di dati. Complessivamente, queste tre funzionalità permettono al chip di eseguire le operazioni di gestione della chiave di sicurezza, criptazione/decriptazione e autenticazione dei file dei dati.
Il dispositivo MAXQ1061 di Maxim DeepCover è un controllore crittografico che integra funzioni di rilevamento delle manomissioni e di avvio (boot) sicuro. Le numerose funzioni di rilevamento delle manomissioni garantiscono la sicurezza delle informazioni contenute nel chip. La gestione privata della chiave impedisce il verificarsi di accessi non autorizzati, mentre la generazione della chiave on-chip è basata su un generatore di numeri casuali e sulla verifica del certificato. In assenza di verifica, l’handshake TLS non può essere effettuato, impedendo in tal modo a potenziali hacker di comunicare con il chip. Oltre a ciò, l’engine AES a 128 bit supporta le modalità AES-GCM (conforme a SP 800-38D) e AES-ECB (conforme a SP 800-A). La conformità a questi standard contribuisce ad aumentare il livello di sicurezza del chip. L’avviamento (boot up) sicuro, infine, è effettuato tramite meccanismi di verifica della firma. Un hacker non sarà quindi in grado di accedere ai dati del processore host senza una firma. Tra le applicazioni tipiche si possono annoverare nodi IoT, dispositivi embedded connessi, connessioni in rete in ambito industriale e appliance di rete.
Acceleratori HW
La famiglia di acceleratori hardware ATECC608A di Microchip è in grado di elaborare algoritmi di sicurezza a una velocità notevolmente superiore rispetto al software tradizionale che gira su microprocessori standard. Questi algoritmi includono soluzioni complete per la firma che utilizzano la crittografia asimmetrica (a chiave pubblica/privata) basate su curve ellittiche (ECC – Elliptic Curve Cryprography) e sul protocollo ECDSA (Elliptic Curve Digital Signature Algorithm).
La strategia di sicurezza deve tenere in considerazione sia la componente hardware sia quella software. Nell’elettronica i sistemi embedded sono tra i più vulnerabili e necessitano di particolari cure progettuali per prevenirli