Vulnerabilità in TLS che consente la determinazione della chiave per connessioni basate su cifrature DH

Rivelati informazioni su un nuovo vulnerabilità (CVE-2020-1968) nel protocollo TLS, che ha ricevuto il nome in codice
Raccoon e che consente, in circostanze rare, di determinare la chiave primaria preliminare (pre-master), che può essere utilizzata per decifrare connessioni TLS, inclusi HTTPS, durante l'intercettazione del traffico transitivo (MITM). Si segnala che l'attacco è molto difficile da attuare nella pratica e ha perlopiù un carattere teorico. Per condurre l'attacco è necessaria una configurazione specifica del server TLS e la possibilità di misurare con estrema precisione il tempo di elaborazione delle operazioni dal server.

Il problema si trova direttamente nella specifica TLS e riguarda solo le connessioni che utilizzano cifre basate su protocollo di scambio chiavi DH (Diffie-Hellman, TLS_DH_*). Non si presenta alcun problema con le cifre ECDH, che rimangono sicure. Sono vulnerabili solo i protocolli TLS fino alla versione 1.2 inclusa, mentre il protocollo TLS 1.3 non è soggetto a questo problema. La vulnerabilità si manifesta nelle implementazioni TLS che riutilizzano la chiave segreta DH in diverse connessioni TLS (un comportamento simile si osserva su circa il 4,4% dei server nella classifica Alexa Top 1M).

In OpenSSL 1.0.2e e nelle versioni precedenti, la chiave primaria DH viene riutilizzata in tutte le connessioni server, a meno che non sia esplicitamente impostata l'opzione SSL_OP_SINGLE_DH_USE. A partire da OpenSSL 1.0.2f, la chiave primaria DH è riutilizzata solo quando si utilizzano cifre DH statiche («DH-*», come ad esempio «DH-RSA-AES256-SHA»). In OpenSSL 1.1.1, la vulnerabilità non si manifesta, poiché in questo ramo non viene utilizzata la chiave primaria DH e non vengono applicate cifre DH statiche.

Utilizzando il metodo di scambio chiavi DH, entrambe le parti della connessione generano chiavi segrete casuali (denominate chiave «a» e chiave «b»), sulla base delle quali vengono calcolate e inviate chiavi pubbliche (ga mod p e gb mod p). Dopo aver ricevuto le chiavi pubbliche, ogni parte calcola la chiave primaria condivisa (gab mod p), che viene utilizzata per formare le chiavi di sessione. L'attacco Raccoon consente di determinare la chiave primaria attraverso l'analisi delle informazioni tramite canali esterni, considerando che nelle specifiche TLS fino alla versione 1.2 era previsto di scartare tutti i byte iniziali nulli della chiave primaria prima dei calcoli che la coinvolgono.

Includendo, la chiave primaria ridotta viene passata alla funzione di generazione della chiave di sessione, basata su funzioni hash con ritardi differenti nel trattamento di dati diversi. La misurazione esatta del tempo delle operazioni eseguite dal server con la chiave consente all'attaccante di identificare indizi (oracle) che danno la possibilità di stabilire se la chiave primaria inizia da zero o meno. Ad esempio, un attaccante può intercettare la chiave pubblica inviata dal client (ga), rinviarla al server e determinare
se la chiave primaria risultante inizia da zero.

La definizione di un singolo byte della chiave in sé non fornisce molte informazioni, ma intercettando il valore "ga" passato durante la negoziazione della connessione dal client, l'attaccante può generare un insieme di altri valori associati a "ga" e inviarli al server in diverse sessioni di negoziazione della connessione. Formando e inviando valori "gri*ga", l'attaccante può tramite l'analisi delle variazioni nei ritardi della risposta del server identificare i valori che portano alla generazione di chiavi primarie che iniziano da zero. Identificando tali valori, l'attaccante può formulare un insieme di equazioni per risolvere il problema delle cifre nascoste e calcolare la chiave primaria originale.

Vulnerabilità in TLS che consente la determinazione della chiave per connessioni basate su cifrature DH

In OpenSSL, le vulnerabilità sono classificate con un basso livello di gravità, e la correzione si è ridotta a spostare nel rilascio 1.0.2w i cifrari problematici "TLS_DH_*" in una categoria di cifrari disabilitati per impostazione predefinita ritenuti insufficientemente sicuri ("weak-ssl-ciphers"). Gli sviluppatori di Mozilla hanno adottato la stessa misura, disabilitando nella libreria NSS usata in Firefox, i set di cifrari DH e DHE. A partire da Firefox 78, i cifrari problematici sono disabilitati. In Chrome, il supporto per DH è stato interrotto nel 2016. Le librerie BearSSL, BoringSSL, Botan, Mbed TLS e s2n non sono vulnerabili a questo problema, poiché non supportano cifrari DH o varianti statiche di cifrari DH. Vengono inoltre segnalati problemi aggiuntivi (

CVE-2020-5929) nello stack TLS dei dispositivi F5 BIG-IP, che rendono l'attacco più realistico. In particolare, sono state scoperte anomalie nel comportamento dei dispositivi quando è presente un byte nullo all'inizio della chiave primaria, che possono essere utilizzate al posto della misurazione del tempo esatto di ritardo nei calcoli.Continuous Integration come pratica, non Jenkins. Andrey Aleksandrov

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster