← Ultimi articoli
💻 computer science

Recovering a Full AES-128 Key Across Tenant Boundaries via DDR4 Row-Buffer Timing on Cloud FPGAs

Questo articolo dimostra che un co-tenant completamente privo di privilegi su un FPGA cloud condiviso può recuperare una chiave master AES-128 completa da una vittima sfruttando i canali laterali temporali del row-buffer DDR4, superando il limite "un slot per bank" attraverso la mappatura dei bank ottenuta tramite reverse engineering e l'aggregazione statistica su più cifrature.

Autori originali: Vineet Chadalavada, Fareena Saqib

Pubblicato 2026-09-07
📖 7 min di lettura🧠 Approfondimento

Autori originali: Vineet Chadalavada, Fareena Saqib

Articolo originale sotto licenza CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Nel mondo digitale moderno, spesso immaginiamo che i nostri dati privati siano custoditi in una cassaforte sicura, separati dagli sguardi indiscreti altrui da strati di software e pareti digitali. Questa è la promessa del cloud computing: che diversi utenti possano condividere lo stesso hardware potente senza mai vedere il lavoro l'uno dell'altro. Tuttavia, la realtà fisica di come i computer memorizzano le informazioni racconta una storia diversa. Quando un computer esegue un calcolo, spesso deve cercare valori in una lista numerosa, proprio come si controlla un dizionario per una definizione. Per farlo rapidamente, il computer apre una sezione specifica della sua memoria, nota come buffer di riga (row buffer), per tenere pronta quella lista. Se il computer ha bisogno di cercare un elemento diverso nella stessa sezione, deve chiudere la lista corrente e aprirne una nuova, un processo che richiede una frazione di secondo infinitesimale in più. Questa differenza di tempo, sebbene minuscola, lascia una traccia. Proprio come un'impronta nel terreno bagnato rivela dove qualcuno è passato, il tempo impiegato per accedere alla memoria può rivelare quali dati stavano venendo utilizzati. Per decenni, gli esperti di sicurezza hanno saputo che questi piccoli indizi temporali potevano essere usati per rubare segreti da un singolo computer, ma rimaneva il dubbio se questo trucco potesse funzionare attraverso i confini invisibili che separano i diversi utenti su un server cloud condiviso.

Ricercatori dell'Università della Carolina del Nord a Charlotte hanno ora dimostrato che è effettivamente possibile rubare una chiave segreta completa a un vicino su un server cloud condiviso, usando nient'altro che la temporizzazione dell'accesso alla memoria. Si sono concentrati su un tipo specifico di hardware cloud chiamato Field-Programmable Gate Array, o FPGA, che è un chip riconfigurabile utilizzato per velocizzare compiti complessi. In una tipica configurazione cloud, più utenti vengono collocati sullo stesso modulo fisico per risparmiare denaro. Sebbene il software garantisca che l'Utente A non possa leggere direttamente i file dell'Utente B, entrambi gli utenti condividono gli stessi chip di memoria fisici al di fuori del processore principale. I ricercatori hanno dimostrato che un utente privo di privilegi speciali, senza accesso ai dati della vittima e senza conoscenza della chiave segreta, potrebbe comunque recuperare l'intera chiave di cifratura utilizzata da un vicino. Ci sono riusciti misurando attentamente quanto tempo il proprio computer impiegava per leggere dalla memoria mentre il vicino stava contemporaneamente eseguendo una cifratura.

La sfida era molto più difficile del semplice ascoltare l'attività del vicino. In una cache standard di un computer, ogni singolo dato lascia la propria impronta unica, permettendo a un attaccante di vedere tutti i sedici componenti di una chiave segreta contemporaneamente. Tuttavia, i chip di memoria utilizzati in questi server cloud si comportano diversamente. Presentano un limite strutturale per cui ogni sezione di memoria può ricordare solo l'ultimo elemento che ha aperto. Quando una vittima cifra un messaggio, cerca sedici valori diversi in una riga. Poiché la sezione di memoria può contenere un solo elemento aperto alla volta, i primi quindici lookup vengono immediatamente sovrascritti dal sedicesimo. Nel momento in cui l'attaccante prova ad ascoltare, l'evidenza dei primi quindici parti del segreto è svanita, lasciando visibile solo l'ultimo pezzo. Ciò ha creato una barriera che ha reso inutili le tecniche di hacking standard, poiché l'attaccante poteva vedere solo un byte dei sedici byte della chiave, il che non è sufficiente per violare la cifratura.

