Zraniteľnosť v TLS umožňujúca určenie kľúča pre pripojenia založené na DH šifrách

Odhalené informácie o novom zraniteľnosti (CVE-2020-1968) v protokole TLS s kódovým označením
medvedík čistotný a umožnenie, v zriedkavých prípadoch, určiť predbežný primárny kľúč (pre-master), ktorý možno použiť na dešifrovanie TLS spojení, vrátane HTTPS, pri zachytení tranzitnej prevádzky (MITM). Je potrebné poznamenať, že útok je veľmi náročný na praktickú realizáciu a má skôr teoretický charakter. Na vykonanie útoku je potrebná špecifická konfigurácia servera TLS a schopnosť veľmi presne merať čas spracovania servera.

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 riešenie skryté problémy s číslami a vypočítajte pôvodný primárny kľúč.

Zraniteľnosť v TLS umožňujúca určenie kľúča pre pripojenia založené na DH šifrách

Zraniteľnosť OpenSSL pridelených nízka úroveň nebezpečenstva a oprava bola zredukovaná na presunutie problematických šifier „TLS_DH_*“ vo verzii 1.0.2w do kategórie šifier s nedostatočnou úrovňou ochrany („weak-ssl-ciphers“), ktorá je predvolene vypnutá . Vývojári Mozilly urobili to isté, vypnutý v knižnici NSS používanej vo Firefoxe, šifrovacích súpravách DH a DHE. Od verzie Firefox 78 sú problematické šifry zakázané. Podpora prehliadača Chrome pre DH bola ukončená v roku 2016. Knižnice BearSSL, BoringSSL, Botan, Mbed TLS a s2n nie sú týmto problémom ovplyvnené, pretože nepodporujú DH šifry ani statické varianty DH šifier.

Ďalšie problémy sú uvedené samostatne (CVE-2020 5929,) v zásobníku TLS zariadení F5 BIG-IP, vďaka čomu je útok realistickejší. Identifikované boli najmä odchýlky v správaní zariadení v prítomnosti nulového bajtu na začiatku primárneho kľúča, čo je možné použiť namiesto merania presnej latencie výpočtov.

Zdroj: opennet.ru

Pridať komentár