Oggi quando si parla di Internet si tende a considerare la rete come un insieme informe di connessioni e contenitori di informazioni. Il web rappresenta la biblioteca, l’archivio video e l’album fotografico personale del XXI secolo. Con la nascita e la diffusione di Internet of Things, la rete Internet non è solo il mondo delle ricerche e delle informazioni, ma diventa teatro d’azione, di attività di droni comandati da remoto. In tale contesto si comprende che la rete comincia a subire dei rischi notevoli, soprattutto da parte di hacker che potrebbero utilizzare l’Internet of Things come la più potente fabbrica del male. In questa seconda parte della trattazione vediamo quali sono state le evoluzioni degli standard, come si intreccia oggi il mondo dei sensori con Internet e un approccio al mondo della sicurezza per difenderci da eventuali attacchi provenienti dal cyberspazio.
Nella prima parte della dissertazione è stato presentato lo standard IEEE 802.15.4. Ne vediamo ora un’evoluzione: lo standard IEEE 802.15.4a [a].
Questo standard si arricchisce sul livello fisico (livello 1) definendo due diversi strati fisici. Il primo, chiamato Chirp Spread Spectrum (CSS), offre una velocità di trasmissione dati fino a 2 Mbps e offre una maggiore efficienza nella gestione delle interferenze. Il secondo è basato su UWB (Ultra Wide Band). Questa tecnologia è sviluppata per trasmettere e ricevere segnali attraverso l’uso di impulsi a radiofrequenza con durata estremamente ridotta. Ha una velocità di trasmissione dati massima di 10 Mbps entro un’area di copertura inferiore a 10 metri. In ogni caso entrambe le modalità non sono compatibili con lo standard IEEE 802.15.4.
Altro standard che nel 2012 fu definito dal Task Group 4e dell’IEEE, fu l’IEEE 802.15.4e.
Le novità sono:
Sono state migliorate ed incrementate le funzioni al livello MAC:
ZigBee è uno dei principali protocolli di comunicazione, edito dalla ZigBee Alliance, nato per le reti wireless a bassa potenza e a bassa velocità di trasmissione dati [b] [c]. È uno standard per il monitoraggio flessibile e il controllo degli apparecchi negli ambienti domestici e commerciali.
Zigbee utilizza le specifiche MAC/Phy IEEE 802.15.4 (Fig.3). L’ultima versione, la 3.0, è stata creata per facilitare la scelta e l’utilizzo del prodotto da parte dell’utente finale nelle varie implementazioni. La connessione delle reti ZigBee 3.0 al protocollo IP ha permesso il decollo dell’IoT. Le isole di sensori ed attuatori sono oggi connesse ad Internet: il monitoraggio e la gestione remota sono attività possibili grazie al connubio ZigBee e mondo IP. Il mondo delle app degli smartphone e tablet si rivolge sempre più verso la gestione di questi dispositivi. I dispositivi IoT vengono quindi corredati di app per smartphone e tablet.
La letteratura presentata in questo articolo mostra punti di forza e debolezza delle soluzioni più importanti per implementare un’associazione sicura tra i dispositivi nell’IoT. Parleremo ora degli approcci più noti per progettare sistemi di scambio di chiavi e il modo migliore per implementare la sicurezza.
Il Servizio di Gestione delle Chiavi, KMS (Key Management System) è il centro di sicurezza del sistema basato sulle chiavi. Questo sistema definisce come generare le chiavi, come scambiarle, come memorizzarle e come sostituirle. Il KMS include la progettazione del protocollo crittografico, l’implementazione del server principale, le procedure utente e altri protocolli rilevanti [d]. Con l’Internet of Things, il KMS diventa l’elemento principale per la sicurezza dei dispositivi connessi.
I sistemi crittografici utilizzano diversi tipi di chiavi: sistemi a chiave simmetrica e sistemi a chiave asimmetrica. In un algoritmo a chiave simmetrica, la stessa chiave è utilizzata per crittografare e decrittografare un messaggio. Le chiavi devono essere scelte con cura, distribuite e archiviate in modo sicuro. In un sistema di chiavi asimmetriche sono utilizzate due chiavi diverse, ma sono collegate matematicamente l’una all’altra. La chiave utilizzata per crittografare è diversa dall’altra utilizzata per decrittografare. Ogni dispositivo ha una coppia di chiavi (una chiave pubblica e una chiave privata) associate. La chiave pubblica deve essere distribuita sulla rete in modo sicuro, mentre quella privata deve essere consegnata su un canale diverso e ancora più sicuro.
L’approccio più semplice è una chiave pubblica scambiata prima della trasmissione dei dati tra i dispositivi. Se usiamo solo una chiave pubblica tra i dispositivi, abbiamo lo svantaggio che se questa chiave diviene sfortunatamente nota, rimuoverebbe la sicurezza dall’intero sistema. Dall’altra parte, se utilizziamo un paio di chiavi per ogni coppia di dispositivi, il sistema non diventa più scalabile, perché le reti IoT sono caratterizzate da un numero elevato di dispositivi [e]. Inoltre, per ogni coppia di chiavi, dobbiamo sempre garantire la riservatezza, l’integrità, la disponibilità e l’autenticazione della fonte [f].
Meccanismi più sofisticati possono risolvere questi tipi di problemi. La maggior parte delle tecniche si basa sull’algoritmo Diffie-Hellman (DH) del 1975 e sugli approcci con l’algoritmo ECDH (Algoritmo di Diffie-Hellman con le curve ellittiche) [g]. Il primo algoritmo è particolarmente affidabile perché è difficile risolvere il problema del logaritmo discreto. Il secondo, ECDH, tuttavia, sfrutta lo scambio di chiavi attraverso la primitiva tipica della “crittografia a curva ellittica” (ECC), che offre lo stesso livello di sicurezza dell’algoritmo DH ma con una lunghezza della chiave significativamente più piccola.
La caratteristica principale che un sistema a chiave pubblica/privata deve fornire è che non si deve poter ricavare una chiave dall’altra.
Nella teoria di Diffie-Hellman l’algoritmo di crittografia è chiamato E(·) e quello di decrittografia D(·).
L’algoritmo deve soddisfare due condizioni:
Se M è il messaggio
Questo algoritmo funziona come segue, vediamo l’esempio.
Alice, che desidera ricevere messaggi segreti da Bob, implementa due funzioni E (·) e D (·), parametrizzate rispettivamente dalla chiave di crittografia e dalla chiave di decrittografia, che soddisfano i suddetti requisiti. La chiave di crittografia è resa pubblica, mentre quella di decrittografia viene tenuta segreta da Alice. Se Bob vuole inviare un messaggio M ad Alice, deve ottenere la chiave pubblica di Alice, calcolare C = E(M), che è il suo messaggio crittografato, e inviarlo ad Alice. Alice, dopo aver ricevuto un messaggio, usa la sua chiave privata per decifrare il messaggio originale M = D (C).
Pertanto, la crittografia a chiave pubblica richiede che l’utente abbia due chiavi: una chiave pubblica utilizzata per crittografare i messaggi e una chiave privata per decrittografare i messaggi ricevuti. Queste due chiavi devono essere correlate tra loro, ma deve essere particolarmente complicata e difficile da calcolare la chiave privata da quella pubblica. Questa difficoltà si basa principalmente su problemi matematici.
I problemi matematici più comuni su cui si basa un sistema crittografico a chiave pubblica sono:
Rispetto ad un sistema di crittografia simmetrica, un sistema di chiavi asimmetriche presenta prestazioni peggiori perché è più lento, ma fornisce la soluzione migliore per il problema di distribuzione delle chiavi. Date le enormi differenze tra i sistemi utilizzati e il relativo problema matematico, il confronto e l’analisi sono basati essenzialmente sulla dimensione della chiave. Il giusto compromesso è trovare la corretta dimensione della chiave per un livello di sicurezza accettabile dell’intero sistema. Questo concetto è particolarmente importante in IoT, in quanto, trattandosi di reti con un basso bit-rate, la trasmissione di un pacchetto di dati di dimensioni ridotte migliora l’efficienza dell’intero sistema. È anche utile considerare che, a seconda della situazione, una chiave eccessivamente grande può influire negativamente sulle prestazioni di un algoritmo ed una troppo piccola può portare allo sviluppo di un sistema non sicuro.
Pertanto, è necessario determinare il livello minimo della dimensione della chiave che garantisce un livello sufficiente di sicurezza. Il confronto può anche essere fatto in relazione ad un altro fattore: il tempo di esecuzione. I problemi IFP e DLP sono sostanzialmente equivalenti, quindi sono paragonabili per sicurezza e tempo di esecuzione. Il problema del logaritmo discreto su curve ellittiche (ECDLP) è invece considerevolmente più complesso ma più sicuro di IFP e DLP. Se abbiamo la stessa lunghezza della chiave, un sistema basato su ECDLP è sostanzialmente più sicuro dei sistemi RSA/DSA. È quindi naturale concludere che ECDLP fornisce un miglioramento in termini di prestazioni e sicurezza nell’ambiente IoT.
A cura di: Crescenzio Gallo, Michele Perilli, Michelangelo De Bonis
Università di Foggia
Nel panorama odierno della sicurezza informatica, la protezione degli endpoint rappresenta un obiettivo imprescindibile per…
I numeri dell’evento Oltre 1000 ospiti, 42 relatori, 20 interventi tematici e 5 Tavole Rotonde:…
Group-IB è un fornitore, con sede a Singapore, di sistemi ad elevata attendibilità per il…
Le interazioni di natura digitale, su rete pubblica o all’interno di reti private, hanno assunto…
La Commissione Europea ha di recente ricordato come “Artificial intelligence (AI) is not science fiction;…
Di seguito il programma della Cyber Crime Conference 2024, che avrà luogo a Roma nei…