Ranjivost u TLS-u omogućava određivanje ključa za veze zasnovane na DH šiframa

Otkriveno informacije o novom ranjivosti (CVE-2020-1968) u TLS protokolu, kodnog naziva
Rakun i omogućavanje, u rijetkim okolnostima, određivanje preliminarnog primarnog ključa (pre-master), koji se može koristiti za dešifriranje TLS veza, uključujući HTTPS, prilikom presretanja tranzitnog saobraćaja (MITM). Napominje se da je napad veoma težak za praktičnu implementaciju i da je više teorijske prirode. Za izvođenje napada potrebna je određena konfiguracija TLS servera i mogućnost vrlo preciznog mjerenja vremena obrade servera.

Problem je prisutan direktno u TLS specifikaciji i utječe samo na veze koje koriste šifre zasnovane na protokolu razmjene DH ključeva (Diffie-Hellman, TLS_DH_*"). Sa ECDH šiframa problem se ne pojavljuje i one ostaju sigurne. Ranjivi su samo TLS protokoli do verzije 1.2; na TLS 1.3 problem ne utiče. Ranjivost se javlja u TLS implementacijama koje ponovo koriste DH tajni ključ u različitim TLS konekcijama (ovo ponašanje se javlja na približno 4.4% Alexa Top 1M servera).

U OpenSSL 1.0.2e i ranijim izdanjima, DH primarni ključ se ponovo koristi u svim serverskim vezama osim ako opcija SSL_OP_SINGLE_DH_USE nije eksplicitno postavljena. Od OpenSSL 1.0.2f, DH primarni ključ se ponovo koristi samo kada se koriste statičke DH šifre ("DH-*", npr. "DH-RSA-AES256-SHA"). Ranjivost se ne pojavljuje u OpenSSL 1.1.1, jer ova grana ne koristi primarni ključ DH i ne koristi statičke DH šifre.

Kada se koristi metoda razmjene DH ključeva, obje strane veze generiraju nasumične privatne ključeve (u daljem tekstu ključ „a“ i ključ „b“), na osnovu kojih se izračunavaju i šalju javni ključevi (ga mod p i gb mod p). Nakon što svaka strana primi javne ključeve, izračunava se zajednički primarni ključ (gab mod p), koji se koristi za generiranje ključeva sesije. Raccoon napad vam omogućava da odredite primarni ključ kroz analizu bočnog kanala, na osnovu činjenice da TLS specifikacije do verzije 1.2 zahtijevaju da se svi vodeći nul-bajtovi primarnog ključa odbace prije izračunavanja koja ga uključuju.

Uključivanje skraćenog primarnog ključa prosljeđuje se funkciji generiranja ključa sesije, koja se temelji na hash funkcijama s različitim kašnjenjima prilikom obrade različitih podataka. Precizno mjerenje vremena ključnih operacija koje izvodi server omogućava napadaču da odredi tragove (proročanstvo) koji omogućavaju procjenu da li primarni ključ počinje od nule ili ne. Na primjer, napadač bi mogao presresti javni ključ (ga) koji je poslao klijent, ponovo ga prenijeti na server i odrediti
da li rezultirajući primarni ključ počinje od nule.

Samo po sebi, definiranje jednog bajta ključa ne daje ništa, ali presretnuvši vrijednost “ga” koju prenosi klijent tokom pregovora o vezi, napadač može generirati skup drugih vrijednosti povezanih sa “ga” i poslati ih na server u odvojenim sesijama pregovaranja o povezivanju. Generiranjem i slanjem “gri*ga” vrijednosti, napadač može, analizirajući promjene u kašnjenju u odgovoru servera, odrediti vrijednosti koje dovode do primanja primarnih ključeva počevši od nule. Nakon što odredi takve vrijednosti, napadač može kreirati skup jednačina za rešenja problemi sa skrivenim brojevima i izračunajte originalni primarni ključ.

Ranjivost u TLS-u omogućava određivanje ključa za veze zasnovane na DH šiframa

OpenSSL ranjivosti dodeljeno nizak nivo opasnosti, a ispravka je svedena na premeštanje problematičnih šifri “TLS_DH_*” u izdanju 1.0.2w u kategoriju šifri sa nedovoljnim nivoom zaštite (“weak-ssl-ciphers”), koja je podrazumevano onemogućena . Mozilla programeri su uradili istu stvar, ugašeno u NSS biblioteci koja se koristi u Firefoxu, DH i DHE paketima šifri. Od Firefoxa 78, problematične šifre su onemogućene. Chrome podrška za DH je ukinuta još 2016. godine. BearSSL, BoringSSL, Botan, Mbed TLS i s2n biblioteke nisu pogođene problemom jer ne podržavaju DH šifre ili statičke varijante DH šifre.

Dodatni problemi su posebno navedeni (CVE-2020-5929) u TLS stogu F5 BIG-IP uređaja, čineći napad realističnijim. Konkretno, identifikovana su odstupanja u ponašanju uređaja u prisustvu nultog bajta na početku primarnog ključa, koji se može koristiti umesto merenja tačne latencije proračuna.

izvor: opennet.ru

Dodajte komentar