La sicurezza nei SoC programmabili

Nuovo appuntamento con la Rubrica Firmware Reload di Elettronica Open Source. Le piattaforme configurabili come i SoC Interamente Programmabili Zynq-7000 possono offrire l’accesso all’architettura ARM onnipresente, strettamente accoppiata ad una matrice FPGA ad alte prestazioni. Includendo funzionalità sicure come TrustZone, gli ingegneri possono sviluppare soluzioni o piattaforme che rispondono ai requisiti di un insieme di applicazioni finali ottimizzate per la sicurezza.

Introduzione

Il requisito di sicurezza è onnipresente: qualsiasi cosa abbia un valore percepito è interessante per elementi poco raccomandabili della società. Di solito, la forma di attacco dipenderà dal soggetto e così ne consegue che ogni forma di protezione dovrebbe essere appropriata al soggetto e alla natura prevista dell’attacco. In quest’area di sviluppo tecnologico accelerato, il “soggetto” può spesso essere descritto semplicemente come “dati”, siano essi informazioni per la sicurezza come password o chiavi di cifratura, o lo stesso software che gira su una determinata piattaforma. Le forme di attacco usate contro questi “obiettivi virtuali” includono la misura fisica oltre al comunemente citato “attacco cibernetico”; entrambi possiedono requisiti di difesa e, di conseguenza, soluzioni molto specifiche. In risposta all’esigenza generale di una maggiore sicurezza nei dispositivi dedicati, ARM ha sviluppato un’estensione alla propria architettura di base, chiamata TrustZone, che offre agli OEM una piattaforma su cui realizzare soluzioni sicure. Per gli OEM che usano dispositivi che integrano l’architettura ARM, come la piattaforma SoC Interamente Programmabile Zynq-7000 di Xilinx, TrustZone offre un modo per aumentare le credenziali per la sicurezza di un’applicazione finale, ma è importante comprendere come può essere usata, che cosa i produttori come Xilinx stanno facendo per aumentarne le funzionalità, e dove e come queste funzionalità sono adottate nel modo più appropriato.

AVVIO E FUNZIONAMENTO SICURO

Mantenere i dispositivi dedicati sicuri dipende oggi dal software dedicato: per gli FPGA questo include il flusso di bit usato per configurare la matrice programmabile. Questo livello di sicurezza è stato da tempo compreso e affrontato dai produttori di FPGA e i dispositivi di Xilinx offrono numerose funzionalità per la sicurezza - a parte le funzionalità come TrustZone - per assicurare che il flusso di bit non possa essere intercettato, modificato o alterato durante la sequenza cruciale di avvio e durante il funzionamento. Oltre alla protezione del flusso di bit, qualsiasi ASIC, SoC o FPGA che integra risorse potenti di elaborazione, deve assicurare che la sequenza di avvio del processore sia sicura e inoltre che il software dedicato sia anche protetto durante il funzionamento. In precedenza questi aspetti erano al di là della competenza di un produttore di FPGA, ma ora sono la chiave per offrire la sicurezza in una piattaforma programmabile come il SoC Interamente Programmabile Zynq-7000. Proprio il fatto che il sottosistema processore è integrato nell’FPGA rende questa sfida meno spaventosa: la piattaforma Zynq-7000 integra fisicamente una Memoria On Chip (OCM) sicura, inaccessibile a misure esterne, rendendo la sequenza di avvio più difendibile.

Figura 1: Rendere sicuri ASIC, SoC e FPGA che integrano core di processori oggi comprende tre aspetti; hardware e software e avvio.

Figura 1: Rendere sicuri ASIC, SoC e FPGA che integrano core di processori, oggi comprende tre aspetti: hardware, software e avvio

Tuttavia, Xilinx è andata oltre ad un semplice caso di avvio, fornendo 256 kb di OCM (si veda la Figura 2); abbastanza per far girare funzioni critiche per la sicurezza in cui esse sono sia fisicamente inaccessibili, sia nascoste dal software dietro la tecnologia TrustZone di ARM.

Figura 2: Il dispositivo Zynq-7000 integra 256 kbyte di memoria on chip (OCM) che è nascosta ed inaccessibile alle misure, consentendo alle applicazioni critiche per la sicurezza di girare in modo sicuro all’interno di TrustZone.

Figura 2: Il dispositivo Zynq-7000 integra 256 kbyte di Memoria On Chip (OCM) che è nascosta ed inaccessibile alle misure, consentendo alle applicazioni critiche per la sicurezza di girare in modo sicuro all’interno di TrustZone

UN GRADO SUPERIORE DI SICUREZZA

I progettisti usano tipicamente TrustZone in dispositivi come gli smartphone per memorizzare e far girare del codice che cifra i dati sensibili, come un PIN o una password. Può anche essere usato per effettuare la memorizzazione sicura delle chiavi e per gli algoritmi di decifratura, che supportano il DRM (Digital Rights Management) in applicazioni di streaming audio/video. Queste applicazioni usano spesso un’architettura ARM ma non necessariamente un chip singolo. I punti di forza particolari di una soluzione multicore di ARM con TrustZone, che è strettamente integrata con una matrice FPGA all’interno del SoC Interamente Programmabile Zynq-7000, sono che può formare un System on Chip (SoC) completo; un dispositivo specifico per un cliente e per un’applicazione che è in grado di incorporare tutte le funzioni principali (e minori) di un sistema in un singolo dispositivo.

