Attacchi Side-Channel

Indice dei contenuti

    Un attacco side-channel (attacco per canale laterale) sfrutta informazioni ottenute dall’implementazione fisica di un sistema crittografico piuttosto che debolezze dell’algoritmo matematico sottostante. Anche un algoritmo crittograficamente perfetto come AES può essere compromesso se la sua implementazione hardware o software lascia trapelare informazioni sulle chiavi attraverso grandezze fisiche misurabili: il tempo di esecuzione, il consumo di corrente, le emissioni elettromagnetiche, le variazioni di temperatura, persino il suono prodotto dai componenti elettronici.

    La distinzione fondamentale rispetto alla crittoanalisi classica è che gli attacchi side-channel non richiedono di rompere la matematica dell’algoritmo — richiedono di osservare la macchina che lo esegue.

    Timing Attack

    Il timing attack sfrutta il fatto che molte operazioni crittografiche hanno tempi di esecuzione che variano in funzione dei dati elaborati — inclusa la chiave segreta. Se un’implementazione esegue un confronto byte per byte e interrompe al primo mismatch (come strcmp in C), il tempo di risposta rivela quanti byte iniziali erano corretti — permettendo di indovinare la chiave un byte alla volta.

    Esempio classico: RSA senza blinding. La moltiplicazione modulare in RSA esegue il quadrato e/o la moltiplicazione in funzione dei bit della chiave privata. Misurando con sufficiente precisione i tempi di risposta per migliaia di query, Kocher (1996) dimostrò che è possibile estrarre la chiave privata RSA.

    Timing attack remoto: anche su connessioni di rete, le differenze di timing (nell’ordine dei microsecondi) sono statisticamente misurabili con abbastanza campioni. Lucky Thirteen (2013) ha sfruttato differenze di timing nella verifica del MAC di TLS CBC per attacchi di tipo padding oracle.

    Contromisura: implementazioni constant-time — algoritmi che eseguono esattamente le stesse operazioni indipendentemente dal valore dei dati, senza branch condizionali dipendenti dal segreto. Le librerie crittografiche serie (libsodium, BoringSSL) implementano operazioni constant-time per tutte le primitive sensibili.

    Power Analysis

    Il DPA (Differential Power Analysis), introdotto da Kocher, Jaffe e Jun nel 1999, misura il consumo di corrente di un chip durante operazioni crittografiche e usa tecniche statistiche per estrarre la chiave. Il consumo di corrente dei circuiti digitali CMOS varia in funzione dei bit elaborati — un bit che cambia da 0 a 1 consuma più energia di uno che rimane a 0.

    Raccogliendo centinaia di migliaia di tracce di consumo energetico durante l’esecuzione di AES con testi in chiaro noti, il DPA permette di estrarre la chiave AES da smart card, token crittografici e microcontroller embedded. È una minaccia concreta per dispositivi fisici come carte di credito, token di autenticazione e ECU automotive.

    Contromisure: mascheramento (masking) — operare non sui dati reali ma su dati XOR-ati con un valore casuale, rendendo le correlazioni statistiche infondate; hiding — randomizzare il consumo con circuiti di carico aggiuntivi o inserire operazioni dummy.

    Attacco Elettromagnetico

    L’EM attack è analogo al DPA ma usa sonde elettromagnetiche posizionate vicino al chip per misurare le emissioni EM invece della corrente. Permette analisi localizzate (specifici moduli del chip) e può essere condotto senza contatto fisico diretto con il dispositivo. TEMPEST è il nome del programma NATO/NSA per la protezione dalle emanazioni EM — monitor CRT, cavi di rete non schermati e alimentatori possono irradiare informazioni sulle operazioni in corso.

    Spectre e Meltdown

    Spectre (CVE-2017-5753/5715) e Meltdown (CVE-2017-5754), pubblicati nel gennaio 2018, sono side-channel attack sull’esecuzione speculativa dei processori moderni — un meccanismo di ottimizzazione hardware presente in quasi tutti i CPU degli ultimi 20 anni.

    Meltdown: un processo userspace sfrutta l’esecuzione speculativa per leggere la memoria del kernel (mappata nello spazio di indirizzi del processo per efficienza) prima che il controllo dei permessi la blocchi. I dati vengono esfiltrati via cache side-channel (Flush+Reload): si misura il tempo di accesso a specifici indirizzi di cache per inferire quali dati speculativi erano stati caricati. Risolto con KPTI (Kernel Page Table Isolation) — un costo di performance del 5–30% per certi workload.

    Spectre: più fondamentale e difficile da mitigare. Induce la CPU a eseguire speculativamente codice di un altro processo usando previsione di branch errata, poi misura i side-effect nella cache per leggere la memoria di quel processo. Le mitigazioni (Retpoline, IBRS, STIBP) hanno avuto impatto significativo sulle performance dei datacenter.

    Acoustic Cryptanalysis

    Genkin, Shamir e Tromer (2014) hanno dimostrato di poter estrarre chiavi RSA-4096 da un laptop registrando il suono prodotto dai condensatori e dalle bobine dell’alimentatore durante operazioni di decifratura GnuPG — usando un microfono a 4 metri di distanza o persino un telefono cellulare posizionato vicino al laptop. Il suono è modulato dal consumo energetico del processore che a sua volta dipende dal valore dei bit della chiave.

    Ultimo aggiornamento: