Un team di ricercatori di sei università statunitensi ha scoperto una vulnerabilità nei chip Apple M1, M2 e M3 che permette di estrarre le chiavi segrete dai Mac durante le operazioni crittografiche. L’attacco side-channel, denominato GoFetch, sfrutta una funzionalità della CPU chiamata DMP (Data Memory-dependent Prefetcher). Il bug non può essere risolto, ma solo mitigato con una drastica riduzione delle prestazioni.
Vulnerabilità nella microarchitettura
Il Data Memory-dependent Prefetcher (DMP) è un’ottimizzazione hardware che prevede gli indirizzi di memoria a cui è probabile che il codice in esecuzione acceda nel prossimo futuro. Caricando i contenuti nella cache della CPU prima che siano effettivamente necessari, DMP riduce la latenza tra la memoria principale e la CPU.
I prefetcher tradizionale caricano gli indirizzi dei dati, ignorando il valore dei dati. Il DMP carica nella cache anche il valore dei dati. L’attacco side-channel consente quindi di accedere a questi dati. GoFetch può estrarre le chiavi quando è in esecuzione sullo stesso cluster performance dell’app crittografica. Nel caso dei chip Apple M1, M2 e M3, un cluster è formato da quattro core performance o quattro core efficiency.
I ricercatori sono riusciti ad estrarre una chiave RSA a 2.048 bit in meno di un’ora, una chiave Diffie-Hellman a 2.048 bit in circa due ore, una chiave Kyber-512 in 54 minuti e una chiave Dilithium-2 in circa 10 ore.
Come per altre vulnerabilità side-channel, la soluzione definitiva richiede la modifica della microarchitettura. Potrebbero essere implementate alcune mitigazioni a livello di codice (applicazioni), come l’esecuzione delle app crittografiche sui quattro core efficiency (che non hanno DMP), ma in tutti i casi si ottiene un netto calo delle prestazioni.