TLS-i haavatavus, mis võimaldab DH-šifritel põhinevate ühenduste võtmemääramist

Ilmnes info uue kohta haavatavused (CVE-2020-1968) TLS-i protokollis, koodnimega
Raccoon ja võimaldab harvadel juhtudel määrata esialgne primaarvõti (pre-master), mida saab kasutada transiidiliikluse (MITM) pealtkuulamisel TLS-i ühenduste, sealhulgas HTTPS-i dekrüpteerimiseks. Märgitakse, et rünnak on praktiliseks rakendamiseks väga raske ja on pigem teoreetilise iseloomuga. Rünnaku läbiviimiseks on vaja spetsiifilist TLS-serveri konfiguratsiooni ja võimalust väga täpselt mõõta serveri töötlemisaega.

Probleem esineb otse TLS-i spetsifikatsioonis ja mõjutab ainult ühendusi, mis kasutavad DH-võtmevahetusprotokollil põhinevaid šifreid (Diffie-Hellman, TLS_DH_*"). ECDH šifri puhul probleemi ei esine ja need jäävad turvaliseks. Ainult TLS-protokollid kuni versioonini 1.2 on haavatavad; TLS 1.3-i probleem ei mõjuta. Haavatavus ilmneb TLS-i rakendustes, mis kasutavad DH-salajast võtit erinevates TLS-ühendustes (sellist käitumist esineb umbes 4.4% Alexa Top 1M serveritest).

OpenSSL 1.0.2e ja varasemates versioonides kasutatakse DH primaarvõtit uuesti kõigis serveriühendustes, välja arvatud juhul, kui suvand SSL_OP_SINGLE_DH_USE on otseselt määratud. Alates versioonist OpenSSL 1.0.2f kasutatakse DH primaarvõtit uuesti ainult staatiliste DH-šifrite ("DH-*", nt "DH-RSA-AES256-SHA") kasutamisel. See haavatavus ei ilmu versioonis OpenSSL 1.1.1, kuna see haru ei kasuta DH primaarvõtit ega staatilisi DH-šifreid.

DH võtmevahetusmeetodi kasutamisel genereerivad ühenduse mõlemad pooled juhuslikud privaatvõtmed (edaspidi võti “a” ja võti “b”), mille alusel arvutatakse ja saadetakse avalikud võtmed (ga mod p ja gb mod p). Pärast seda, kui iga osapool on saanud avalikud võtmed, arvutatakse välja ühine primaarvõti (gab mod p), mida kasutatakse seansivõtmete genereerimiseks. Raccooni rünnak võimaldab teil määrata primaarvõtme külgkanali analüüsi abil, tuginedes asjaolule, et TLS-i spetsifikatsioonid kuni versioonini 1.2 nõuavad, et kõik primaarvõtme juhtivad nullbaidid tuleb enne seda hõlmavate arvutuste tegemist kõrvale jätta.

Sealhulgas kärbitud primaarvõti edastatakse seansivõtme genereerimise funktsioonile, mis põhineb erinevate andmete töötlemisel erineva viivitusega räsifunktsioonidel. Serveri võtmetoimingute ajastuse täpne mõõtmine võimaldab ründajal määrata vihjeid (oraakel), mis võimaldavad otsustada, kas primaarvõti algab nullist või mitte. Näiteks võib ründaja kinni püüda kliendi saadetud avaliku võtme (ga), selle uuesti serverisse edastada ja
kas saadud primaarvõti algab nullist.

Võtme ühe baidi defineerimine iseenesest ei anna midagi, kuid püüdes kinni kliendi poolt ühenduse läbirääkimiste käigus edastatud “ga” väärtuse, saab ründaja genereerida hulga muid “ga”-ga seotud väärtusi ja saata need serverisse eraldi ühenduse läbirääkimiste seanssides. Genereerides ja saates "gri*ga" väärtusi, saab ründaja serveri vastuse viivituste muutusi analüüsides määrata väärtused, mis viivad primaarvõtmete saamiseni, alustades nullist. Pärast selliste väärtuste kindlaksmääramist saab ründaja luua võrrandite komplekti lahendused varjatud numbriprobleemid ja arvutage algne primaarvõti.

TLS-i haavatavus, mis võimaldab DH-šifritel põhinevate ühenduste võtmemääramist

OpenSSL-i haavatavused määratud madala ohutasemega ja parandus taandati probleemsete šifrite “TLS_DH_*” teisaldamisele versioonis 1.0.2w ebapiisava kaitsetasemega šifrite kategooriasse (“weak-ssl-ciphers”), mis on vaikimisi keelatud. . Mozilla arendajad tegid sama asja, välja lülitatud Firefoxis kasutatavas NSS-i teegis, DH- ja DHE-šifrikomplektides. Alates Firefox 78-st on probleemsed šifrid keelatud. Chrome'i tugi DH-le lõpetati 2016. aastal. Teeke BearSSL, BoringSSL, Botan, Mbed TLS ja s2n probleem ei puuduta, kuna need ei toeta DH-šifreid ega DH-šifrite staatilisi variante.

Täiendavad probleemid on märgitud eraldi (CVE-2020-5929) F5 BIG-IP-seadmete TLS-virnas, muutes rünnaku realistlikumaks. Eelkõige on tuvastatud hälbed seadmete käitumises nullbaidi olemasolul primaarvõtme alguses, mida saab kasutada arvutuste täpse latentsusaja mõõtmise asemel.

Allikas: opennet.ru

Lisa kommentaar