Ranjivost u TLS-u koja dopušta određivanje ključa za veze temeljene na DH šiframa

Otkriveno informacije o novom ranjivosti (CVE-2020-1968) u TLS protokolu, kodnog naziva
Rakun i dopuštanje, u rijetkim okolnostima, određivanja preliminarnog primarnog ključa (pre-master), koji se može koristiti za dešifriranje TLS veza, uključujući HTTPS, prilikom presretanja tranzitnog prometa (MITM). Napominje se da je napad vrlo težak za praktičnu provedbu i više je teoretske prirode. Za izvođenje napada potrebna je specifična konfiguracija TLS poslužitelja i mogućnost vrlo preciznog mjerenja vremena obrade poslužitelja.

Problem je prisutan izravno u TLS specifikaciji i utječe samo na veze koje koriste šifre temeljene na DH protokolu za razmjenu ključeva (Diffie-Hellman, TLS_DH_*"). S ECDH šiframa problem se ne pojavljuje i one ostaju sigurne. Ranjivi su samo TLS protokoli do verzije 1.2; problem ne utječe na TLS 1.3. Ranjivost se javlja u TLS implementacijama koje ponovno koriste DH tajni ključ preko različitih TLS veza (ovo se ponašanje događa na približno 4.4% Alexa Top 1M poslužitelja).

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

Kod metode DH razmjene ključeva obje strane veze generiraju nasumične privatne ključeve (u daljnjem tekstu ključ “a” i ključ “b”), na temelju 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ćuje određivanje primarnog ključa kroz analizu bočnog kanala, na temelju činjenice da TLS specifikacije do verzije 1.2 zahtijevaju da se svi vodeći nulti bajtovi primarnog ključa odbace prije izračuna koji 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 pri obradi različitih podataka. Precizno mjerenje vremena ključnih operacija koje izvodi poslužitelj omogućuje napadaču da odredi tragove (proročanstvo) koji omogućuju procjenu počinje li primarni ključ od nule ili ne. Na primjer, napadač bi mogao presresti javni ključ (ga) koji je poslao klijent, ponovno ga poslati poslužitelju 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 presretanjem vrijednosti "ga" koju klijent prenosi tijekom pregovora o povezivanju, napadač može generirati skup drugih vrijednosti povezanih s "ga" i poslati ih na poslužitelja u odvojenim sesijama pregovora o povezivanju. Generiranjem i slanjem “gri*ga” vrijednosti, napadač može analizom promjena kašnjenja u odgovoru poslužitelja odrediti vrijednosti koje dovode do primanja primarnih ključeva počevši od nule. Odredivši takve vrijednosti, napadač može stvoriti skup jednadžbi za rješenja problemi sa skrivenim brojevima i izračunati izvorni primarni ključ.

Ranjivost u TLS-u koja dopušta određivanje ključa za veze temeljene na DH šiframa

OpenSSL ranjivosti dodijeljen niska razina opasnosti, a popravak se sveo na prebacivanje problematičnih šifri “TLS_DH_*” u izdanju 1.0.2w u kategoriju šifri s nedovoljnom razinom zaštite (“weak-ssl-ciphers”), koja je prema zadanim postavkama onemogućena . Mozilla programeri učinili su istu stvar, ugašen u NSS knjižnici koja se koristi u Firefoxu, DH i DHE paketima šifri. Od Firefoxa 78, problematične šifre su onemogućene. Chromeova podrška za DH ukinuta je još 2016. BearSSL, BoringSSL, Botan, Mbed TLS i s2n biblioteke nisu zahvaćene problemom jer ne podržavaju DH šifre ili statičke varijante DH šifri.

Dodatni problemi su posebno navedeni (CVE-2020-5929) u TLS stogu F5 BIG-IP uređaja, čineći napad realističnijim. Konkretno, utvrđena su odstupanja u ponašanju uređaja u prisutnosti nula bajta na početku primarnog ključa, što se može koristiti umjesto mjerenja točne latencije izračuna.

Izvor: opennet.ru

Dodajte komentar