Problém je prítomný priamo v špecifikácii TLS a týka sa iba spojení pomocou šifier založených na protokole výmeny kľúčov DH (Diffie-Hellman, TLS_DH_*“). So šiframi ECDH sa problém nevyskytuje a zostávajú bezpečné. Zraniteľné sú iba protokoly TLS do verzie 1.2; TLS 1.3 nie je týmto problémom ovplyvnený. Zraniteľnosť sa vyskytuje v implementáciách TLS, ktoré opakovane používajú tajný kľúč DH naprieč rôznymi pripojeniami TLS (toto správanie sa vyskytuje na približne 4.4 % serverov Alexa Top 1M).
V OpenSSL 1.0.2e a starších vydaniach sa primárny kľúč DH opätovne používa vo všetkých pripojeniach servera, pokiaľ nie je explicitne nastavená možnosť SSL_OP_SINGLE_DH_USE. Od OpenSSL 1.0.2f sa primárny kľúč DH opätovne používa iba pri použití statických DH šifier ("DH-*", napr. "DH-RSA-AES256-SHA"). Zraniteľnosť sa neobjavuje v OpenSSL 1.1.1, pretože táto vetva nepoužíva primárny kľúč DH a nepoužíva statické DH šifry.
Pri použití metódy výmeny kľúčov DH obe strany spojenia generujú náhodné súkromné kľúče (ďalej kľúč „a“ a kľúč „b“), na základe ktorých sú vypočítané a odoslané verejné kľúče (ga mod p a gb mod p). Keď každá strana prijme verejné kľúče, vypočíta sa spoločný primárny kľúč (gab mod p), ktorý sa používa na generovanie kľúčov relácie. Útok Raccoon vám umožňuje určiť primárny kľúč prostredníctvom analýzy bočného kanála na základe skutočnosti, že špecifikácie TLS až do verzie 1.2 vyžadujú, aby sa pred výpočtami, ktoré sa ho týkajú, zahodili všetky úvodné nulové bajty primárneho kľúča.
Vrátane skráteného primárneho kľúča sa odovzdá funkcii generovania kľúča relácie, ktorá je založená na hašovacích funkciách s rôznym oneskorením pri spracovaní rôznych údajov. Presné meranie načasovania kľúčových operácií vykonávaných serverom umožňuje útočníkovi určiť stopy (oracle), ktoré umožňujú posúdiť, či primárny kľúč začína od nuly alebo nie. Útočník by napríklad mohol zachytiť verejný kľúč (ga) odoslaný klientom, znova ho preniesť na server a určiť
či výsledný primárny kľúč začína od nuly.
Samotné definovanie jedného bajtu kľúča nič nedáva, ale zachytením hodnoty „ga“ prenášanej klientom počas vyjednávania o pripojení môže útočník vygenerovať súbor ďalších hodnôt spojených s „ga“ a poslať ich server v samostatných reláciách vyjednávania o pripojení. Generovaním a odosielaním hodnôt „gri*ga“ môže útočník prostredníctvom analýzy zmien oneskorení v odozve servera určiť hodnoty, ktoré vedú k prijatiu primárnych kľúčov od nuly. Po určení takýchto hodnôt môže útočník vytvoriť súbor rovníc pre
Zraniteľnosť OpenSSL
Ďalšie problémy sú uvedené samostatne (
Zdroj: opennet.ru