TECH INSIGHT
VISIONE ARTIFICIALE
21
- ELETTRONICA OGGI 464 - SETTEMBRE 2017
conformità allo standard
applicabile. Ciò potrebbe
richiedere il collaudo del
sistema EV nelle condi-
zioni ambientali in termini
di intervalli operativi, vi-
brazioni dinamiche e urti.
Potrebbe anche essere
necessario effettuare il
test di invecchiamento,
per assicurare il raggiun-
gimento della durata ope-
rativa del sistema.
La progettazione attenta alla sicurezza
Per quanto riguarda la sicurezza, gli ingegneri che si occupano degli aspetti ad alto livello devono considerare
quanto segue:
La concorrenza che duplica il progetto.
Una modifica non autorizzata del progetto.
L’accesso non autorizzato ai dati all’interno del progetto.
Il controllo o la manipolazione non autorizzata dell’applicazione finale.
Esistono diversi modi per affrontare queste sfide. È possibile controllare l’accesso agli archivi di progetto e di
fabbricazione. La cifratura dei flussi di bit può impedire gli attacchi con falsificazione dell’identità o il furto di
dati per intercettazione. Il progetto fisico può essere protetto limitando l’accesso alle porte JTAG nel prodotto
finale, e attuando delle misure per la sicurezza del software in base all’architettura del dispositivo selezionato.
Il cuore di qualsiasi sistema EV è la sequenza di elaborazione delle immagini, la quale combina l’elaborazione
a larga banda con le funzionalità di supervisione e di controllo. Consentendo di ottenere un’architettura più
strettamente integrata di quanto si possa ottenere usando un processore e la logica implementata su un FPGA
separato, il dispositivo Interamente Programmabile Zynq-7000 non solo fornisce una soluzione SWaP-C migliore
(discussa nella parte 2 di questa serie di articoli), ma mette anche a disposizione un sistema più sicuro perché
i dati che transitano fra il processore e la matrice logica non sono inviati ai pin esterni, dove possono essere
intercettati o monitorati. Inoltre, il dispositivo Zynq fornisce un’architettura embedded per la sicurezza che può
essere usata per supportare la configurazione sicura. All’interno del Sistema di Elaborazione (PS) e della Logica
Programmabile (PL), è possibile usare un processo a tre stadi per garantire che le partizioni del sistema siano
protette. Quest’ultimo comprende la Modalità di Autenticazione dei Messaggi con funzione Hash (HMAC), la
decifratura con Standard di Cifratura Avanzato (AES) e l’autenticazione RSA. Sia l’AES, sia l’HMAC usano chiavi
private a 256 bit, mentre l’RSA usa chiavi a 2048 bit. L’architettura per la sicurezza del dispositivo Zynq con-
sente anche di abilitare o di disabilitare l’accesso all’interfaccia JTAG. Queste funzionalità per la sicurezza sono
abilitate durante la generazione del file di avvio e delle partizioni della configurazione per i supporti non volatili
di avvio. È anche possibile definire una partizione alternativa. In questo caso, se al primo stadio il programma
di avvio non riesce inizialmente a caricare la propria applicazione, ricorrerà a un’altra copia dell’applicazione
archiviata in una locazione di memoria diversa.
Come creare un ambiente sicuro
Una volta che il dispositivo è stato installato con successo ed è funzionante, è possibile usare la soluzione per la
sicurezza basata sull’hardware TrustZone di ARM supportata sul dispositivo Zynq per suddividere il sistema in
ambienti sicuri e non sicuri. La tecnologia TrustZone implementa core virtuali sicuri e non sicuri sul processore
Cortex-A9 e comprende la memoria, la cache L2, il software, le transazioni sul bus, gli interrupt e le periferi-
che. La logica hardware partiziona gli ambienti sicuri e non sicuri, e un sistema di monitoraggio sicuro basato
su software gestisce le transizioni fra i due. Questo crea un Ambiente di Esecuzione Sicuro (TEE) che include
l’isolamento dell’hardware basato sulla tecnologia TrustZone, l’avvio sicuro e l’OS sicuro. Le applicazioni che
devono essere sicure possono girare nel TEE. Durante l’esecuzione della sequenza di elaborazione delle imma-
Fig. 2 – Implementazione dell’avvio sicuro e della tecnologia TrustZone in un dispositivo Interamente
Programmabile Zynq-7000