informace o novém (CVE-2020-1968) v protokolu TLS, který byl označen kódovým názvem
a v důsledku vzácných okolností umožňuje určit předběžný primární klíč (pre-master), který lze využít k dešifrování TLS spojení, včetně HTTPS, při zachycení přechodného provozu (MITM). Je třeba poznamenat, že útok je velmi složitý na praktickou realizaci a má spíše teoretický charakter. K provedení útoku je zapotřebí specifická konfigurace TLS serveru a možnost velmi přesného měření doby zpracování operací serverem.
Problém existuje přímo ve specifikaci TLS a týká se pouze spojení, která používají šifry na bázi protokolu výměny klíčů DH (Diffie-Hellman, TLS_DH_*). Při použití šifer ECDH se problém neprojevuje a zůstávají bezpečné. Zranitelné jsou pouze protokoly TLS do verze 1.2 včetně, protokol TLS 1.3 není danému problému exponován. Zranitelnost se objevuje v implementacích TLS, které opakovaně používají tajný klíč DH v různých TLS spojení (takové chování se vyskytuje přibližně na 4.4% serverů z žebříčku Alexa Top 1M).
V OpenSSL 1.0.2e a dřívějších verzích se primární klíč DH opakovaně používá pro všechna serverová spojení, pokud není výslovně nastavena volba SSL_OP_SINGLE_DH_USE. Od OpenSSL 1.0.2f se primární klíč DH opakovaně používá pouze při použití statických DH šifer („DH-*“, například „DH-RSA-AES256-SHA“). V OpenSSL 1.1.1 se zranitelnost neprojevuje, neboť v této větvi se primární klíč DH nepoužívá a neaplikují se statické DH šifry.
Při použití metody výměny klíčů DH obě strany spojení generují náhodné soukromé klíče (dále klíč „a“ a klíč „b“), na základě kterých jsou vypočteny a odeslány veřejné klíče (ga mod p a gb mod p). Po obdržení veřejných klíčů každou stranou se vypočítá společný primární klíč (gab mod p), který se používá k formování sezení klíčů. Útok Raccoon umožňuje určit primární klíč prostřednictvím analýzy informací z vedlejších kanálů, vycházejíc z toho, že ve specifikacích TLS až do verze 1.2 se předpisuje zahodit všechny počáteční nulové bajty primárního klíče před výpočty s jeho účastí.
Včetně zkráceného primárního klíče je předáván funkci generace relace založené na hash funkcích, které mají odlišné latence při zpracování různých dat. Přesné měření času operací serveru s klíčem umožňuje útočníkovi určit náznaky (oracle), které dávají možnost posoudit, zda primární klíč začíná nulou či nikoli. Například útočník může zachytit veřejný klíč (ga), který klient odeslal, znovu jej odeslat na server a zjistit
zda výsledný primární klíč začíná nulou.
Samo o sobě určení jednoho bajtu klíče nic nedává, ale pokud útočník zachytí hodnotu „ga“ předanou při dohodě spojení klientem, může sestavit sadu dalších hodnot souvisejících s „ga“ a odeslat je na server v rámci různých relací dohod o spojení. Tak, že generuje a odesílá hodnoty „gri*ga“, může útočník prostřednictvím analýzy změny latencí v odpovědích serveru určit hodnoty, které vedou k ziskům primárních klíčů začínajících nulou. Tímto způsobem útočník může formulovat sadu rovnic pro a vypočítat počáteční primární klíč.

Ve OpenSSL jsou zranitelnosti na nízké úrovni nebezpečí a oprava spočívala v přesunu problémových šifrovacích algoritmů „TLS_DH_*“ do vypnuté kategorie šifrování s nedostatečnou úrovní ochrany („weak-ssl-ciphers“). Podobně se zachovali vývojáři Mozilla, kteří v knihovně NSS používané ve Firefoxu sady šifrování DH a DHE. Od Firefoxu 78 byly problematické šifry vypnuty. V Chrome byla podpora DH ukončena již v roce 2016. Knihovny BearSSL, BoringSSL, Botan, Mbed TLS a s2n nejsou touto problematikou postiženy, protože nepodporují šifry DH nebo statické varianty DH šifrů.
Dále je třeba vyzdvihnout další problémy () ve TLS stacku zařízení F5 BIG-IP, které činí útok více realistický. Zejména byly zjištěny odchylky v chování zařízení při přítomnosti nulového bajtu na začátku primárního klíče, které lze použít místo měření přesného času latence během výpočtů.
Zdroj: opennet.ru
