Alcuni ricercatori tedeschi della società olandese Fox IT hanno dimostrato la possibilità di effettuare attacchi ad AES-256 estraendo i bit della chiave con l’analisi del consumo energetico e lo studio delle onde elettromagnetiche emesse dalla CPU durante l’operazione di cifratura.
Questa tipologia di attacchi ricade sotto la definizione di TEMPEST , nome in codice coniato dall’NSA e usato sin dagli anni 60 per indicare il campo della ” emission security ” (EMSEC), l’approccio alla sicurezza basato sull’analisi e il contrasto delle emanazioni non intenzionali dei dispositivi elettronici , come ad esempio le emissioni in radio frequenza (RF).
Tali problematiche erano inizialmente considerate di carattere poco realistico, fino ad uno studio del 1985 ad opera di Van Eck che ha dimostrato come sia possibile intercettare i segnali in radio frequenza emessi dai circuiti ad alta tensione di un monitor CRT, così da ricostruire l’immagine visualizzata; avevamo inoltre approfondito su Punto Informatico alcune tecniche di esfiltrazione ambientale di dati effettuabili tramite i sensori di luminosità.
Nel merito della ricerca di FoxIT, si può scorgere però una novità: tecniche di intercettazione ambientale di questo tipo, condotte perlopiù mediante strumenti ad alto costo e a disposizione di pochi, possono essere ora riprodotte da chiunque, sfruttando sensori o, come in questo caso, le Software Defined Radio .
In tal senso il fattore economico è rilevante: il costo totale dei componenti hardware utilizzati si attesta a circa 200 euro .
Un ulteriore punto di rilievo è costituito proprio dall’oggetto della ricerca: il cracking di un algoritmo crittografico . Alcuni ricercatori dell’Università di Tel Aviv avevano già effettuato un attacco side-channel nei confronti di algoritmi a chiave asimmetrica, sfruttando le proprietà matematiche degli stessi.
In particolare erano state attaccate le implementazioni di El Gamal e RSA in GnuPG, distorcendo i segnali emessi in modo da poter individuare l’esponente utilizzato nella fase di cifratura; un approccio simile è stato utilizzato dagli stessi per attaccare anche l’algoritmo di firma digitale a chiave ellittica (ECDSA).
Per gli algoritmi a chiave simmetrica come AES , tuttavia, tali metodologie sono totalmente inefficienti a causa della struttura stessa dei cifrari; l’attacco prevede perciò la facoltà di osservare – ed eventualmente manipolare – il dato crittografato e il dato in chiaro. Il parametro utilizzato per l’estrazione della chiave di cifratura è il consumo energetico, dedotto dal confronto del campo elettromagnetico emesso durante la fase di criptazione.
L’attacco può essere riassunto in quattro fasi, eseguite per ciascun blocco di cifratura.
1. Campionamento del segnale
2. Normalizzazione e digitalizzazione del dato
3. Preprocessing
4. Analisi ed estrazione della chiave
Nella prima fase viene effettuato un campionamento analogico tramite l’utilizzo di una piccola antenna, costruita banalmente con un cavo disposto a cappio, al fine di misurare il campo elettromagnetico per poi filtrare e amplificare le sole frequenze interessate. Il cappio permette di catturare il campo elettromagnetico a distanze di poche centimetri, il segnale viene poi filtrato su un’ampiezza di banda di 10MHz e amplificato.
La misurazione viene quindi registrata con un dispositivo apposito, che digitalizza il dato catturato in modo che sia possibile elaborarlo con un computer. Possono essere utilizzati sia dispositivi costosi, caratterizzati da possibilità di catturare dati a velocità elevata, sia dispositivi SDR acquistabili online a poche decine di euro, con data rate più bassi.
L’esperimento effettuato ha visto l’utilizzo di un registratore SR-7100 per attaccare l’implementazione di AES 256 in OpenSSL, sulla CPU ARM Cortex-M3 (SOC SmartFusion 2). In OpenSSL vengono utilizzate le cosiddette T-Tables, ovvero delle tabelle di appoggio per l’ottimizzazione dell’algoritmo AES che permettono di applicare lo stesso tramite una serie di operazioni di lookup e XOR.
Nel caso del SOC SmartFusion2, il leakage sembra originare dal bus AHB (Advanced High-performance Bus) che collega la CPU ai chip di memoria.
Nel campionamento effettuato è stato possibile individuare vari pattern ricollegabili al consumo energetico istantaneo (strettamente legato alla mole e alla tipologia di dato che il processore sta trattando), raffiguranti le fasi di scambio di dati con l’esterno (input/output), gestione della chiave (key schedule), e i 14 rounds della fase di encryption.
Successivamente, il dato raccolto viene preprocessato dall’elaboratore dell’attaccante e analizzato, così da poter individuare il punto in cui il blocco di cifratura inizia e dividere la registrazione in blocchi singoli.
Infine, viene effettuata la correlazione tra le caratteristiche della registrazione e i byte della chiave; come facilmente intuibile, la qualità del risultato di questa operazione dipende fortemente dall’affidabilità del modello utilizzato, che deve essere adattato all’istanza.
In tal senso la metodologia utilizzata è di tipo empirico. Analizzando più volte l’esecuzione dell’algoritmo sia con dati in chiaro sia con dati cifrati, viene calcolata la distanza di Hamming degli stessi (ovvero la distanza degli stessi da una stringa composta da tutti zeri), costruendo un grafico i cui picchi identificano i momenti in cui vengono effettivamente gestiti i dati.
L’estrazione della chiave, quindi, può essere effettuata con una metodologia ibrida fondata sulla supposizione dei byte della chiave tra le 256 combinazioni possibili e la correlazione degli stessi con tale grafico.
Un normale attacco a forza bruta su AES-256 richiederebbe il calcolo di 2 256 valori possibili, ottenibile idealmente in un tempo di circa 3×10 51 anni con l’aiuto di 50 supercomputer in grado di calcolare 10 18 chiavi per secondo; grazie a questo attacco, invece, i tentativi sarebbero solo 8192 (256 tentativi per ciascun byte, in un codice di 32 byte), eseguibili in pochi secondi .
L’esperimento è stato ripetuto anche con un dispositivo SDR economico, dal costo di circa 20 euro, usando la medesima antenna costruita tramite il cavo con il cappio ad una distanza di poche decine di centimetri. All’aumentare della distanza si è registrata una significativa perdita di potenza; l’utilizzo di un’antenna PCB a 400MHz, più costosa ma ugualmente economica, unitamente ad altri accorgimenti ambientali, ha permesso di effettuare l’attacco alla distanza di 30cm nei confronti di una board Pynq .
Successivamente è stato costruito un ambiente ideale in camera anecoica (laboratorio caratterizzato da pareti in grado di minimizzare la riflessione dei segnali), utilizzando un’antenna biconica di tipo discone, in cui è stata attaccata con successo la board Pynq dalla distanza di un metro, campionando circa 2,4 milioni di misurazioni in 5 minuti.
Patrizio Tufarolo