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į
OpenSSL pažeidžiamumas
Papildomos problemos nurodomos atskirai (
Šaltinis: opennet.ru