Ricercatori della NCC Group vulnerabilità () nei chip Qualcomm, che consente di determinare il contenuto delle chiavi di crittografia riservate, collocate nell'enclave isolata Qualcomm QSEE (Qualcomm Secure Execution Environment), basata sulla tecnologia ARM TrustZone. Il problema si manifesta nei SoC Snapdragon, presenti in smartphone basati sulla piattaforma Android. Le correzioni che risolvono il problema sono già inclusi nell'aggiornamento di aprile di Android e nei nuovi rilasci di firmware per i chip Qualcomm. La preparazione della correzione da parte di Qualcomm ha richiesto oltre un anno: le informazioni sulla vulnerabilità erano state inviate a Qualcomm il 19 marzo 2018.
Ricordiamo che la tecnologia ARM TrustZone consente di creare ambienti protetti isolati a livello hardware, completamente separati dal sistema principale e in esecuzione su un processore virtuale dedicato utilizzando un sistema operativo specializzato separato. L'obiettivo principale di TrustZone è garantire l'esecuzione isolata dei gestori delle chiavi di crittografia, dell'autenticazione biometrica, dei dati di pagamento e di altre informazioni riservate. L'interazione con il sistema operativo principale avviene indirettamente attraverso un'interfaccia di dispatch. Le chiavi di crittografia riservate sono collocate all'interno di uno stock di chiavi isolato a livello hardware, il che, se implementato correttamente, consente di prevenire la loro fuoriuscita in caso di compromissione del sistema principale.
La vulnerabilità è legata a una mancanza nell'implementazione dell'algoritmo di gestione delle curve ellittiche, che portava a una fuoriuscita di informazioni sul processo di elaborazione dei dati. I ricercatori hanno sviluppato una tecnica di attacco tramite canali laterali, consentendo di ricostruire il contenuto delle chiavi riservate, collocate nell'isolato . Le fuoriuscite sono determinate analizzando l'attività del blocco di previsione delle transizioni e le variazioni nei tempi di accesso ai dati in memoria. Nel corso dell'esperimento, i ricercatori hanno dimostrato con successo il recupero delle chiavi ECDSA a 224 e 256 bit dallo stock di chiavi isolato a livello hardware, utilizzato nello smartphone Nexus 5X. Per recuperare la chiave, sono state necessarie circa 12.000 firme digitali, per le quali si sono impiegate oltre 14 ore. Per condurre l'attacco è stato utilizzato lo strumento .
. La causa principale del problema risiede nell'uso condiviso di componenti hardware e cache comuni per i calcoli sia in TrustZone sia nel sistema principale: l'isolamento è stato realizzato a livello di separazione logica, ma utilizzando blocchi di calcolo comuni, registrando le tracce dei calcoli e le informazioni sugli indirizzi di transizione nella cache del processore condiviso. Attraverso il metodo Prime+Probe, basato sulla valutazione delle variazioni nei tempi di accesso alle informazioni memorizzate nella cache, è possibile monitorare con un'alta precisione i flussi di dati e i segni di esecuzione del codice legato ai calcoli delle firme digitali in TrustZone, controllando la presenza di specifici schemi nella cache.
La maggior parte del tempo di generazione della firma digitale utilizzando chiavi ECDSA nei chip Qualcomm è spesa nell'esecuzione di operazioni di moltiplicazione in ciclo, utilizzando un vettore di inizializzazione invariato per ogni firma (). Se un attaccante sarà in grado di recuperare almeno alcuni bit di informazioni su questo vettore, si apre la possibilità di un attacco per il recupero sequenziale di tutta la chiave riservata.
Nel caso di Qualcomm sono stati individuati due punti di fuoriuscita di tali informazioni nell'algoritmo di moltiplicazione: durante le operazioni di ricerca nelle tabelle e nel codice di estrazione condizionale dei dati basata sul valore dell'ultimo bit nel vettore "nonce". Nonostante nel codice di Qualcomm siano presenti misure per contrastare le fuoriuscite di informazioni tramite canali laterali, il metodo di attacco sviluppato consente di eludere queste misure e di determinare alcuni bit del valore del "nonce", sufficienti per il recupero delle chiavi ECDSA a 256 bit.
Fonte: opennet.ru
