L’Internet of Things (IoT) si è rapidamente diffuso negli ultimi anni e la sua crescita non mostra segni di rallentamento. Con l’aumento del numero di dispositivi IoT, aumenta anche la necessità di misure di sicurezza per proteggere i dati sensibili e garantire l’integrità della comunicazione tra i dispositivi. È qui che entra in gioco la lightweight cryptography.
Crittografia, cos’è: guida alla tecnologia che protegge dati e privacy anche delle aziende
Indice degli argomenti
La lightweight cryptography in breve
La lightweight cryptography si riferisce ad algoritmi e protocolli crittografici progettati specificamente per essere efficienti e adatti all’uso in ambienti con risorse limitate, come smart card, sensori wireless e sistemi embedded.
Questi dispositivi hanno una potenza di elaborazione, una memoria e risorse energetiche limitate, che rendono impraticabili gli algoritmi crittografici tradizionali.
Sebbene gli algoritmi più tradizionali come AES e SHA funzionino in modo ottimale all’interno dei sistemi informatici, essi riscontrano delle difficoltà nel mondo IoT/embedded in quanto occupano: troppa potenza di elaborazione, troppo spazio fisico e consumano troppa batteria.
Perciò, è stato necessario progettare nuove funzioni hash e MACs come Quark, Marvin e cifrari a blocchi/streaming come PRESENT, SPONGENT che sono invece adatti ad ambienti con risorse limitate.
Questo vale anche per la crittografia asimmetrica che può essere utilizzata per questi dispositivi e comprende sistemi di crittografia numerico-teorica, come ECC, PBC e i cryptography lattices.
Dunque, possiamo asserire che nei dispositivi IoT/embedded vengono implementati algoritmi che utilizzano in genere chiavi di dimensioni ridotte e operazioni matematiche più semplici per ridurre il carico computazionale e i requisiti di memoria e sono ottimizzati per un basso consumo energetico.
L’implementazione di questi ultimi protocolli è soprattutto rivolta alla creazione di un efficace compromesso fra efficienza computazionale, implementativa ed efficacia crittografica.
Esistono diverse tipologie di attacco, di seguito alcuni esempi:
- Attacchi side-channel: Questi attacchi sfruttano le caratteristiche fisiche del dispositivo su cui viene eseguito l’algoritmo crittografico per estrarre informazioni sensibili, come le chiavi segrete.
- Key-recovery attacks: In alcuni algoritmi della lightweight cryptography, il processo di generazione della chiave non è sufficientemente casuale o sicuro, rendendo possibile per un criminale informatico il recupero della chiave segreta attraverso la forza bruta o analisi statistica.
- Errori di implementazione: Gli algoritmi della lightweight cryptography sono spesso implementati nel software e gli errori di implementazione possono portare a vulnerabilità. Questi errori possono includere buffer overflow, integer overflow e altri errori di programmazione che possono essere sfruttati dai cyber criminali.
Gli attacchi side-channel: cosa sono, come funzionano
I cyber criminali eseguono un attacco side-channel (canale laterale) monitorando l’implementazione fisica per ottenere informazioni critiche da un sistema target. In questo modo è possibile raccogliere informazioni di un sistema misurando o sfruttando effetti indiretti del sistema o del suo hardware, piuttosto che attaccare direttamente il software applicativo o il suo codice. Più comunemente, questi attacchi mirano a esfiltrare informazioni sensibili, comprese le chiavi crittografiche.
I cyber criminali utilizzano in genere tre tecniche, l’analisi dei tempi (Timing Analysis), l’analisi della potenza (Power Analysis) e l’analisi elettromagnetica (ElectroMagnetic Analysis).
Questi tre tipi di segnali contengono informazioni che sono correlate al flusso di funzionamento dell’algoritmo ed in ultima istanza ai bit della chiave utilizzata.
Analisi dei tempi
L’attacco di analisi dei tempi si basa sulla quantità di tempo impiegata dal dispositivo per eseguire diversi calcoli.
L’attacco di analisi della potenza si basa sulla variazione del consumo di energia durante un’operazione crittografica.
Nelle operazioni crittografiche, come la crittografia o la decrittografia, (es. somme, sottrazioni, divisioni o moltiplicazioni con peso di Hamming, esponenziali modulo n, fattoriali, context switch nel flusso di hypethreating ecc.) il tempo di esecuzione può variare a seconda dei parametri dell’algoritmo.
Queste operazioni sono funzione dei singoli bit della chiave e quindi si può inferire con un’analisi numerica opportuna i bit della chiave privata a partire dalla traccia di timing.
Analisi della potenza
Gli attacchi di analisi energetica sfruttano il fatto che il consumo energetico di un dispositivo può rivelare informazioni sulle operazioni interne e sulle chiavi segrete utilizzate in un algoritmo crittografico.
Il principio è lo stesso della analisi dei tempi: le operazioni svolte dalla CPU del dispositivo hanno una firma caratteristica sulla traccia del consumo di potenza che è in relazione al parametro dell’operazione.
Misurando il consumo di energia durante l’esecuzione di operazioni crittografiche, un aggressore può estrarre informazioni sulle chiavi segrete, consentendo di decifrare o falsificare i messaggi.
Riportiamo due tipologie di analisi della potenza: la Simple Power Analysis (SPA) e l’analisi differenziale della potenza (DPA).
Entrambe prevedono la misurazione del consumo di energia di un dispositivo durante l’esecuzione multipla della stessa operazione crittografica con input diversi.
Analizzando le tracce dirette o le differenze fra le tracce nel consumo di energia, un attaccante può dedurre informazioni sulle operazioni interne e sulle chiavi segrete, conoscendo ovviamente i dettagli implementativi dell’algoritmo specifico (cioè come è stato implementato su quella specifica CPU).
L’oscilloscopio osserva l’intervallo di tempo tra due impulsi attraverso la sonda. Il profilo di carico formato dai segnali può aiutare un attaccante sul modo in cui i dati vengono elaborati.
L’analisi differenziale della potenza.
Analisi delle emissioni elettromagnetiche
L’analisi elettromagnetica (EMA) sfrutta la radiazione elettromagnetica emessa da un dispositivo durante le operazioni crittografiche.
Analizzando la radiazione elettromagnetica, un attaccante può dedurre informazioni sulle chiavi segrete utilizzate all’interno dell’algoritmo.
La EMA è una tecnica di hacking utilizzata fin dagli anni ’50. È una tecnica di attacco classica, utilizzata ancora oggi contro oggetti IoT e IIoT (Industrial IoT).
Tuttavia, esiste un utilizzo alternativo come tecnica di difesa e meccanismo di rilevamento delle anomalie.
Se un oggetto emette improvvisamente uno spettro diverso, è possibile che al suo interno sia presente un malware attivo o un malfunzionamento.
La tecnica descritta è stata recentemente utilizzata per determinare il tipo di software dannoso che sta infettando un dispositivo IoT, indipendentemente dal fatto che il codice sia offuscato per eludere il rilevamento e che utilizzi solo informazioni sui canali laterali.
L’aspetto più interessante è che il metodo basato sull’intelligenza artificiale NON richiede alcuna modifica del dispositivo di destinazione.
Pertanto, può essere implementato indipendentemente dalle risorse disponibili senza alcun overhead. Inoltre, non può essere rilevato ed eluso dagli autori del malware.
Tecniche di difesa classiche
Negli anni sono state sviluppate diverse tecniche di mitigazione dei suddetti attacchi come le seguenti, che seguono tutte lo stesso principio: offuscare le tracce di potenza, il timing e le emissioni elettromagnetiche.
- Mascheramento (Masking): tecnica che prevede l’introduzione di valori casuali aggiuntivi (maschere) durante le operazioni crittografiche. Queste maschere vengono combinate con i dati da proteggere garantendo che ogni operazione sensibile venga eseguita su un insieme di quote casuali del segreto (shared of the secret), offuscando di fatto i dati sensibili. Operazione simile al “salting” usato per l’offuscamento degli hash nei database.
- Scrambling: tecnica utilizzata per randomizzare i valori intermedi e i calcoli durante le operazioni crittografiche Introducendo valori casuali o perturbazioni nei calcoli cosicché da interrompere la correlazione tra i dati da proteggere e i canali laterali osservabili.
- Inserimento di ritardi casuali (Random Delay Insertion): comporta l’introduzione di ritardi casuali nell’esecuzione di operazioni o istruzioni sensibili. Questa tecnica impedisce agli aggressori di misurare con precisione il tempo di esecuzione delle operazioni crittografiche, riducendo l’efficacia degli attacchi di canale laterale basati sull’analisi temporale.
- Codifica a peso costante (Constant-Weight Encoding): tecnica che garantisce che il consumo di energia o le radiazioni elettromagnetiche emesse durante le operazioni crittografiche rimangano costanti indipendentemente dai dati elaborati. Mantenendo un profilo di potenza costante, si vanificano gli attacchi di canale laterale che si basano sull’analisi della potenza o dell’elettromagnetismo.
- Polimorfismo del codice (Code Polymorphism): consiste nell’applicare trasformazioni al codice o agli algoritmi utilizzati in un sistema per renderli funzionalmente equivalenti ma strutturalmente diversi. Questa tecnica rende più difficile agli attaccanti l’analisi del codice e l’estrazione delle informazioni cambiando continuamente la struttura del codice o l’implementazione dell’algoritmo.
- Clock randomizzato (Randomized Clocking): tecnica che aggiunge della casualità ai segnali di clock utilizzati in un sistema introducendo variazioni temporali casuali ai segnali di clock, la perdita di informazioni sulla tempistica viene offuscata. Il clock randomizzato impedisce agli aggressori di correlare con precisione la tempistica delle operazioni con la perdita di canale laterale osservata, riducendo l’efficacia degli attacchi basati sull’analisi temporale.
La recente evoluzione degli attacchi tramite AI
Eppure, anche considerando le tecniche di difesa sopra descritte, queste tipologie di attacco sono tornate in auge grazie all’intelligenza artificiale (AI).
Difatti, il meccanismo di crittografia a chiave pubblica e incapsulamento delle chiavi CRYSTALS-Kyber, raccomandato dal NIST nel luglio 2022 per la crittografia post-quantistica, è stato violato. I ricercatori del KTH Royal Institute of Technology di Stoccolma, Svezia, hanno utilizzato un’intelligenza artificiale ricorsiva combinata con attacchi di side-channel.
“Gli attacchi side-channel basati sul deep learning”, affermano i ricercatori, “possono superare le contromisure convenzionali come il mascheramento, il rimescolamento, l’inserimento di ritardi casuali, la constant-weight encoding, il polimorfismo del codice e il clock randomizzato”.
L’importanza della ricerca svedese è che i computer quantistici non sono l’unica minaccia per la crittografia. Il rapido miglioramento dell’intelligenza artificiale potrebbe essere una minaccia significativa e più imminente per gli algoritmi di crittografia classici e post-quantistici.
Consideriamo che il NIST a febbraio 2023 ha annunciato un vincitore del contest riguardante il miglior algoritmo di lightweight cryptography, tra più di 57 sottomissioni. Il vincitore, un gruppo di algoritmi crittografici chiamato Ascon, sarà pubblicato come standard del NIST nel 2023.
Tuttavia, anche se una variante di Ascon può offrire delle difese contro attacchi di tipo quantum-computing, gli stessi ricercatori hanno asserito che “La crittografia post-quantistica è importante soprattutto per i segreti a lungo termine che devono essere protetti per anni. In generale, la lightweight cryptography è importante per segreti più effimeri”.
Consideriamo che le ricerche dei computer quantistici sono un filone di studi decisamente attuale. Basti considerare che l’India nel febbraio 2023 ha annunciato l’intenzione di spendere $1bn nei prossimi cinque anni.
Algoritmi crittografici, dal NIST i primi quattro resistenti ai computer quantistici: i dettagli
Conclusioni
Per concludere, possiamo riassumere che molti algoritmi relativi alla lightweight cryptography sono stati progettati sulla base dei presupposti dell’informatica classica e non sono resistenti agli attacchi dei computer quantistici ed analisi tramite sistemi di AI.
Questi algoritmi dovrebbero essere progettati per resistere agli attacchi dei computer classici e quantistici, garantendo una sicurezza a lungo termine per i dispositivi a risorse limitate (Post-Quantum Cryptography, PQC) considerando anche l’avvento di soluzioni basate sull’intelligenza artificiale.
Inoltre, la standardizzazione di questi ultimi algoritmi crittografici resistenti ai computer quantistici è fondamentale per garantire l’interoperabilità, la compatibilità e una corretta adozione.
Infine, ricordiamo che la lightweight cryptography è un campo dinamico e le continue valutazioni, ricerche e sviluppi sono essenziali per tenere il passo con i progressi dell’informatica quantistica e le minacce emergenti come quelli basati sul deep learning.
La collaborazione continua tra università, industria e organismi di standardizzazione è fondamentale per affrontare le sfide e garantire la sicurezza dei dispositivi IoT e non solo nell’era post-quantistica e solo il tempo ci potrà dire se le scelte nel NIST e delle implementazioni lato security della lightweight cryptography saranno efficaci contro queste tipologie di attacco.
APPROFONDIMENTI
Lightweight Cryptography | Futurex
Full article: Lightweight cryptography methods (tandfonline.com)
Lightweight Cryptography Applicable to Various IoT Devices : NEC Technical Journal | NEC