informazioni su un nuovo (CVE-2020-1968) nel protocollo TLS, che ha ricevuto il nome in codice
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 e calcolare la chiave primaria originale.

In OpenSSL, le vulnerabilità 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 Vengono inoltre segnalati problemi aggiuntivi (
CVE-2020-5929Continuous Integration come pratica, non Jenkins. Andrey Aleksandrov
Fonte: opennet.ru
