Sårbarhed i TLS, der muliggør bestemmelse af nøglen for forbindelser baseret på DH-krypteringsalgoritmer

Afslørede information om den nye sårbarheder (CVE-2020-1968) i TLS-protokollen, der har kodeordet
Raccoon og som under sjældne omstændigheder muliggør bestemmelse af den pre-master hemmelige nøgle, der kan bruges til at dekryptere TLS-forbindelser, herunder HTTPS, ved at opsnappe transit trafik (MITM). Det bemærkes, at angrebet er meget vanskeligt at implementere i praksis og mere har en teoretisk karakter. For at udføre angrebet kræves der en specifik konfiguration af TLS-serveren og muligheden for meget præcist at måle behandlingstiden for operationer fra serverens side.

Problemet findes direkte i TLS-specifikationen og vedrører kun forbindelser, der bruger algoritmer baseret på DH-nøgleudvekslingsprotokollen (Diffie-Hellman, TLS_DH_*). Med ECDH-algoritmer opstår problemet ikke, og de forbliver sikre. Kun TLS-protokoller op til version 1.2 inkluderet er sårbare, mens TLS 1.3 ikke er underlagt problemet. Sårbarheden optræder i TLS-implementeringer, der genbruger den hemmelige DH-nøgle i forskellige TLS-forbindelser (denne adfærd observeres på cirka 4,4% af serverne i Alexa Top 1M).

I OpenSSL 1.0.2e og tidligere versioner genbruges den primære DH-nøgle i alle serverforbindelser, medmindre SSL_OP_SINGLE_DH_USE-indstillingen udtrykkeligt er aktiveret. Fra og med OpenSSL 1.0.2f genbruges den primære DH-nøgle kun ved brug af statiske DH-algoritmer («DH-*», som f.eks. «DH-RSA-AES256-SHA»). I OpenSSL 1.1.1 optræder sårbarheden ikke, da den i denne version ikke anvender den primære DH-nøgle og ikke anvender statiske DH-algoritmer.

Ved anvendelse af DH-nøgleudvekslingsmetoden genererer begge parter i forbindelsen tilfældige private nøgler (henholdsvis nøgle «a» og nøgle «b»), på grundlag af hvilke offentlige nøgler beregnes og sendes (ga mod p og gb mod p). Efter modtagelsen af de offentlige nøgler beregner hver part den fælles primære nøgle (gab mod p), som anvendes til at danne session-nøgler. Raccoon-angrebet muliggør bestemmelsen af den primære nøgle gennem analyse af information via eksterne kanaler, baseret på den observation, at TLS-specifikationerne op til version 1.2 foreskriver, at alle indledende nul byte i den primære nøgle skal kasseres, før beregninger med den udføres.

Den beskårne primære nøgle overføres til sessionnøglegenereringsfunktionen, som er baseret på hash-funktioner med forskellige forsinkelser ved behandling af forskellige data. Præcise målinger af den tid, serveren bruger på operationer med nøglen, gør det muligt for en angriber at bestemme spor (oracle), som giver mulighed for at vurdere, om den primære nøgle begynder med nul eller ej. For eksempel kan en angriber opsnappe den åbne nøgle (ga), der sendes af klienten, videresende den til serveren og bestemme
om den resulterende primære nøgle begynder med nul.

At definere et enkelt byte af nøglen i sig selv giver ikke noget, men ved at opsnappe den værdi "ga", der overføres ved forbindelsesforhandlingen af klienten, kan angriberen danne et sæt andre værdier relateret til "ga" og sende dem til serveren i separate forbindelsesforhandlingssessioner. Ved at danne og sende værdierne "gri*ga" kan angriberen gennem analyse af ændringer i serverens svartid bestemme værdier, der fører til primære nøgler, der begynder med nul. Ved at fastslå sådanne værdier kan angriberen samle et sæt ligninger for løsninger problemet med skjulte tal og beregne den oprindelige primære nøgle.

Sårbarhed i TLS, der muliggør bestemmelse af nøglen for forbindelser baseret på DH-krypteringsalgoritmer

I OpenSSL er sårbarhederne bliver tildelt lav risiko, og rettelsen omfattede flytning i version 1.0.2w af de problematiske krypteringer "TLS_DH_*" til en som standard deaktiveret kategori af krypteringer med utilstrækkelig sikkerhed ("weak-ssl-ciphers"). Tilsvarende handlede udviklerne fra Mozilla, som deaktiverede sættene af krypteringer DH og DHE i NSS-biblioteket, der anvendes i Firefox. Fra Firefox 78 er de problematiske krypteringer deaktiveret. I Chrome blev understøttelsen af DH stoppet allerede i 2016. Bibliotekerne BearSSL, BoringSSL, Botan, Mbed TLS og s2n er ikke påvirket af problemet, da de ikke understøtter DH-krypteringer eller statiske varianter af DH-krypteringer.

Derudover bemærkes ekstra problemer (CVE-2020-5929) i TLS-stakken på F5 BIG-IP-enheder, som gør angreb mere realistiske. Især blev der identificeret afvigelser i enhedernes adfærd ved tilstedeværelsen af et nul-byte i begyndelsen af den primære nøgle, som kan bruges i stedet for at måle den præcise tid forsinkelse ved beregninger.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster