La sicurezza dei dispositivi informatici è uno degli aspetti più importanti da tenere sempre in considerazione, dalla fase di progettazione a quella di distribuzione finale.

I dispositivi IoT possiedono poche risorse hardware e, per questo motivo, non è possibile per loro usufruire di tutti i meccanismi di protezione e sicurezza che verrebbero invece implementati sui sistemi più comuni.

Cosa potrebbe accadere se la sicurezza di un sistema IoT venisse meno o venisse forzata da attacchi esterni? Sicuramente, alcune delle conseguenze più gravi riguardano:

  • Mancata riservatezza dei dati trasmessi.
  • Possibilità di modifica o distruzione dei dati con conseguenze anche catastrofiche per la sicurezza delle persone, come ad esempio nel caso di database contenenti informazioni private.
  • Possibilità di attacchi al sistema, come ad esempio atti vandalici o controllo fraudolento dei dispositivi.
  • Spionaggio industriale e furto di informazioni

Nei successivi paragrafi cercheremo di illustrare le principali soluzioni che Zerynth ha adottato per garantire sicurezza e integrità di un sistema IoT.

Cybersicurezza in Zerynth 

Ciascun dispositivo IoT è composto da due parti principali: l’elemento fisico e il suo gemello digitale, astratto e presente nel cloud. È necessario, quindi, che entrambe le entità siano sempre collegate in modo sicuro.

Le parti più facilmente attaccabili in un sistema IoT sono:

  • Comunicazioni con la rete
  • Aggiornamenti di sicurezza
  • Servizi onboard

Le soluzioni di Zerynth sono pensate e progettate per affrontare qualsiasi minaccia relativa alla sicurezza, fin dalla fase di costruzione del dispositivo. Utilizzano, infatti, solo protocolli di comunicazione certificati e sono in grado di archiviare i dati nel cloud in modo sicuro.

Ecco, di seguito, alcune delle possibili soluzioni per ovviare alle problematiche relative alla scarsa sicurezza dei sistemi IoT (e citate precedentemente).

Come avviene la comunicazione con la rete?

Tutti i dispositivi hardware Zerynth si basano sul modulo ZM1, che incorpora un elemento crittografico per l’archiviazione delle credenziali e le chiavi di crittografia necessarie per poter comunicare con il gemello digitale in modo sicuro.

L’elemento crittografico è un circuito hardware integrato che implementa le funzionalità di sicurezza più elevate disponibili sul mercato.

zOS implementa i protocolli standard TLS v1.2 e v1.3, altamente sicuri, e che si basano su due chiavi crittografiche, una privata e una pubblica. La chiave privata deve essere mantenuta segreta sul dispositivo fisico ed entrambe vengono archiviate all’interno degli elementi crittografici quando vengono costruite: questo assicura che la chiave privata non sia fisicamente accessibile da un utente malintenzionato o sensibile a possibili attacchi di intercettazione. Il protocollo TLS rafforzato consente ai dispositivi fisici e al gemello digitale di comunicare in modo privato proteggendo allo stesso tempo l’integrità dei dati.

Figura 1. Come utilizzare le chiavi crittografiche per garantire sicurezza al sistema

Aggiornamenti e sicurezza dei dispositivi

I dispositivi Zerynth utilizzano la procedura FOTA (Firmware Over The Air) per l’aggiornamento del firmware dei dispositivi fisici, garantendo un’adeguata resistenza e affidabilità del processo.

Inoltre, attraverso l’aggiornamento costante delle versioni di Zerynth SDK, è possibile mantenere sempre protetti i dispositivi IoT con gli ultimi standard di sicurezza possibili.

Sul lato cloud, invece, l’aggiornamento avviene in maniera periodica adottando l’ultima versione dello standard di protezione e sicurezza in grado di risolvere l’anomalia rilevata non appena viene identificata.

Infine, i server sono protetti dal firewall che implementano standard di sicurezza più elevati e strategie per bloccare o mitigare gli attacchi alla sicurezza.

Servizi onboard

I dispositivi con zOS non hanno servizi attivi in ascolto sulla rete. Questo protegge da attacchi di tipo port scanning o di Denial of Service.

Le connessioni di rete, infatti, partono sempre dal dispositivo fisico verso il cloud, vanificando la scansione delle porte e i relativi attacchi DoS (Denial of Service).

Facile anche per l’utente? 

Si tratta di una procedura molto semplice anche per l’utente, che non deve preoccuparsi di cercare sempre i protocolli migliori per tutti i possibili problemi relativi alla sicurezza. Questo perché Zerynth SDK fornisce librerie Python facili e pronte all’uso in grado di connettere in modo sicuro hardware e cloud attraverso poche righe di codice!

Di seguito, ecco un esempio su come configurare un dispositivo Zerynth IoT in modo sicuro e connetterlo al zCloud, sfruttando l’elemento crittografico incorporato.

Le due righe di codice per la gestione della connessione sono le righe 15 e 16.

Figura 2. Esempio di configurazione e connessione al ZCloud di un dispositivo Zerynth IoT

Le prime tre righe di codice descrivono i moduli necessari da importare per eseguire il programma:

  • Riga 1: Importando il modulo della scheda dal bsp (pacchetto di supporto della scheda) il progetto può essere eseguito su diversi dispositivi Zerynth senza modificare righe di codice.
  • Riga 2: Viene importato il modulo di Zerynth Device Manager, che è il punto di ingresso per Zerynth Cloud in cui risiede il digital twin del dispositivo.
  • Riga 3: Dopo aver importato il modulo wifi dal pacchetto “network”, è possibile configurare l’interfaccia Wi-Fi e stabilire la connessione di rete (linee 5-13)

Per concludere, le righe 15 e 16 sono le più importanti per la gestione della sicurezza, e definiscono l’oggetto ZDM e avviano la connessione tra l’hardware e il gemello digitale su zCloud. Tutti gli aspetti di sicurezza sono gestiti da zOS utilizzando l’elemento crittografico

Il ciclo del codice termina dalle righe 18 a 23, dove i dati vengono inviati dal dispositivo fisico allo zCloud e concludono il processo per rendere il dispositivo più sicuro.

Se vuoi saperne di più sul tema dei codici relativi alla sicurezza dei dati, leggi il nostro white paper The Veil of IoT Security.

Share This Story, Choose Your Platform!

About the Author: Marco Gigante

Marco è Head of hardware engineering di Zerynth. È laureato in Ingegneria Informatica ed è appassionato di computer: già a 13 anni scriveva la sua prima Interrupt Service Routine sul suo c64 e iniziava a praticare karate. Oggi è esperto di sistemi embedded, linux e networking e, nel frattempo, non ha mai smesso di praticare karate ed ispirarsi alle arti dello Zen e del Bushido.

Follow Zerynth on

Latest Posts