Descrizione del progetto
Ro Technology è molto cresciuta dalla fondazione avvenuta nel 2011 e, da diversi anni, può partecipare ai bandi di gara europei forte di una esperienza pluriennale. Uno dei progetti più recenti fa parte del programma Horizon 2020 che elencava tra le varie materie di interesse, quella di fornire tecnologie per flotte di droni sicuri ed autonomi. Il bando dal titolo “COMP4DRONES: Framework of key enabling technologies for safe and autonomous drones’ applications” è focalizzato nel settore della produzione agricola estensiva e si occupa dei requisiti tecnologici per il monitoraggio delle coltivazione, con particolare attenzione alla gestione dello stato di salute e della crescita.
Al netto dell’efficacia nella realizzazione degli strumenti dedicati, la vera sfida è rappresentata dall’avere un efficientamento di tutte le attività, individuando come obiettivo la realizzazione di un framework di comunicazione leggero e adatto per girare su dispositivi IoT “resource – constrained”, dotati cioè di risorse limitate in termini di RAM, ROM e CPU, quali i sensori installati sui droni e utilizzati per la rilevazione dello stato di salute delle piantagioni.
Benché il dominio fosse già molto sfidante di per sé, la problematica su cui si è posta la maggior attenzione è stata la sicurezza delle comunicazioni tra i vari attori, in questo caso droni e i rover di terra.
Partendo da una versione dell’algoritmo di crittografia TAKS (Topology Authenticated Key Scheme), uno schema crittografico, definito nel contesto delle attività di ricerca svolte dal DEWS (Design Methodologies for Embedded controllers, Wireless interconnect and System-on-chip) dell’Università degli Studi dell’Aquila, si è implementato un modulo crittografico indipendente in grado di sfruttarne i vantaggi in tema di sicurezza e contemporaneamente, di essere eseguito su dispositivi IoT.
Altro risultato raggiunto è l’elevata scalabilità ottenuta grazie al passaggio dall’impiego del linguaggio di programmazione nesC a C, rendendo l’algoritmo applicabile a qualsiasi piattaforma software. Tale modulo è stato denominato LCM ovvero Lightweight Crypto Module.
Contesto
Secondo numerosi studi i servizi basati su droni sono in crescente e rapida diffusione grazie anche alla connettività dei sistemi e automazione nei settori più disparati, Chiaramente con l’aumentare del loro utilizzo emergono diversi problemi legati alla sicurezza, generando un impatto non trascurabile sull’innovazione e sullo sviluppo tecnologico, che richiede investimenti e incentivi nel settore R&D.
In questo scenario gli scopi del progetto sono diventati:
– consentire un alto livello di customizzazione e di sicurezza delle piattaforme embedded;
– far sì che i droni potessero agire autonomamente prendendo decisioni in sicurezza, sia durante missioni individuali sia cooperative;
– garantire comunicazioni drone – drone e drone – terra sicure ed affidabili, anche in presenza di attacchi hacker;
– gestire il tutto in un’ottica di sostenibilità ed economicità.
Dispositivi Resource – Constrained
Come abbiamo visto le caratteristiche principali dei sensori dei droni è che sono da considerare a tutti gli effetti dispositivi resource – constrained ovvero dispositivi con capacità limitate di elaborazione e di immagazzinamento dei dati. I tipici dispositivi embedded IoT sono dotati di microcontrollori ad 8 o 16-bit, poca ram e una velocità di trasmissione dati molto bassa: tutto ciò influenza parecchio l’aspetto sicurezza.
Sicurezza delle comunicazioni nelle reti di dispositivi
Intercettazioni, hacking, spoofing dell’identità, attacchi a più livelli ed attacchi multiprotocollo sono i principali fattori di compromissione della sicurezza dei collegamenti di comunicazione. Ad esempio, gli attacchi Denial of Service (DoS) influenzano la disponibilità, utilizzando la congestione della rete o portando all’overflow nella scheda/interfaccia di comunicazione, cosicché il sistema sembra non essere disponibile, mentre lo spoofing GPS può compromettere il canale di navigazione.
Meccanismi di attacco
Le minacce di rete possibili sono
- Attacchi a livello fisico (le grandezze di interesse sono frequenze, potenze e codifiche):
- Constant jamming: con questo tipo di attacco viene generato un segnale radio costante, al fine di disturbare quello emesso dall’antenna RF
- Deceptive jamming: è simile al constant jamming, ma viene emesso un segnale coerente, in modo che il traffico sembri essere legittimo.
- Reactive jamming: analogo al constant jamming, ma il segnale di disturbo viene inviato solo quando è in corso una trasmissione.
- Side channel attack: l’attacco consiste nell’interpretare i segnali di potenza ed il consumo di energia emessi dal sistema, tentando di estrarre le chiavi usate nelle trasmissioni criptate.
- Attacchi a livello di rete:
- Selective forwarding attack: i nodi malevoli intercettano i dati dai nodi a cui si sono associati e non li inoltrano
- Sinkhole attack: il nodo malevolo invia informazioni di routing errate ai nodi adiacenti
- Sybil attack: un singolo nodo malevolo presenta molteplici identità ai nodi della rete, portando all’esclusione di alcuni elementi legittimi dalla rete.
Per difendersi occorre implementare una crittografia abbastanza complessa tale da rendere la vita molto difficile agli attaccanti ma allo stesso tempo sostenibile.
Tipologie di crittografia
Crittografia simmetrica
Il processo di crittografia simmetrica è caratterizzato dall’utilizzo di una medesima chiave condivisa sia per l’operazione di cifratura che per quella di decifratura. Esistono diversi algoritmi di cifratura simmetrica, tuttavia quelli più diffusi sono i “cifrari a blocco”, nei quali il testo da cifrare viene suddiviso in blocchi di dimensione prefissata, generalmente pari alla dimensione della chiave. In questi algoritmi si suppone che entrambe le parti conoscano la chiave attraverso la quale crittare e decrittare il messaggio. Dal punto di vista della sicurezza, se un attaccante ha intercettato il messaggio durante la comunicazione, recupererà il messaggio crittato, ma non la chiave che è stata scambiata in modo sicuro dai due interlocutori. Tra i vari algoritmi di crittografia simmetrica citiamo il DES, il 3DES suo successore e l’AES.
Crittografia asimmetrica
A differenza della crittografia simmetrica, in quella asimmetrica si ricorre all’utilizzo di due chiavi diverse; una pubblica per la cifratura del messaggio ed una privata per la decifratura. Il principale vantaggio di questo meccanismo è la selettività del canale di scambio in quanto, se il messaggio dovesse essere intercettato, non potrebbe comunque essere decodificato in assenza della chiave. In altre parole, la sicurezza non dipende esclusivamente, come nel caso della crittografia simmetrica, dalla segretezza dell’unica chiave presente. Il principale svantaggio nell’uso degli algoritmi di crittografia simmetrica è che questi sono particolarmente onerosi dal punto di vista computazionale. Tale problema può essere attenuato, utilizzando contemporaneamente un algoritmo a chiave asimmetrica e uno a chiave simmetrica.
Crittografia ibrida
Combina gli algoritmi simmetrici ed asimmetrici. Un algoritmo ibrido ricorre tipicamente alla crittografia asimmetrica (computazionalmente oneroso) per instaurare in modo crittograficamente sicuro una chiave simmetrica tra le parti, per poi passare ad uno schema simmetrico (computazionalmente ottimo) in cui verrà impiegata la chiave appena scambiata per la cifratura e decifratura del messaggio. Per questa ragione la chiave viene anche detta chiave di sessione, e gli schemi a crittografia ibrida prendono anche il nome di Key Transport Schemes. In altre parole, si utilizza la crittografia a chiave pubblica solo per trasmettere una chiave, mentre il messaggio viene cifrato con un algoritmo simmetrico utilizzando la chiave trasmessa precedentemente in maniera sicura. In questo caso, poiché il metodo di condivisione della chiave è sicuro, la chiave simmetrica utilizzata è differente per ogni messaggio spedito.
Definizione di un modulo crittografico indipendente
Quando ci siamo trovati a scegliere che tipo di crittografia avremmo dovuto usare per Il progetto Comp4Drones , ci siamo subito resi conto che bisognava ricorrere all’implementazione di un framework di comunicazione leggera (Lightweight Communication Framework) che doveva consentire lo scambio di informazioni tra droni in sicurezza ed affidabilità. Avendo le limitazioni di cui già detto sopra, il framework doveva essere sviluppato in modo da soddisfare i vincoli intrinseci del drone in termini di spazio e di memoria.
LCF – Architettura del Lightweight Communication Framework (LCF)
La strategia che si è adottata per definire l’architettura del Framework LCF è la divisione in moduli software che scambiano informazioni tra di loro al fine di rendere il processo di trasmissione leggero, coeso e sicuro.
I moduli principali sono i seguenti:
- LM Listener Module: tale modulo è l’entry point del flusso di comunicazione e si occupa della ricezione dei comandi provenienti da altre componenti software e di trasformare tali comandi in messaggi da trasmettere al modulo successivo.
- LCM Lightweight Crypto Module: tale modulo si occupa della cifratura e decifratura del messaggio utilizzando la tecnica di crittografia ibrida garantendo così l’autenticità del messaggio e lo scambio di informazioni in sicurezza.
- SM Sender Module: modulo che si occupa di inviare il comando cifrato o decifrato ai componenti software destinatari.
Lightweight Crypto Module
Per rendere le comunicazioni tra dispositivi IoT sicure, è necessario adottare tecniche di crittografia che siano leggere e consistenti. Per soddisfare questo requisito è stato creato un modulo crittografico LCM (Lightweight Communication Framework) indipendente, capace di essere eseguito su qualsiasi dispositivo IoT rendendo lo scambio di informazioni sicuro ed affidabile, utilizzando una variante dell’algoritmo TAKS2 sviluppato dal centro di eccellenza DEWS dell’università degli studi dell’Aquila.
Le principali problematiche di TAKS2 stanno nel fatto che risulta utilizzabile solo su sistemi Embedded e che è fortemente dipendente della topologia di rete utilizzata, rendendolo poco modulare ed applicabile a tutti i dispositivi IoT. Per ovviare a queste limitazioni si è scelto di implementare TAKS2 in linguaggio C come una libreria, eliminando tutte le funzioni legate al sistema operativo TinyOS ed al sistema di messaging. In questo modo l’algoritmo risulta più leggero e più efficiente in termini di spazio e tempi di esecuzione poiché è stata eliminata tutta la fase di pre caricamento delle chiavi su tutti i nodi appartenenti alla rete.
Questo consente ad LCM di essere un modulo totalmente indipendente da:
- sistema di inoltro del messaggio;
- sensoristica utilizzata;
- tipo di dato;
- sistema operativo utilizzato;
- architettura del Sistema;
- topologia di rete.
Conclusioni
L’obiettivo realizzato del progetto di ricerca è stato quello di implementare un sistema che consentisse lo scambio di messaggi in maniera sicura tra droni per applicazioni in ambito IoT ottimizzando i consumi dovuti all layer di sicurezza. A partire dall’ algoritmo TAKS2 sviluppato in linguaggio nesC, utilizzando metodologie di crittografia ibrida, è stato possibile realizzare un modulo crittografico di comunicazione leggero, per questo denominato Lightweight Crypto Module. La sua scalabilità lo rende implementabile su una vasta gamma di dispositivi, ma soprattutto la sua indipendenza dalla topologia del network, fa sì che sia leggero e adattabile a qualsiasi architettura. Inoltre, tale modulo è utilizzabile anche da sistemi non embedded, rendendo il sistema totalmente indipendente dalla sensoristica che normalmente equipaggia i droni.
I contesti di utilizzo stanno aumentando in maniera esponenziale e naturalmente quasi tutti gli scenari futuribili vedono l’integrazione massiva dell’intelligenza artificiale applicata alle flotte di droni.