teave uue (CVE-2020-1968) TLS-protokollis, mille koodnimi on
ja mis vĂ”imaldab vĂ€ga harvaesinevate asjaolude korral mÀÀrata eelmise peamise vĂ”tme (pre-master), mida saab kasutada TLS-ĂŒhenduste, sealhulgas HTTPS-i, dekrĂŒpteerimiseks, kui vahepealset liiklust (MITM) tabatakse. Tuuakse esile, et rĂŒnnak on praktilise teostamise osas vĂ€ga keeruline ja on pigem teoreetilise iseloomuga. RĂŒnnaku teostamiseks on vajalik TLS-serveri spetsiifiline konfiguratsioon ja vĂ”ime vĂ€ga tĂ€pselt mÔÔta serveri operatsioonide töötlemise aega.
Probleem esineb otse TLS-spetsifikatsioonis ja puudutab ainult ĂŒhendusi, mis kasutavad DH-pĂ”hiseid vĂ”tmevahetusprotokolle (Diffie-Hellman, TLS_DH_*). ECDH-protokollide puhul probleem ei avaldu ja need jÀÀvad turvaliseks. Haavatavad on ainult TLS-protokollid kuni versioonini 1.2 (sealhulgas), TLS 1.3 ei ole sellele probleemile vastuvĂ”tlik. Haavatavus ilmneb TLS-implementatsioonides, mis kasutavad DH-sekreetvĂ”tme korduvat taaskasutamist erinevates TLS-ĂŒhendustes (seda kĂ€itumist tĂ€heldatakse ligikaudu 4.4% Alexa Top 1M serveritest).
OpenSSL 1.0.2e ja varasemates vĂ€ljaannetes taaskasutatakse DH-peavĂ”tit kĂ”ikides serveri ĂŒhendustes, kui SSL_OP_SINGLE_DH_USE valikut selgesĂ”naliselt ei valita. Alates OpenSSL 1.0.2f taaskasutatakse DH-peavĂ”tit ainult staatiliste DH-ĆĄifrite (âDH-*â, nĂ€iteks âDH-RSA-AES256-SHAâ) korral. OpenSSL 1.1.1 ei avalda haavatavust, kuna selles harus ei kasutata DH-peavĂ”tit ning ei rakendata staatilisi DH-ĆĄifreid.
DH-vĂ”tmevahetuse meetodi kasutamisel genereerivad ĂŒhenduse mĂ”lemad pooled juhuslikud privaatvĂ”tmed (edasi âvĂ”ti aâ ja âvĂ”ti bâ), mille alusel arvutatakse ja saadetakse avatud vĂ”tmed (ga mod p ja gb mod p). PĂ€rast avatud vĂ”tmete saamist arvutab iga pool ĂŒhise peavĂ”tme (gab mod p), mida kasutatakse seansivĂ”tmete genereerimiseks. Raccooni rĂŒnnak vĂ”imaldab peavĂ”tit mÀÀrata kolmandate kanalite teabe analĂŒĂŒsi kaudu, tuginedes sellele, et TLS-spesifikatsioonides kuni versioonini 1.2 on ette nĂ€htud, et kĂ”ik peavĂ”tme algsed nullbittid jĂ€etakse vĂ€lja selle osalusel toimuvaid arvutusi tehes.
Seal, sealitud esialgne vĂ”ti edastatakse seansi vĂ”tme genereerimise funktsiooni, mis pĂ”hineb erineva viivituse ajal erinevate andmete töötlemisel. Serveri operatsioonide aja tĂ€psete mÔÔtmiste abil suudab rĂŒndaja leida vihjeid (oracle), mis annavad vĂ”imaluse hinnata, kas esialgne vĂ”ti algab nullist vĂ”i mitte. NĂ€iteks vĂ”ib rĂŒndaja röövida kliendi edastatud avaliku vĂ”tme (ga), saata selle serverisse tagasi ja kindlaks teha
kas tulemuseks olev esialgne vÔti algab nullist.
Isegi ĂŒhe byte'i vĂ”tmine ei anna midagi, kuid kui rĂŒndaja on röövinud kliendi kokkuleppe loomise ajal edastatud vÀÀrtuse "ga", saab ta luua hulga muid vÀÀrtusi, mis on seotud "ga", ja saata need serverisse eraldi kokkuleppe seanssides. Loomise ja saatmise ajal vÀÀrtused "gri*ga", suudab rĂŒndaja serveri vastuse viivituste analĂŒĂŒsi kaudu mÀÀrata vÀÀrtused, mis viivad esialgsete vĂ”tmete saamiseni, mis algavad nullist. Tuues vĂ€lja sellised vÀÀrtused, vĂ”ib rĂŒndaja koostada hulga vĂ”rrandeid ja arvutada algse esialgse vĂ”tme.

OpenSSL on haavatavuste madal ohtlikkuse tase ja parandamine seisnes probleemsete "TLS_DH_*" krĂŒptoalgoritmide liigutamises vĂ€ljalaskes 1.0.2w vaikimisi keelatud krĂŒptoalgoritmide kategooriasse, millel on ebapiisav turvetase ("weak-ssl-ciphers"). Sarnase lĂ€henemise vĂ”tsid omaks ka Mozilla arendajad, kes NSS-kogus, mida kasutatakse Firefoxis, DH ja DHE krĂŒptoalgoritmide hulgad. Alates Firefox 78 on probleemsed ĆĄifrid keelatud. Chrome'is lĂ”petati DH toetus juba 2016. aastal. BearSSL, BoringSSL, Botan, Mbed TLS ja s2n ei ole selle probleemi suhtes haavatavad, kuna nad ei toeta DH algoritme ega nende staatilisi variante.
Erilised tĂ€iendavad probleemid on vĂ€lja toodud () F5 BIG-IP seadmete TLSi virnas, mis muudab rĂŒnnaku realistlikumaks. EelkĂ”ige on tuvastatud kĂ”rvalekalded seadmete kĂ€itumises, kui esialgse vĂ”tme alguses on nullbyte, mida saab kasutada tĂ€psete ajaviivituste mÔÔtmise asemel.
Allikas: opennet.ru
