Sårbarhed i TLS tillader nøglebestemmelse for forbindelser baseret på DH-cifre

Afsløret information om det nye sårbarheder (CVE-2020-1968) i TLS-protokollen, kodenavnet
Vaskebjørn og tillader, i sjældne tilfælde, at bestemme en foreløbig primær nøgle (pre-master), som kan bruges til at dekryptere TLS-forbindelser, inklusive HTTPS, når man opsnapper transittrafik (MITM). Det bemærkes, at angrebet er meget vanskeligt for praktisk implementering og er mere af teoretisk karakter. For at udføre et angreb kræves en specifik konfiguration af TLS-serveren og evnen til meget præcist at måle serverbehandlingstiden.

Problemet er til stede direkte i TLS-specifikationen og påvirker kun forbindelser, der bruger chiffer baseret på DH-nøgleudvekslingsprotokollen (Diffie-Hellman, TLS_DH_*"). Med ECDH-cifre opstår problemet ikke, og de forbliver sikre. Kun TLS-protokoller op til version 1.2 er sårbare; TLS 1.3 er ikke påvirket af problemet. Sårbarheden opstår i TLS-implementeringer, der genbruger den hemmelige DH-nøgle på tværs af forskellige TLS-forbindelser (denne adfærd forekommer på ca. 4.4 % af Alexa Top 1M-servere).

I OpenSSL 1.0.2e og tidligere udgivelser genbruges DH-primærnøglen i alle serverforbindelser, medmindre indstillingen SSL_OP_SINGLE_DH_USE udtrykkeligt er angivet. Siden OpenSSL 1.0.2f genbruges DH-primærnøglen kun ved brug af statiske DH-cifre ("DH-*", f.eks. "DH-RSA-AES256-SHA"). Sårbarheden vises ikke i OpenSSL 1.1.1, da denne gren ikke bruger en DH-primærnøgle og ikke bruger statiske DH-cifre.

Ved brug af DH-nøgleudvekslingsmetoden genererer begge sider af forbindelsen tilfældige private nøgler (herefter nøglen "a" og nøglen "b"), baseret på hvilke offentlige nøgler (ga mod p og gb mod p) beregnes og sendes. Efter at hver part har modtaget de offentlige nøgler, beregnes en fælles primær nøgle (gab mod p), som bruges til at generere sessionsnøgler. Raccoon-angrebet giver dig mulighed for at bestemme den primære nøgle gennem sidekanalanalyse, baseret på det faktum, at TLS-specifikationerne op til version 1.2 kræver, at alle førende null-bytes af den primære nøgle kasseres før beregninger, der involverer den.

Inkludering af den trunkerede primærnøgle overføres til sessionsnøglegenereringsfunktionen, som er baseret på hashfunktioner med forskellige forsinkelser ved behandling af forskellige data. Nøjagtig måling af timingen af ​​nøgleoperationer udført af serveren giver angriberen mulighed for at bestemme spor (oracle), der gør det muligt at bedømme, om den primære nøgle starter fra bunden eller ej. For eksempel kan en angriber opsnappe den offentlige nøgle (ga) sendt af klienten, gentransmittere den til serveren og bestemme
om den resulterende primærnøgle starter fra nul.

I sig selv giver det ikke noget at definere en byte af nøglen, men ved at opsnappe "ga"-værdien transmitteret af klienten under forbindelsesforhandling, kan angriberen generere et sæt andre værdier forbundet med "ga" og sende dem til serveren i separate forbindelsesforhandlingssessioner. Ved at generere og sende "gri*ga"-værdier kan en angriber, gennem at analysere ændringer i forsinkelser i serversvaret, bestemme de værdier, der fører til modtagelse af primærnøgler startende fra nul. Efter at have bestemt sådanne værdier, kan angriberen oprette et sæt ligninger for løsninger skjulte talproblemer og beregn den oprindelige primærnøgle.

Sårbarhed i TLS tillader nøglebestemmelse for forbindelser baseret på DH-cifre

OpenSSL sårbarheder tildelt lavt fareniveau, og rettelsen blev reduceret til at flytte de problematiske ciphers "TLS_DH_*" i release 1.0.2w til kategorien af ​​ciphers med et utilstrækkeligt beskyttelsesniveau ("weak-ssl-ciphers"), som er deaktiveret som standard . Mozilla-udviklerne gjorde det samme, slukket i NSS-biblioteket, der bruges i Firefox, DH- og DHE-chiffersuiterne. Fra Firefox 78 er problematiske cifre deaktiveret. Chrome-understøttelse af DH blev afbrudt tilbage i 2016. BearSSL-, BoringSSL-, Botan-, Mbed TLS- og s2n-bibliotekerne er ikke berørt af problemet, fordi de ikke understøtter DH-cifre eller statiske varianter af DH-cifre.

Yderligere problemer er noteret separat (CVE-2020-5929) i TLS-stakken af ​​F5 BIG-IP-enheder, hvilket gør angrebet mere realistisk. Især er der blevet identificeret afvigelser i enheders adfærd i nærværelse af en nulbyte i begyndelsen af ​​den primære nøgle, som kan bruges i stedet for at måle den nøjagtige latenstid af beregninger.

Kilde: opennet.ru

Tilføj en kommentar