Vulnerabilitate în TLS care permite determinarea cheii pentru conexiuni bazate pe criptarea DH

Dezvăluite informații despre noua vulnerabilități (CVE-2020-1968) în protocolul TLS, cunoscut sub numele de cod
Raccoon și care permite, în condiții rare, determinarea cheii primare preliminare (pre-master), care poate fi utilizată pentru decriptarea conexiunilor TLS, inclusiv HTTPS, în timpul interceptării traficului de tranzit (MITM). Se remarcă faptul că atacul este foarte complex pentru implementare practică și este mai mult de natură teoretică. Pentru a efectua atacul, este nevoie de o configurație specifică a serverului TLS și de capacitatea de a măsura cu precizie timpul de procesare a operațiunilor de către server.

Problema există direct în specificația TLS și afectează doar conexiunile care utilizează cifruri bazate pe protocolul de schimb de chei DH (Diffie-Hellman, TLS_DH_*). Problema nu se manifestă cu cifrurile ECDH, care rămân sigure. Sunt vulnerabile doar protocoalele TLS până la versiunea 1.2 inclusiv, iar protocolul TLS 1.3 nu este afectat de problemă. Vulnerabilitatea apare în implementările TLS care reutilizează cheia secretă DH în diferite conexiuni TLS (comportament întâlnit pe aproximativ 4.4% dintre serverele din clasamentul Alexa Top 1M).

În OpenSSL 1.0.2e și versiunile anterioare, cheia primară DH este reutilizată în toate conexiunile serverului, cu excepția cazului în care opțiunea SSL_OP_SINGLE_DH_USE este setată explicit. Începând cu OpenSSL 1.0.2f, cheia primară DH este reutilizată doar în cazul utilizării cifrurilor DH statice („DH-*”, de exemplu „DH-RSA-AES256-SHA”). În OpenSSL 1.1.1, vulnerabilitatea nu se manifestă, deoarece în acest ramură nu se folosește cheia primară DH și nu se aplică cifruri DH statice.

Când se folosește metoda de schimb de chei DH, ambele părți ale conexiunii generează chei private aleatorii (denumite cheie „a” și cheie „b”), pe baza cărora sunt calculate și trimise cheile publice (ga mod p și gb mod p). După primirea cheilor publice de către fiecare parte, se calculează cheia primară comună (gab mod p), care este folosită pentru a forma cheile de sesiune. Atacul Raccoon permite determinarea cheii primare prin analiza informațiilor din canale externe, având în vedere că în specificațiile TLS până la versiunea 1.2 se prevede eliminarea tuturor octeților inițiali nuli ai cheii primare înainte de calculele în care este implicată.

Inclusiv un cheie primară redusă este transmis la funcția de generare a cheii de sesiune, bazată pe funcții hash cu întârzieri diferite în procesarea datelor. Măsurarea exactă a timpului operațiunilor efectuate de server cu cheia permite atacatorului să determine sugestii (oracle), care oferă posibilitatea de a judeca dacă cheia primară începe cu zero sau nu. De exemplu, atacatorul poate intercepta cheia publică (ga) trimisă de client, o poate redirecționa către server și poate determina
dacă cheia primară rezultată începe cu zero.

Definirea unui singur byte al cheii nu oferă nimic de la sine, dar interceptând valoarea „ga” trimisă de client în timpul negocierii conexiunii, atacatorul poate forma un set de alte valori legate de „ga” și le poate trimite pe server în sesiuni separate de negociere a conexiunii. Formând și trimițând valori „gri*ga”, atacatorul poate, prin analiza modificărilor întârzierilor în răspunsurile serverului, determina valorile care duc la obținerea cheilor primare care încep cu zero. Stabilind aceste valori, atacatorul poate construi un set de ecuații pentru de a livra versiunea LTS a Qt doar sub licență comercială, compania Qt Company ia în considerare trecerea la un model de distribuție a Qt, în care toate versiunile din primele 12 luni vor fi disponibile doar pentru utilizatorii cu licențe comerciale. Despre această intenție, compania Qt Company a informat organizația KDE e.V., care coordonează dezvoltarea KDE. problema numerelor ascunse și calcula cheia primară inițială.

Vulnerabilitate în TLS care permite determinarea cheii pentru conexiuni bazate pe criptarea DH

În OpenSSL, vulnerabilitățile a fost clasificată au un nivel scăzut de severitate, iar soluția a constat în mutarea în versiunea 1.0.2w a cifrelor problematice „TLS_DH_*” în categoria de cifre dezactivate în mod implicit cu nivel de protecție insuficient („weak-ssl-ciphers”). Dezvoltatorii Mozilla au procedat similar, care dezactivat în biblioteca NSS, utilizată în Firefox, au dezactivat seturile de cifre DH și DHE. Începând cu Firefox 78, cifrele problematice sunt dezactivate. În Chrome, suportul pentru DH a fost întrerupt încă din 2016. Bibliotecile BearSSL, BoringSSL, Botan, Mbed TLS și s2n nu sunt afectate de problemă, deoarece nu suportă cifrurile DH sau variantele statice ale cifrurilor DH.

Sunt menționate separat probleme suplimentare (CVE-2020-5929) în stiva TLS a dispozitivelor F5 BIG-IP, ceea ce face atacul mai realist. În special, au fost identificate abateri în comportamentul dispozitivelor atunci când există un byte zero la începutul cheii primare, care pot fi utilizate în loc de măsurarea timpului exact al întârzierilor în timpul calculelor.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster