U prublema hè prisente direttamente in a specificazione TLS è affetta solu e cunnessione chì utilizanu cifru basati nantu à u protocolu di scambiu di chjave DH (Diffie-Hellman, TLS_DH_*"). Cù cifri ECDH u prublema ùn si trova è fermanu sicuri. Solu i protokolli TLS finu à a versione 1.2 sò vulnerabili; TLS 1.3 ùn hè micca affettatu da u prublema. A vulnerabilità si trova in implementazioni TLS chì riutilizanu a chjave secreta DH in diverse cunnessioni TLS (questu cumpurtamentu si trova in circa 4.4% di i servitori Alexa Top 1M).
In OpenSSL 1.0.2e è versioni precedenti, a chjave primaria DH hè riutilizata in tutte e cunnessione di u servitore, salvu chì l'opzione SSL_OP_SINGLE_DH_USE hè esplicitamente impostata. Da l'OpenSSL 1.0.2f, a chjave primaria DH hè riutilizata solu quandu si usanu cifru statici DH ("DH-*", per esempiu "DH-RSA-AES256-SHA"). A vulnerabilità ùn appare micca in OpenSSL 1.1.1, postu chì sta filiera ùn usa micca una chjave primaria DH è ùn usa micca cifru statici DH.
Quandu si usa u metudu di scambiu di chjave DH, i dui lati di a cunnessione generanu chjavi privati aleatorii (in seguitu chjave "a" è chjave "b"), basatu nantu à quale e chjave pubbliche (ga mod p è gb mod p) sò calculate è mandate. Dopu chì ogni partitu riceve i chjavi publichi, una chjave primaria cumuni (gab mod p) hè calculata, chì hè utilizata per generà chjavi di sessione. L'attaccu Raccoon permette di determinà a chjave primaria per l'analisi di u canali laterali, basatu annantu à u fattu chì e specificazioni TLS finu à a versione 1.2 richiedenu chì tutti i bytes nulli principali di a chjave primaria sò scartati prima di i calculi chì implicanu.
Includendu a chjave primaria truncata hè passata à a funzione di generazione di chjave di sessione, chì hè basatu annantu à e funzioni di hash cù diversi ritardi in u processu di dati diffirenti. A misurazione precisa di u timing di l'operazioni chjave realizate da u servitore permette à l'attaccante di determinà indizi (oraculu) chì permettenu di ghjudicà se a chjave primaria parte da zero o micca. Per esempiu, un attaccante puderia intercepte a chjave publica (ga) mandata da u cliente, ritrasmette à u servitore è determina
se a chjave primaria resultanti principia da zero.
Per sè stessu, a definizione di un byte di a chjave ùn dà nunda, ma interceptendu u valore "ga" trasmessu da u cliente durante a negoziazione di cunnessione, l'attaccu pò generà un inseme di altri valori assuciati cù "ga" è mandà à u servitore in sessioni di negoziazione di cunnessione separati. Generendu è mandendu valori "gri * ga", un attaccu pò, analizendu cambiamenti in i ritardi in a risposta di u servitore, determinà i valori chì portanu à riceve e chjave primarie partendu da zero. Dopu avè determinatu tali valori, l'attaccu pò creà un inseme di equazioni per
Vulnerabilità OpenSSL
I prublemi supplementari sò nutati separatamente (
Source: opennet.ru