Per superare questo ostacolo, i ricercatori hanno ideato una strategia ingegnosa che sfruttava il fatto che il chip di memoria contiene sedici sezioni indipendenti, ciascuna con il proprio buffer di memoria. Invece di cercare di ascoltare tutte e sedici parti in una singola sezione, hanno riorganizzato i dati segreti in modo che ciascuna delle sedici parti della chiave risiedesse in una sezione di memoria diversa. In questo modo, quando la vittima cercava tutti i sedici valori, apriva tutte le sedici sezioni simultaneamente, e nessuna di esse sovrascriveva le altre. L'attaccante ha poi costruito uno strumento personalizzato in grado di controllare rapidamente ciascuna delle sedici sezioni per vedere quale fosse ancora aperta. Ripetendo questo processo con molti diversi messaggi di test, l'attaccante poteva raccogliere abbastanza indizi per ricostruire l'intera chiave segreta. I ricercatori hanno testato questo metodo su una scheda Xilinx Alveo U250, un comune pezzo di hardware utilizzato nei data center. Hanno scoperto che, eseguendo il proprio programma accanto a quello di cifratura di una vittima, potevano recuperare l'intera chiave master in tutte le diciannove chiavi testate, anche quando la vittima stava eseguendo un processo di cifratura completo a dieci round.

Il successo di questo attacco si è basato su due scoperte principali. Primo, i ricercatori hanno dovuto capire esattamente come il controller di memoria decidesse quale sezione di memoria utilizzare per un determinato dato. Questa mappatura non è ovvia ed è diversa per ogni tipo di hardware. Il team ha effettuato l'ingegneria inversa di questa mappa misurando il tempo necessario per accedere a diversi indirizzi, mappando efficacemente il layout della memoria dall'esterno verso l'interno. Secondo, dovevano dimostrare che il segnale rilevato fosse reale e non semplice rumore casuale. La differenza di tempo tra un accesso alla memoria riuscito e uno fallito era incredibilmente piccola, durando circa quattro cicli di clock, ovvero circa trentadue nanosecondi. Nonostante questo segnale minuscolo, i ricercatori hanno dimostrato che, mediando i risultati su molti tentativi, il pattern diventava chiaro. Nel loro test più realistico, in cui l'attaccante e la vittima eseguivano programmi completamente separati senza alcuna coordinazione, l'attaccante ha recuperato con successo la chiave completa da una vittima che stava cifrando dati con un algoritmo di cifratura standard verificato.

Questo lavoro non significa che tutto il cloud computing sia attualmente insicuro, ma rivela una vulnerabilità specifica nel modo in cui l'hardware condiviso viene gestito. I ricercatori hanno osservato che la maggior parte delle istanze cloud commerciali odierne sono dedicate a un singolo utente, il che previene questo tipo di attacco. Tuttavia, man mano che l'industria si muove verso un hardware condiviso più efficiente per abbassare i costi, il rischio aumenta. Lo studio evidenzia che l'isolamento logico, che mantiene separato il software, non è sufficiente a proteggere le risorse fisiche. I chip di memoria stessi conservano una cronologia di ciò che è stato accessato, e quella cronologia può essere letta da un vicino. I ricercatori suggeriscono diversi modi per risolvere il problema, come mantenere i dati segreti nella memoria veloce e privata all'interno del chip piuttosto che nella memoria esterna condivisa, o randomizzare la posizione in cui i dati vengono memorizzati affinché gli indizi temporali diventino privi di significato. Propongono inoltre che i fornitori di servizi cloud possano monitorare i pattern di accesso alla memoria per rilevare quando un utente sta cercando di spiare un altro.

Le implicazioni di questa ricerca vanno oltre il semplice tipo di cifratura. Il metodo utilizzato per rubare la chiave si basa sul modo fondamentale in cui funziona la memoria, il che significa che potrebbe potenzialmente essere applicato ad altri algoritmi di protezione dei segreti che utilizzano tabelle di ricerca simili. I ricercatori hanno sottolineato che le loro scoperte si basano su esperimenti reali sull'hardware, non su simulazioni informatiche, il che conferisce ai risultati un alto grado di affidabilità. Hanno testato l'attacco contro cinquanta chiavi casuali diverse e diciannove scenari di cifratura differenti, e ha funzionato ogni singola volta. L'intero processo di recupero della chiave richiedeva solo pochi secondi una volta completata la configurazione iniziale, rendendolo una minaccia pratica per qualsiasi futuro ambiente cloud che permetta a più utenti di condividere la stessa memoria fisica.

In definitiva, questo studio funge da avvertimento che il mondo fisico dell'hardware informatico ha le proprie regole che il software non sempre può scavalcare. Proprio come due persone che condividono una stanza possono sentire i passi dell'altra anche se non possono vederla, due utenti che condividono un server cloud potrebbero essere in grado di ascoltare la temporizzazione degli accessi alla memoria dell'altro. I ricercatori hanno dimostrato che con abbastanza pazienza e gli strumenti giusti, questi deboli echi possono essere amplificati in un'immagine nitida di un segreto. Mentre i fornitori di servizi cloud continuano a inserire più utenti in meno chip per migliorare l'efficienza, comprendere questi canali laterali fisici sarà essenziale per progettare sistemi che siano veramente sicuri. La soluzione non risiede nel costruire muri digitali più alti, ma nel comprendere il comportamento fisico della memoria sottostante e garantire che la cronologia delle azioni di un utente non possa essere letta da un altro.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →