Vulnerabilità in TLS che consente la determinazione delle chiavi per le connessioni basate su cifre DH

divulgato informazioni sul nuovo vulnerabilità (CVE-2020-1968) nel protocollo TLS, nome in codice
Procione e consentendo, in rare circostanze, di determinare una chiave primaria preliminare (pre-master), che può essere utilizzata per decrittografare le connessioni TLS, incluso HTTPS, durante l'intercettazione del traffico di transito (MITM). Va notato che l'attacco è molto difficile da attuare nella pratica ed è più di natura teorica. Per effettuare un attacco sono necessarie una configurazione specifica del server TLS e la capacità di misurare con estrema precisione il tempo di elaborazione del server.

Il problema è presente direttamente nella specifica TLS e riguarda solo le connessioni che utilizzano cifrari basati sul protocollo di scambio di chiavi DH (Diffie-Hellman, TLS_DH_*"). Con le cifre ECDH il problema non si verifica e rimangono sicure. Solo i protocolli TLS fino alla versione 1.2 sono vulnerabili; TLS 1.3 non è interessato dal problema. La vulnerabilità si verifica nelle implementazioni TLS che riutilizzano la chiave segreta DH su diverse connessioni TLS (questo comportamento si verifica su circa il 4.4% dei server Alexa Top 1M).

In OpenSSL 1.0.2e e versioni precedenti, la chiave primaria DH viene riutilizzata in tutte le connessioni al server a meno che l'opzione SSL_OP_SINGLE_DH_USE non sia impostata esplicitamente. A partire da OpenSSL 1.0.2f, la chiave primaria DH viene riutilizzata solo quando si utilizzano cifrari DH statici ("DH-*", ad esempio "DH-RSA-AES256-SHA"). La vulnerabilità non appare in OpenSSL 1.1.1, poiché questo ramo non utilizza una chiave primaria DH e non utilizza crittografie DH statiche.

Quando si utilizza il metodo di scambio di chiavi DH, entrambi i lati della connessione generano chiavi private casuali (di seguito chiave “a” e chiave “b”), in base alle quali vengono calcolate e inviate le chiavi pubbliche (ga mod p e gb mod p). Dopo che ciascuna parte ha ricevuto le chiavi pubbliche, viene calcolata una chiave primaria comune (gab mod p), che viene utilizzata per generare chiavi di sessione. L'attacco Raccoon consente di determinare la chiave primaria attraverso l'analisi del canale laterale, in base al fatto che le specifiche TLS fino alla versione 1.2 richiedono che tutti i byte nulli iniziali della chiave primaria vengano scartati prima dei calcoli che la coinvolgono.

L'inclusione della chiave primaria troncata viene passata alla funzione di generazione della chiave di sessione, che si basa su funzioni hash con ritardi diversi durante l'elaborazione di dati diversi. Misurare accuratamente i tempi delle operazioni chiave eseguite dal server consente all'aggressore di determinare indizi (oracolo) che consentono di giudicare se la chiave primaria inizia da zero o meno. Ad esempio, un utente malintenzionato potrebbe intercettare la chiave pubblica (ga) inviata dal client, ritrasmetterla al server e determinare
se la chiave primaria risultante inizia da zero.

Di per sé, definire un byte della chiave non dà nulla, ma intercettando il valore “ga” trasmesso dal client durante la negoziazione della connessione, l'attaccante può generare un insieme di altri valori associati a “ga” e inviarli a il server in sessioni separate di negoziazione della connessione. Generando e inviando valori “gri*ga”, un utente malintenzionato può, analizzando le variazioni dei ritardi nella risposta del server, determinare i valori che portano a ricevere chiavi primarie a partire da zero. Dopo aver determinato tali valori, l'aggressore può creare una serie di equazioni per soluzioni problemi con i numeri nascosti e calcolare la chiave primaria originale.

Vulnerabilità in TLS che consente la determinazione delle chiavi per le connessioni basate su cifre DH

Vulnerabilità OpenSSL assegnato basso livello di pericolo e la correzione si è ridotta allo spostamento dei codici problematici "TLS_DH_*" nella versione 1.0.2w nella categoria dei codici con un livello di protezione insufficiente ("crittografie deboli-ssl"), che è disabilitato per impostazione predefinita . Gli sviluppatori di Mozilla hanno fatto la stessa cosa, spento nella libreria NSS utilizzata in Firefox, le suite di crittografia DH e DHE. A partire da Firefox 78, le crittografie problematiche sono disabilitate. Il supporto Chrome per DH è stato interrotto nel 2016. Le librerie BearSSL, BoringSSL, Botan, Mbed TLS e s2n non sono interessate dal problema perché non supportano le crittografie DH o le varianti statiche delle crittografie DH.

Ulteriori problemi sono indicati separatamente (CVE-2020-5929) nello stack TLS dei dispositivi F5 BIG-IP, rendendo l'attacco più realistico. In particolare sono state individuate deviazioni nel comportamento dei dispositivi in ​​presenza di un byte zero all'inizio della chiave primaria, che può essere utilizzato al posto della misurazione dell'esatta latenza dei calcoli.

Fonte: opennet.ru

Aggiungi un commento