Vulnerabilità nei chip Qualcomm che consente di estrarre chiavi private dallo spazio di archiviazione TrustZone

Ricercatori del Gruppo NCC scoperto Dettagli vulnerabilità (CVE-2018-11976) nei chip Qualcomm, che consente di determinare il contenuto delle chiavi di crittografia private situate in un'enclave isolata Qualcomm QSEE (Qualcomm Secure Execution Environment), basata sulla tecnologia ARM TrustZone. Il problema si manifesta in più SoC Snapdragon, che si è diffuso negli smartphone basati sulla piattaforma Android. Le soluzioni che risolvono il problema sono già disponibili incluso nell'aggiornamento Android di aprile e nuove versioni firmware per i chip Qualcomm. Qualcomm ha impiegato più di un anno per preparare una soluzione; le informazioni sulla vulnerabilità sono state inizialmente inviate a Qualcomm il 19 marzo 2018.

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 Archivio chiavi Android. Le perdite vengono determinate in base all'analisi dell'attività del blocco di previsione dei rami e alle variazioni del tempo di accesso ai dati in memoria. Nell'esperimento, i ricercatori hanno dimostrato con successo il recupero delle chiavi ECDSA a 224 e 256 bit dal key store isolato dall'hardware utilizzato nello smartphone Nexus 5X. Il recupero della chiave ha richiesto la generazione di circa 12mila firme digitali, operazione che ha richiesto più di 14 ore. Strumenti utilizzati per effettuare l'attacco Cachegrab.

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 (nonce). Se l'aggressore riesce a recuperare almeno alcuni bit con le informazioni su questo vettore, diventa possibile effettuare un attacco per recuperare in sequenza l'intera chiave privata.

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

Aggiungi un commento