Vulnérabilité dans TLS, permettant la détermination de clé pour les connexions basées sur les chiffres DH

Dévoilé informations sur la nouvelle une vulnérabilité (CVE-2020-1968) dans le protocole TLS, surnommé
Raccoon et permettant, dans de rares circonstances, de dĂ©terminer la clĂ© primaire prĂ©liminaire (pre-master), qui peut ĂȘtre utilisĂ©e pour dĂ©chiffrer les connexions TLS, y compris HTTPS, lors de l'interception du trafic en transit (MITM). Il est Ă  noter que l'attaque est trĂšs difficile Ă  mettre en Ɠuvre dans la pratique et revĂȘt un caractĂšre plus thĂ©orique. Pour rĂ©aliser cette attaque, une configuration spĂ©cifique du serveur TLS et une capacitĂ© de mesure du temps de traitement des opĂ©rations par le serveur avec une grande prĂ©cision sont requises.

Le problÚme est directement présent dans la spécification TLS et ne concerne que les connexions utilisant des algorithmes basés sur le protocole d'échange de clés DH (Diffie-Hellman, TLS_DH_*). Avec les algorithmes ECDH, le problÚme ne se manifeste pas et ils restent sécurisés. Sont vulnérables uniquement les protocoles TLS jusqu'à la version 1.2 incluse, le protocole TLS 1.3 n'est pas affecté. La vulnérabilité se manifeste dans les implémentations TLS réutilisant la clé secrÚte DH dans différentes connexions TLS (ce comportement est observé sur environ 4,4 % des serveurs dans le classement Alexa Top 1M).

Dans OpenSSL 1.0.2e et les versions antĂ©rieures, la clĂ© primaire DH est rĂ©utilisĂ©e dans toutes les connexions serveur, sauf si l'option SSL_OP_SINGLE_DH_USE est spĂ©cifiquement activĂ©e. À partir d'OpenSSL 1.0.2f, la clĂ© primaire DH est rĂ©utilisĂ©e uniquement lors de l'utilisation d'algorithmes DH statiques (« DH-* », par exemple « DH-RSA-AES256-SHA »). Dans OpenSSL 1.1.1, la vulnĂ©rabilitĂ© ne se manifeste pas, car cette branche n'utilise pas la clĂ© primaire DH et n'applique pas d'algorithmes DH statiques.

Lors de l'utilisation de la méthode d'échange de clés DH, les deux parties de la connexion génÚrent des clés privées aléatoires (appellées respectivement clé « a » et clé « b »), à partir desquelles des clés publiques (ga mod p et gb mod p) sont calculées et envoyées. AprÚs réception des clés publiques par chaque partie, une clé primaire commune (gab mod p) est calculée, qui est utilisée pour former des clés de session. L'attaque Raccoon permet de déterminer la clé primaire en analysant les informations par des canaux extérieurs, en se basant sur le fait que dans les spécifications TLS jusqu'à la version 1.2, il est stipulé qu'il faut jeter tous les zéros initiaux de la clé primaire avant de procéder aux calculs impliquant celle-ci.

Y compris une clé primaire tronquée qui est transmise à la fonction de génération de clé de session, basée sur des fonctions de hachage présentant des latences différentes lors du traitement de diverses données. La mesure exacte du temps des opérations du serveur avec la clé permet à un attaquant de déterminer des indices (oracle) qui lui permettent de juger si la clé primaire commence par zéro ou non. Par exemple, l'attaquant peut intercepter la clé publique (ga) envoyée par le client, la renvoyer au serveur et déterminer
si la clé primaire résultante commence par zéro.

La dĂ©termination d’un seul octet de clĂ© n'apporte rien en soi, mais en interceptant la valeur « ga » transmise lors de l’établissement de la connexion par le client, l’attaquant peut former un ensemble d’autres valeurs liĂ©es Ă  « ga » et les envoyer au serveur dans des sessions d’établissement de connexion distinctes. En formant et en envoyant les valeurs « gri*ga », l’attaquant peut, par l’analyse des variations de latence dans la rĂ©ponse du serveur, dĂ©terminer les valeurs qui conduisent Ă  l’obtention de clĂ©s primaires commençant par zĂ©ro. En identifiant ces valeurs, l'attaquant peut Ă©tablir un ensemble d'Ă©quations pour concernant le problĂšme des nombres cachĂ©s et calculer la clĂ© primaire d'origine.

Vulnérabilité dans TLS, permettant la détermination de clé pour les connexions basées sur les chiffres DH

Dans OpenSSL, les vulnĂ©rabilitĂ©s sont attribuĂ©es Ă  un niveau de dangerositĂ© faible, et la correction a consistĂ© Ă  dĂ©placer dans la version 1.0.2w les chiffrements problĂ©matiques « TLS_DH_* » dans une catĂ©gorie de chiffrements dĂ©sactivĂ©e par dĂ©faut pour un niveau de protection insuffisant (« weak-ssl-ciphers »). Les dĂ©veloppeurs de Mozilla ont agi de la mĂȘme maniĂšre, ayant dĂ©sactivĂ© dans la bibliothĂšque NSS utilisĂ©e par Firefox, les ensembles de chiffrements DH et DHE. À partir de Firefox 78, les chiffrements problĂ©matiques sont dĂ©sactivĂ©s. Dans Chrome, le support de DH a Ă©tĂ© interrompu depuis 2016. Les bibliothĂšques BearSSL, BoringSSL, Botan, Mbed TLS et s2n ne sont pas affectĂ©es par le problĂšme, car elles ne prennent pas en charge les chiffrements DH ou les variantes statiques des chiffrements DH.

Des problĂšmes supplĂ©mentaires sont notĂ©s (CVE-2020-5929) dans la pile TLS des appareils F5 BIG-IP, rendant l'attaque plus rĂ©aliste. En particulier, des Ă©carts de comportement des appareils ont Ă©tĂ© dĂ©tectĂ©s lorsque un octet nul se trouve au dĂ©but de la clĂ© primaire, ce qui peut ĂȘtre utilisĂ© Ă  la place de la mesure prĂ©cise du temps de latence lors des calculs.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster