A probléma közvetlenül a TLS specifikációban van jelen, és csak a DH kulcscsere protokollon (Diffie-Hellman, TLS_DH_*") alapuló rejtjeleket használó kapcsolatokat érinti. Az ECDH titkosításokkal a probléma nem fordul elő, és biztonságosak maradnak. Csak az 1.2-es verzióig terjedő TLS protokollok sebezhetők, a TLS 1.3-at nem érinti a probléma. A sérülékenység azokban a TLS-megvalósításokban jelentkezik, amelyek a titkos DH titkos kulcsot használják különböző TLS-kapcsolatokon (ez a viselkedés az Alexa Top 4.4M szerverek körülbelül 1%-án fordul elő).
Az OpenSSL 1.0.2e és korábbi kiadásaiban a DH elsődleges kulcsot minden szerverkapcsolatban újra felhasználják, kivéve, ha az SSL_OP_SINGLE_DH_USE opció kifejezetten be van állítva. Az OpenSSL 1.0.2f óta az elsődleges DH kulcsot csak statikus DH titkosítások ("DH-*", pl. "DH-RSA-AES256-SHA") használatakor használják újra. A biztonsági rés nem jelenik meg az OpenSSL 1.1.1-ben, mivel ez az ág nem használ elsődleges DH-kulcsot, és nem használ statikus DH-rejtjeleket.
A DH kulcscsere módszer alkalmazásakor a kapcsolat mindkét oldala véletlenszerű privát kulcsokat generál (a továbbiakban „a” és „b” kulcs), amelyek alapján a nyilvános kulcsok (ga mod p és gb mod p) kiszámításra és elküldésre kerülnek. Miután mindegyik fél megkapta a nyilvános kulcsokat, egy közös elsődleges kulcs (gab mod p) kerül kiszámításra, amelyet a munkamenetkulcsok generálására használnak. A Raccoon támadás lehetővé teszi az elsődleges kulcs meghatározását oldalcsatorna-elemzésen keresztül, azon a tényen alapulva, hogy a TLS-specifikációk az 1.2-es verzióig megkövetelik, hogy az elsődleges kulcs összes vezető nullbájtját el kell dobni a számítások előtt.
A csonkolt elsődleges kulcs belefoglalása a munkamenetkulcs-generáló funkcióba kerül, amely különböző adatok feldolgozásakor eltérő késleltetésű hash-függvényeken alapul. A kiszolgáló által végrehajtott kulcsműveletek időzítésének pontos mérése lehetővé teszi a támadó számára, hogy olyan nyomokat (oracle) határozzon meg, amelyek lehetővé teszik annak megítélését, hogy az elsődleges kulcs a nulláról indul-e vagy sem. Például egy támadó elkaphatja az ügyfél által küldött nyilvános kulcsot (ga), újraküldheti azt a szervernek, és meghatározhatja
hogy a kapott elsődleges kulcs nulláról indul-e.
Önmagában a kulcs egy bájtjának meghatározása nem ad semmit, de a kapcsolat egyeztetése során a kliens által továbbított „ga” érték elfogásával a támadó a „ga”-hoz társított egyéb értékeket generálhat, és elküldheti a a szervert külön kapcsolat-tárgyalási munkamenetekben. A „gri*ga” értékek generálásával és elküldésével a támadó a szerver válaszában bekövetkezett késések változásainak elemzésével meghatározhatja azokat az értékeket, amelyek nullától kezdődően az elsődleges kulcsok fogadásához vezetnek. Az ilyen értékek meghatározása után a támadó egyenletkészletet hozhat létre a számára
OpenSSL biztonsági rések
A további problémákat külön jelezzük (
Forrás: opennet.ru