Quando è accoppiato con TrustZone, un simile SoC è equipaggiato per servire una gamma di applicazioni in cui la sicurezza è fondamentale. Le applicazioni finali critiche per la sicurezza sono vulnerabili agli aspetti relativi all’autenticazione come, ad esempio, un dispositivo mobile per i pagamenti; il rischio di manomissione sovversiva potrebbe rendere un’applicazione critica per la sicurezza un rischio potenziale per la vita o per la proprietà, rendendola un obiettivo che necessita dello stesso livello di protezione ora intrinseco ai dispositivi sicuri. Di fatto, TrustZone fornisce due zone o, in termini ARM, “Mondi” per il software; un “Mondo Sicuro” e un “Mondo Normale” (si veda la Figura 3).

Figura 3: TrustZone tiene conto dell’esecuzione del software sicuro assieme ma separatamente dal codice non verificato.

Figura 3: TrustZone tiene conto dell’esecuzione del software sicuro assieme ma separatamente dal codice non verificato

Insieme formano una piattaforma hardware per la creazione di dispositivi sicuri che consentono al software sicuro di girare con pieno accesso al sistema nel “Mondo Sicuro”, e restringono il software non autenticato dall’accesso a determinate funzioni e risorse di sistema quando gira nel “Mondo Normale”. TrustZone consente di partizionare un singolo processore per creare due “processori virtuali”, uno per gestire funzioni per la sicurezza tipicamente piccole ma critiche, e una per l’elaborazione con funzione generale. Sebbene possa funzionare solo uno dei core virtuali per volta, si ha solo un carico molto piccolo di appena qualche ciclo di clock per passare dalla modalità sicura a quella normale, il tutto gestito dall’hardware TrustZone e supportato dal software commerciale e open-source, per fornire una soluzione di elaborazione multicore perfettamente simmetrica.

Nella piattaforma Zynq-7000 i vantaggi di un core virtuale sono ulteriormente estesi dalla presenza di due core fisici. Una piattaforma multicore è molto più adatta per rispondere alle esigenze di sistemi complessi, consentendo a una soluzione SMP di girare in modalità sicura e al software normale di girare su un core fisico, e ad un altro sistema operativo (in tempo reale) di girare sul secondo core. Questo permette di ottenere un progetto SoC molto più funzionale, pur mantenendo le funzioni per la sicurezza offerte dalle tecnologie basate su hardware come TrustZone.

OLTRE ALL’SMP

Come evidenziato, la funzionalità TrustZone può essere configurata per consentire ad un singolo core di funzionare come due core (sebbene virtuali), ciascuno dei quali fa girare il proprio stack software. Un altro approccio al partizionamento a livello di sistema, spesso adottato per supportare requisiti per la sicurezza e particolarmente applicabile in una piattaforma multicore come il dispositivo Zynq-7000, consiste nel far girare due sistemi operativi, uno su ciascun core.

Questo crea un ambiente di elaborazione multicore asimmetrica (AMP) ed è un approccio che genera una vasta adozione quando si sviluppano applicazioni ad alte prestazioni, in cui un sistema operativo in tempo reale potrebbe girare accanto ad un OS con funzione generica. La piattaforma Zynq-7000 supporta vari approcci all’AMP: con o senza un sistema operativo che gira su uno/su entrambi i core, facendo girare due diversi sistemi operativi su ciascun core, o persino facendo girare più sistemi operativi su ciascuno/entrambi i processori (Figura 4).

Figura 4: La tecnologia hypervisor può ulteriormente separare il software o persino interi sistemi operativi, per consentire ad applicazioni complesse in tempo reale, sicure e non sicure di girare su un unico dispositivo Zynq-7000.

Figura 4: La tecnologia hypervisor può ulteriormente separare il software o persino interi sistemi operativi, per consentire ad applicazioni complesse in tempo reale, sicure e non sicure di girare su un unico dispositivo Zynq-7000

Questi approcci includono le soluzioni AMP non supervisionate, TrustZone e le soluzioni basate su hypervisor. La scelta della tecnologia specifica che soddisferà al meglio le vostre prestazioni e i requisiti di sicurezza, dipenderà in larga misura dai requisiti di certificazione dell’applicazione o dalle normative che interessano alcune applicazioni (come i dispositivi medicali), la semplicità di realizzazione e le prestazioni a livello di sistema.

CONCLUSIONE

Nelle applicazioni moderne connesse, la sicurezza e l’autenticazione sono pressoché sinonimi e sono spesso intrinsecamente legati. La progettazione di SoC complessi che sono in grado di offrire la protezione sicura e garantita dalle forme di attacchi, richiede una piattaforma che sia intrinsecamente in grado di offrire capacità di avvio sicuro e di integrare la protezione necessaria nelle applicazioni complete di oggi, sia che si tratti di sicurezza dei dati sia di difesa robusta contro intrusioni indesiderate o di malintenzionati. TrustZone è ormai riconosciuta come una soluzione che garantisce la sicurezza per il software e per i dati sensibili in commercio. Integrando la stessa tecnologia nella piattaforma Zynq-7000, Xilinx è in grado di estendere questi vantaggi di sicurezza ai requisiti più generali delle soluzioni dedicate; la società sta sviluppando attivamente soluzioni per portare lo stesso livello di sicurezza ad un pubblico più ampio di sviluppatori e di OEM.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend