Misure di protezione per la progettazione di Fpga

Il passaggio dall'integrazione verticale a una struttura basata su un'estesa supply chain di terzi ha portato miglioramenti di costo-efficacia, ma ha introdotto rischi per gli Oem dell'elettronica. Un rischio particolare dovuto a questa trasformazione è il compito di tutelare la proprietà intellettuale nell'ambito di un progetto. Le persone, le reti criminali e persino i governi sono implicati in tentativi di svelare i segreti dei sistemi elettronici o a scopo di lucro o per compromettere tali sistemi per trarne un vantaggio tattico in futuro. I pirati possono offrire prodotti contraffatti pressoché identici e risucchiare i profitti, i concorrenti possono utilizzare la vostra IP per avviare attività proprie e gli avversari possono utilizzare le informazioni ottenute da un sistema per paralizzarlo quando ne intravvedono la possibilità. Il gate array programmabile sul campo è diventato un bersaglio chiave di questi attacchi. Gli Fpga sono ormai largamente utilizzati in sistemi che in passato avrebbero richiesto Asic o microcontrollori cablati. I miglioramenti nella tecnologia di processo hanno aumentato il numero dei gate di milioni; rendendo possibile costruire un sistema completo con un solo Fpga come nucleo centrale. La crescente densità logica consente agli Fpga di fornire il processore e logica personalizzata al resto del sistema. Questa transizione verso soluzioni programmabili ha cambiato il modo in cui i progettisti devono pensare alla sicurezza dei progetti, proteggendo al contempo la proprietà intellettuale e la reputazione della loro azienda.

Reverse engineering e sovraproduzione
Vi sono vari modi per compromettere la sicurezza di un progetto. Uno è il "reverse engineering". Determinando le funzioni logiche di un chip un pirata può duplicare un sistema o aggiungervi altre funzioni per implementare nuovi sistemi venduti come prodotti più avanzati rispetto all'originale. Entrambi gli Asic e gli Fpga sono vulnerabili a questa pratica, ma è possibile utilizzare le funzionalità degli Fpga per rendere molto più difficile il reverse engineering ai concorrenti. Si può ricavare il layout di un Asic decapsulando il dispositivo e gradualmente metterne a nudo gli strati delle interconnessioni metalliche. Benché sia un processo che richiede tempo, i team di reverse engineering possono utilizzare gli strumenti a disposizione per estrarre netlist utili dalle informazioni di layout ottenute con l'analisi distruttiva. Con una Fpga, il reverse engineering non è effettuato per analisi distruttiva, ma estraendo il bitstream dalla configurazione. La tecnologia Fpga più comune in uso oggi si basa su Sram, che è veloce e riconfigurabile, ma deve essere riconfigurata ogni volta che si accende l'Fpga. In genere, si utilizza una memoria di sola lettura programmabile esterna per contenere i dati di configurazione di un Fpga. I dati di configurazione possono essere intercettati e letti durante l'avvio. Sebbene i dati di configurazione non siano interpretabili dall'uomo, si può utilizzare l'analisi automatizzata per ricostruire la netlist a sostegno del reverse engineering della proprietà intellettuale. La capacità di leggere il bitstream di configurazione rende possibili altre due forme di pirateria commerciale: clonazione e sovraproduzione. Se un pirata intende solo imitare il progetto per produrre falsi da vendere, la clonazione è il metodo che più probabilmente utilizzerà. Gli Fpga in un dato prodotto sono probabilmente disponibili sul mercato. Questo permette al pirata di ottenere il bitstream della configurazione e programmare la Prom dell'Fpga per produrre un prodotto contraffatto funzionale. La sovraproduzione è strettamente correlata alla clonazione ed è una delle forme più semplici di pirateria da perseguire. La sovraproduzione avviene quando un produttore a contratto crea un numero maggiore dei sistemi richiesti. Dato che i componenti dell'intero sistema saranno probabilmente disponibili da più fonti, il più delle volte è facile per il costruttore ordinare una distinta base completa che riproduca il progetto originale. Il produttore a contratto probabilmente non dovrà estrarre i dati di configurazione dalle Rom su scheda, perché avrà quasi certamente ricevuto le informazioni necessarie dal cliente Oem. Un problema correlato alla sicurezza di un progetto riguarda le funzioni progettate per impedire il furto di servizi. Molti dispositivi elettronici sono progettati per l'utilizzo di transazioni sicure al fine di erogare servizi a pagamento. In molti casi, sono i ricavi provenienti dal servizio a costituire la parte maggiore dei profitti del fornitore. L'hardware stesso può essere venduto a un prezzo uguale o inferiore al prezzo di costo. Per mantenere un flusso di entrate, il fornitore deve assicurarsi che l'utente possa ricevere il servizio solo dopo il pagamento. Se un utente elude i meccanismi di pagamento, causa una grave perdita di profitti e redditività. Se un hacker è in grado di ottenere informazioni dettagliate sull'implementazione della crittografia, avrà una maggiore possibilità di essere capace di decifrare le chiavi crittografiche gestite dal sistema e, di conseguenza, sconfiggere i meccanismi di protezione. Le tecniche di decifrazione della crittografia non si limitano al reverse engineering tradizionale. L'analisi delle informazioni del canale laterale - consumo energetico o Emi condotte da un dissipatore di calore - può fornire importanti indizi circa la procedura di elaborazione eseguita da un'unità di elaborazione crittografica. La tecnica è tanto comune da aver dato adito a una gara tra i ricercatori di sicurezza. Questo concorso finora ha avuto tre edizioni ed era teso a identificare il ricercatore capace di trovare più velocemente una chiave protetta su un sistema standard.

