I ricercatori della NCC Group della vulnerabilità () nei chip Qualcomm che consente di determinare il contenuto delle chiavi di crittografia private archiviati in un enclave isolata Qualcomm QSEE (Qualcomm Secure Execution Environment), basato sulla tecnologia ARM TrustZone. Il problema si manifesta nella SoC Snapdragon diffusi negli smartphone basati su piattaforma Android. Le correzioni per risolvere il problema sono già incluse nell'aggiornamento di aprile di Android e nelle nuove versioni dei firmware per i chip Qualcomm. Ci è voluto più di un anno per preparare la correzione; inizialmente, le informazioni sulla vulnerabilità erano state inviate a Qualcomm già 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 con un sistema operativo specializzato separato. L'obiettivo principale del 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 in modo indiretto attraverso un'interfaccia di dispatch. Le chiavi privati di crittografia sono collocate all'interno di un archivio chiavi isolato a livello hardware, il che, se implementato correttamente, consente di evitare fughe di dati in caso di compromissione del sistema principale.
La vulnerabilità è legata a un difetto nell'implementazione dell'algoritmo di elaborazione delle curve ellittiche, che portava a fughe di informazioni sul progresso del trattamento dei dati. I ricercatori hanno sviluppato una tecnica di attacco tramite canali laterali, in grado di ripristinare il contenuto delle chiavi private, basandosi sulle fughe indirette esistenti, collocate in un ambiente isolato a livello hardware . Le perdite vengono determinate analizzando l'attività del blocco di previsione dei passaggi e variando i tempi di accesso ai dati nella memoria. Durante l'esperimento, i ricercatori hanno dimostrato con successo il recupero delle chiavi ECDSA a 224 e 256 bit da un sistema di archiviazione delle chiavi isolato hardware utilizzato nello smartphone Nexus 5X. Per il recupero della chiave sono state necessarie circa 12.000 firme digitali, per un totale di oltre 14 ore. È stato utilizzato un toolkit per condurre l'attacco. .
La causa principale del problema è la condivisione di componenti hardware comuni e di cache per i calcoli in TrustZone e nel sistema principale: l'isolamento è stato effettuato a livello di partizione logica, ma utilizzando blocchi di calcolo condivisi e con la registrazione di tracce di calcolo e informazioni sugli indirizzi di passaggio nella cache del processore comune. Attraverso il metodo Prime+Probe, che si basa sulla valutazione delle variazioni nei tempi di accesso alle informazioni in cache, è possibile monitorare con sufficiente precisione i flussi di dati e i segni di esecuzione del codice associato ai calcoli delle firme digitali in TrustZone, verificando la presenza di determinati modelli nella cache.
La maggior parte del tempo necessario per generare una firma digitale utilizzando chiavi ECDSA nei chip Qualcomm è dedicata all'esecuzione di operazioni di moltiplicazione in ciclo con un vettore di inizializzazione fisso per ogni firma (). Se un attaccante riesce a recuperare anche solo pochi bit di informazioni su questo vettore, si apre la possibilità di eseguire un attacco graduale per recuperare l'intera chiave privata.
Nel caso di Qualcomm, sono stati identificati due punti di perdita di informazioni simili nel algoritmo di moltiplicazione: durante l'esecuzione delle operazioni di ricerca nelle tabelle e nel codice di estrazione condizionale dei dati basato sul valore dell'ultimo bit del vettore "nonce". Nonostante la presenza nel codice di Qualcomm di misure per contrastare le perdite di informazioni tramite canali esterni, il metodo di attacco sviluppato riesce a eludere queste misure e a determinare alcuni bit del valore del "nonce", sufficienti per recuperare chiavi ECDSA a 256 bit.
Fonte: opennet.ru
