TLS pažeidžiamumas, leidžiantis nustatyti pagrindinius ryšius pagal DH šifrus

Atskleista informacija apie naujus pažeidžiamumų (CVE-2020-1968) TLS protokole, kodiniu pavadinimu
Meškėnas ir leidžia retomis aplinkybėmis nustatyti preliminarų pirminį raktą (pre-master), kuris gali būti naudojamas iššifruoti TLS ryšius, įskaitant HTTPS, perimant tranzito srautą (MITM). Pažymima, kad puolimas yra labai sunkus praktiškai įgyvendinti ir yra daugiau teorinio pobūdžio. Norint įvykdyti ataką, reikalinga specifinė TLS serverio konfigūracija ir galimybė labai tiksliai išmatuoti serverio apdorojimo laiką.

Problema yra tiesiogiai TLS specifikacijoje ir turi įtakos tik ryšiams, naudojant šifrus, pagrįstus DH raktų mainų protokolu (Diffie-Hellman, TLS_DH_*"). Naudojant ECDH šifrus, problema nekyla ir jie išlieka saugūs. Tik TLS protokolai iki 1.2 versijos yra pažeidžiami; TLS 1.3 problema neturi įtakos. Pažeidžiamumas atsiranda įdiegiant TLS, kurie pakartotinai naudoja slaptąjį DH raktą įvairiuose TLS ryšiuose (toks elgesys pasireiškia maždaug 4.4 % Alexa Top 1M serverių).

OpenSSL 1.0.2e ir ankstesnėse versijose DH pirminis raktas pakartotinai naudojamas visuose serverio ryšiuose, nebent SSL_OP_SINGLE_DH_USE parinktis yra aiškiai nustatyta. Nuo OpenSSL 1.0.2f pirminis DH raktas pakartotinai naudojamas tik naudojant statinius DH šifrus ("DH-*", pvz., "DH-RSA-AES256-SHA"). Pažeidžiamumas nerodomas OpenSSL 1.1.1 versijoje, nes ši šaka nenaudoja DH pirminio rakto ir nenaudoja statinių DH šifrų.

Naudojant DH raktų mainų metodą, abi ryšio pusės generuoja atsitiktinius privačius raktus (toliau raktas „a“ ir raktas „b“), pagal kuriuos apskaičiuojami ir siunčiami viešieji raktai (ga mod p ir gb mod p). Kiekvienai šaliai gavus viešuosius raktus, apskaičiuojamas bendras pirminis raktas (gab mod p), kuris naudojamas seanso raktams generuoti. Raccoon ataka leidžia nustatyti pirminį raktą atliekant šoninio kanalo analizę, remiantis tuo, kad TLS specifikacijose iki 1.2 versijos reikalaujama, kad visi pirminiai nuliniai pirminio rakto baitai būtų atmesti prieš atliekant su juo susijusius skaičiavimus.

Įskaitant sutrumpintą pirminį raktą, jis perduodamas seanso rakto generavimo funkcijai, kuri yra pagrįsta maišos funkcijomis su skirtingais vėlavimais apdorojant skirtingus duomenis. Tiksliai matuojant serverio atliekamų raktų operacijų laiką, užpuolikas gali nustatyti užuominas (oracle), leidžiančias spręsti, ar pirminis raktas pradedamas nuo nulio, ar ne. Pavyzdžiui, užpuolikas gali perimti kliento atsiųstą viešąjį raktą (ga), persiųsti jį į serverį ir nustatyti
ar gautas pirminis raktas prasideda nuo nulio.

Vieno rakto baito apibrėžimas savaime nieko neduoda, tačiau perimdamas „ga“ reikšmę, kurią klientas perdavė derybų dėl ryšio metu, užpuolikas gali sugeneruoti kitų reikšmių rinkinį, susietą su „ga“, ir nusiųsti jas į serverį atskirose derybų dėl ryšio sesijose. Generuodamas ir siųsdamas „gri*ga“ reikšmes, užpuolikas, analizuodamas serverio atsako delsos pokyčius, gali nustatyti reikšmes, dėl kurių gaunami pirminiai raktai, pradedant nuo nulio. Nustačius tokias reikšmes, užpuolikas gali sukurti lygčių rinkinį sprendimai paslėptų skaičių problemos ir apskaičiuokite pradinį pirminį raktą.

TLS pažeidžiamumas, leidžiantis nustatyti pagrindinius ryšius pagal DH šifrus

OpenSSL pažeidžiamumas paskirtas žemas pavojaus lygis, o pataisymas sumažintas iki probleminių šifrų „TLS_DH_*“ 1.0.2w versijoje perkėlimo į šifrų kategoriją, kurių apsaugos lygis yra nepakankamas („silpni ssl-šifrai“), kuri pagal numatytuosius nustatymus yra išjungta. . „Mozilla“ kūrėjai padarė tą patį, išjungė NSS bibliotekoje, naudojamoje Firefox, DH ir DHE šifravimo rinkiniuose. Nuo 78 versijos „Firefox“ probleminiai šifrai yra išjungti. „Chrome“ DH palaikymas buvo nutrauktas 2016 m. „BearSSL“, „BoringSSL“, „Botan“, „Mbed TLS“ ir „s2n“ bibliotekoms problema nedaro įtakos, nes jos nepalaiko DH šifrų ar statinių DH šifrų variantų.

Papildomos problemos nurodomos atskirai (CVE-2020-5929) F5 BIG-IP įrenginių TLS krūvoje, todėl ataka tampa tikroviškesnė. Visų pirma, buvo nustatyti įrenginių elgsenos nukrypimai, kai pirminio rakto pradžioje yra nulis baitas, kuris gali būti naudojamas vietoj tikslaus skaičiavimų delsos matavimo.

Šaltinis: opennet.ru

Добавить комментарий