Misure di sicurezza specifiche
I produttori di Fpga hanno introdotto una serie di misure di sicurezza specifiche al dispositivo per proteggerlo contro le varie forme di contraffazione e per aiutare a prevenire lo sblocco non autorizzato di IP e servizi. La prima linea di difesa per gli Fpga fa fortemente leva sulla crittografia del bitstream. Questo fornisce un ulteriore livello di protezione al di là dell'incomprensibilità del formato del bitstream di configurazione stesso. Gli Fpga prodotti da Altera, Lattice e Xilinx offrono attualmente hardware di decodifica su chip per i dati di configurazione. In genere, il bitstream viene crittografato dal produttore mediante l'algoritmo Aes, basato sull'algoritmo Rijndael. Si tratta di un cifrario a blocchi dati simmetrici a 128 bit, che utilizza chiavi crittografiche a 128, 192 e 256 bit. "Simmetrico" significa che la stessa chiave è utilizzata nella crittografia e nella decrittografia. Ogni blocco in input a 128 bit (un array 2D 4x4 di byte anche definito Stato) passa attraverso una sequenza di quattro trasformazioni del blocco orientate al byte, il numero di cicli dipende dalla lunghezza della chiave utilizzata; 10 cicli per Aes-128, 12 per Aes-192 e 14 per Aes-256. Le trasformazioni utilizzate sono: sostituzione byte; scambio di riga byte aumentando le quantità da 0 a 3; riordinamento delle colonne all'interno dell'array Stato; aggiunta della relativa chiave del ciclo allo Stato. Durante le fasi di montaggio e di programmazione della scheda, la chiave a 256 bit deve essere scritta nell'Fpga di destinazione. Durante l'avvio, un blocco Aes prende il bitstream, lo decodifica e passa i dati di configurazione alla logica di configurazione. Poiché i dati di configurazione in testo semplice non sono visibili su alcuna delle porte I/O, un pirata non può leggere il flusso. Invece, dovrà investire ingenti risorse per decrittografare il bitstream mediante computer potenti. Gli Fpga differiscono tra loro per il modo in cui memorizzano la chiave. Gli Fpga basati su Sram di basso costo, in genere, consentono di archiviare i dati nella Sram, che richiede alimentazione ausiliaria a batteria per proteggere la chiave quando il sistema viene spento. Gli Fpga basati su Sram più avanzati utilizzano la memoria a programmazione unica o Otp, per archiviare le chiavi, eliminando la necessità di alimentazione ausiliaria a batteria. Un'alternativa alla crittografia consiste nel memorizzare la configurazione sull'Fpga stesso; di conseguenza, l'unica volta in cui il bitstream può essere letto è in fabbrica, quando viene programmato. Alcuni dispositivi, come gli Fpga ECP2 di Lattice includono un blocco di memoria flash su chip che può essere assegnato ai dati di configurazione. Al momento dell'avvio, i dati di configurazione sono copiati usando solo i bus interni nelle celle Sram che controllano lo stato interno dell'Fpga. La tecnologia utilizzata negli Fpga non volatili di Lattice offre un'elevata sicurezza dello schema di configurazione, offrendo al tempo stesso i vantaggi di una memoria Sram rapidamente riconfigurabile. I dispositivi di Microsemi fanno un ulteriore passo avanti con la tecnologia di configurazione non volatile. Grazie all'uso di gate antifusibile e flash, non esiste più un bitstream di configurazione da proteggere. Questo non solo offre il vantaggio di essere in funzione subito all'accensione, ma assicura l'assenza di qualsiasi mezzo per leggere il bitstream dopo la programmazione. I dispositivi basati su memoria flash nel portafoglio di Microsemi promuovono una maggiore sicurezza offrendo una serie di opzioni di gestione e archiviazione della chiave. Queste opzioni consentono di evitare la manomissione che potrebbe compromettere i dati, la sicurezza del servizio o qualsiasi tentativo di analizzare lo stato interno dell'Fpga. Con i dispositivi basati su flash, le chiavi crittografiche possono essere archiviate in maniera permanente senza la necessità di alimentazione ausiliaria a batteria. Diverse architetture basate su flash di Microsemi utilizzano blocchi di protezione per la memoria non volatile. Questa memoria è accessibile in scrittura solo dall'interfaccia di programmazione del dispositivo, non dall'Fpga o, nel caso della famiglia SmartFusion, dal microprocessore su chip. Ciò contribuisce a rendere il dispositivo più resistente contro gli attacchi sferrati sul bus di sistema (una tecnica comune). L'impostazione del bit di blocco sicurezza può, ad esempio, richiedere aggiornamenti successivi per essere crittografato con la chiave corretta. In alternativa, può vietare gli aggiornamenti se non si utilizza prima un codice di sblocco valido. Gli aggiornamenti possono anche essere vietati in modo permanente, rendendo il dispositivo un vero e proprio Otp. La natura segmentata dell'archiviazione di chiave e password nella famiglia di dispositivi basati su flash di Microsemi consente ai diversi esponenti della supply chain di partecipare alla programmazione del dispositivo in tempi diversi. Questo fornisce modi per gestire la sicurezza in modo efficace nel caso ci si possa fidare ciecamente di soltanto alcuni esponenti della supply chain. Ad esempio, Microsemi può configurare un segmento della memoria flash in fabbrica, utilizzandolo per memorizzare una chiave che consenta di caricare il core di proprietà intellettuale ottenuto in licenza da una terza parte. Il proprietario del progetto può configurare un altro segmento, ad esempio la chiave di decrittografia del bitstream e le opzioni di sicurezza; il produttore può quindi applicare la configurazione al tessuto principale dell'Fpga. Infine, il segmento di Rom flash può essere configurato dall'utente finale, ad esempio, caricando le chiavi crittografiche a livello di applicazione per controllare l'accesso ai servizi per l'utente. Per la protezione da attacchi contro un sistema in esecuzione, i produttori di Fpga hanno implementato contromisure. Ad esempio, Altera ha una protezione di antimanomissione su diversi Fpga di sua produzione. Se è impostato un fusibile di controllo, il dispositivo accetta solo i bitstream di configurazione crittografati con la chiave corretta. Ciò impedisce a un utente malintenzionato di cercare di determinare la funzionalità di altre parti del sistema alterando la configurazione dell'Fpga. Anche i dispositivi Stratix, Cyclone e Arria possono essere impostati per monitorare regolarmente la configurazione interna per assicurarsi che corrisponda a un checksum. In questo modo si evita che un utente malintenzionato possa sovrascrivere sezioni della logica per capire come il cambiamento influisca sul comportamento del sistema. I dispositivi Stratix possono anche essere configurati in modo tale che, se la logica di sistema ha funzioni per rilevare la manomissione, generare un comando che azzeri l'intera memoria dell'Fpga, compresa la sua configurazione. Per la protezione contro gli attacchi sul canale laterale, Microsemi ha ottenuto una tecnologia in licenza da diversi specialisti di sicurezza, tra cui Cryptographic Research. L'implementazione Aes dei più recenti dispositivi basati su flash è stata resa molto più resistenti a questo tipo di attacco. Per i clienti è possibile implementare contromisure in licenza per l'uso nelle proprie funzioni di logica sicura. Sebbene gli Fpga possano sembrare più vulnerabili alla clonazione, alla contraffazione e agli attacchi di sabotaggio, i fornitori di silicio hanno reso possibile per i clienti implementare contromisure altamente efficaci. I diversi tipi di Fpga disponibili consentono ora di scegliere il livello di sicurezza del progetto richiesto per qualsiasi tipo di applicazione.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome