Ricercatori del Gruppo NCC
Ricordiamo che la tecnologia ARM TrustZone consente di creare ambienti protetti isolati dall'hardware, completamente separati dal sistema principale ed eseguiti su un processore virtuale separato utilizzando un sistema operativo specializzato separato. Lo scopo principale di TrustZone è fornire l'esecuzione isolata di processori per chiavi di crittografia, autenticazione biometrica, dati di pagamento e altre informazioni riservate. L'interazione con il sistema operativo principale viene effettuata indirettamente tramite l'interfaccia di invio. Le chiavi di crittografia private vengono archiviate all'interno di un archivio di chiavi isolato dall'hardware che, se implementato correttamente, può prevenirne la fuga se il sistema sottostante viene compromesso.
La vulnerabilità è dovuta a un difetto nell'implementazione dell'algoritmo di elaborazione della curva ellittica, che ha portato alla fuga di informazioni sull'avanzamento dell'elaborazione dei dati. I ricercatori hanno sviluppato una tecnica di attacco a canale laterale che consente di utilizzare le perdite indirette esistenti per recuperare il contenuto delle chiavi private situate in un ambiente isolato dall'hardware
La causa principale del problema è la condivisione di componenti hardware comuni e cache per i calcoli nella TrustZone e nel sistema principale: l'isolamento viene eseguito a livello di separazione logica, ma utilizzando unità di calcolo comuni e con tracce di calcoli e informazioni sul ramo indirizzi depositati nella cache comune del processore. Utilizzando il metodo Prime+Probe, basato sulla valutazione delle variazioni dei tempi di accesso alle informazioni memorizzate nella cache, è possibile, verificando la presenza di determinati pattern nella cache, monitorare i flussi di dati e i segni di esecuzione del codice associati ai calcoli delle firme digitali in TrustZone con una precisione abbastanza elevata.
La maggior parte del tempo necessario per generare una firma digitale utilizzando le chiavi ECDSA nei chip Qualcomm viene impiegato eseguendo operazioni di moltiplicazione in un ciclo utilizzando un vettore di inizializzazione che rimane invariato per ciascuna firma (
Nel caso di Qualcomm, nell'algoritmo di moltiplicazione sono stati identificati due luoghi in cui tali informazioni sono trapelate: durante l'esecuzione di operazioni di ricerca nelle tabelle e nel codice di recupero condizionale dei dati in base al valore dell'ultimo bit nel vettore “nonce”. Nonostante il codice Qualcomm contenga misure per contrastare le fughe di informazioni attraverso canali di terze parti, il metodo di attacco sviluppato consente di aggirare queste misure e determinare diversi bit del valore "nonce", che sono sufficienti per recuperare le chiavi ECDSA a 256 bit.
Fonte: opennet.ru