Problemi është i pranishëm drejtpërdrejt në specifikimin TLS dhe prek vetëm lidhjet duke përdorur shifra të bazuara në protokollin e shkëmbimit të çelësave DH (Diffie-Hellman, TLS_DH_*"). Me shifrat ECDH problemi nuk ndodh dhe ato mbeten të sigurta. Vetëm protokollet TLS deri në versionin 1.2 janë të cenueshme; TLS 1.3 nuk ndikohet nga problemi. Dobësia ndodh në implementimet TLS që ripërdorin çelësin sekret DH nëpër lidhje të ndryshme TLS (kjo sjellje ndodh në afërsisht 4.4% të serverëve Alexa Top 1M).
Në OpenSSL 1.0.2e dhe versionet e mëparshme, çelësi primar DH ripërdoret në të gjitha lidhjet e serverit, përveç nëse opsioni SSL_OP_SINGLE_DH_USE është vendosur në mënyrë eksplicite. Që nga OpenSSL 1.0.2f, çelësi primar DH ripërdoret vetëm kur përdoren shifra statike DH ("DH-*", p.sh. "DH-RSA-AES256-SHA"). Dobësia nuk shfaqet në OpenSSL 1.1.1, pasi kjo degë nuk përdor një çelës primar DH dhe nuk përdor shifra statike DH.
Kur përdorni metodën e shkëmbimit të çelësave DH, të dy anët e lidhjes gjenerojnë çelësa privatë të rastësishëm (në tekstin e mëtejmë çelësi "a" dhe çelësi "b"), në bazë të të cilëve llogariten dhe dërgohen çelësat publikë (ga mod p dhe gb mod p). Pasi secila palë merr çelësat publikë, llogaritet një çelës i përbashkët primar (gab mod p), i cili përdoret për të gjeneruar çelësat e sesionit. Sulmi Raccoon ju lejon të përcaktoni çelësin parësor përmes analizës së kanalit anësor, bazuar në faktin se specifikimet TLS deri në versionin 1.2 kërkojnë që të gjitha bajtet null kryesore të çelësit primar të hidhen poshtë përpara llogaritjeve që e përfshijnë atë.
Përfshirja e çelësit primar të cunguar i kalohet funksionit të gjenerimit të çelësit të sesionit, i cili bazohet në funksionet hash me vonesa të ndryshme gjatë përpunimit të të dhënave të ndryshme. Matja e saktë e kohës së operacioneve kryesore të kryera nga serveri i lejon sulmuesit të përcaktojë të dhëna (orakull) që bëjnë të mundur të gjykojë nëse çelësi primar fillon nga e para apo jo. Për shembull, një sulmues mund të përgjojë çelësin publik (ga) të dërguar nga klienti, ta ritransmetojë atë në server dhe të përcaktojë
nëse çelësi primar që rezulton fillon nga zero.
Në vetvete, përcaktimi i një bajt të çelësit nuk jep asgjë, por duke përgjuar vlerën "ga" të transmetuar nga klienti gjatë negociatave të lidhjes, sulmuesi mund të gjenerojë një sërë vlerash të tjera të lidhura me "ga" dhe t'i dërgojë ato në serveri në sesione të veçanta të negociatave të lidhjes. Duke gjeneruar dhe dërguar vlera "gri*ga", një sulmues mundet, duke analizuar ndryshimet në vonesat në përgjigjen e serverit, të përcaktojë vlerat që çojnë në marrjen e çelësave primar duke filluar nga zero. Pasi të ketë përcaktuar vlera të tilla, sulmuesi mund të krijojë një grup ekuacionesh për
Dobësitë OpenSSL
Problemet shtesë janë shënuar veçmas (
Burimi: opennet.ru