Un groupe de chercheurs de l'UniversitĂ© de Californie Ă San Diego a dĂ©montrĂ© la possibilitĂ© de recrĂ©er des clĂ©s RSA privĂ©es d'hĂŽtes de serveur SSH, en utilisant l'analyse passive du trafic SSH. L'attaque peut ĂȘtre rĂ©alisĂ©e sur des serveurs oĂč, en raison de circonstances fortuites ou d'actions malveillantes, des pannes surviennent lors du calcul de la signature numĂ©rique lors de l'Ă©tablissement d'une connexion SSH. Les pannes peuvent ĂȘtre Ă la fois logicielles (exĂ©cution incorrecte d'opĂ©rations mathĂ©matiques, corruption de la mĂ©moire) et matĂ©rielles (erreurs de fonctionnement de la NVRAM et de la DRAM ou pannes liĂ©es aux interruptions d'alimentation).
L'une des maniĂšres de provoquer des pannes peut ĂȘtre des attaques de type RowHammer, parmi d'autres permettant, soit Ă distance, soit lors du traitement de code JavaScript dans le navigateur, de provoquer une dĂ©faillance de contenu des bits de mĂ©moire en raison de lectures cycliques intensives de donnĂ©es Ă partir de cellules de mĂ©moire voisines. Une autre mĂ©thode pour provoquer des pannes peut ĂȘtre l'exploitation de vulnĂ©rabilitĂ©s entraĂźnant des dĂ©bordements de tampon et la corruption de donnĂ©es clĂ©s en mĂ©moire.
Dans une étude publiée, il a été montré qu'en utilisant des signatures numériques basées sur l'algorithme RSA dans SSH, les paramÚtres de la signature numérique sont sujets à des attaques visant à recréer des clés RSA privées par la méthode Lattice (Fault Attack), en cas de pannes logicielles ou matérielles durant le processus de calcul de la signature. Le principe de la méthode consiste à comparer des signatures numériques RSA correctes et défaillantes pour déterminer le plus grand commun diviseur afin de déduire l'un des nombres premiers utilisés dans la formation de la clé.
La cryptographie RSA repose sur l'opĂ©ration d'exponentiation modulo un grand nombre. La clĂ© publique contient le module et l'exposant. Le module est constituĂ© Ă partir de deux nombres premiers alĂ©atoires, qui ne sont connus que du propriĂ©taire de la clĂ© privĂ©e. L'attaque peut ĂȘtre appliquĂ©e Ă des implĂ©mentations RSA utilisant le thĂ©orĂšme des restes chinois et des schĂ©mas de remplissage dĂ©terministes, tels que PKCS#1 v1.5.
Pour mener une attaque, il suffit d'une surveillance passive des connexions lĂ©gitimes au serveur SSH jusqu'Ă l'identification dans le trafic d'une signature numĂ©rique corrompue, qui peut ĂȘtre utilisĂ©e comme source d'informations pour reconstruire la clĂ© RSA privĂ©e. AprĂšs la reconstruction de la clĂ© RSA de l'hĂŽte, l'attaquant peut lors d'une attaque MITM rediriger discrĂštement les requĂȘtes vers un hĂŽte de substitution, se faisant passer pour le serveur SSH compromis et organiser l'interception des donnĂ©es transmises Ă celui-ci. serveur des donnĂ©es.
Ă la suite de l'Ă©tude d'une collection de donnĂ©es rĂ©seau interceptĂ©es, comprenant environ 5,2 milliards d'enregistrements liĂ©s Ă l'utilisation du protocole SSH, les chercheurs ont identifiĂ© environ 3,2 milliards de clĂ©s d'hĂŽtes et de signatures numĂ©riques ouvertes utilisĂ©es lors de la nĂ©gociation de sessions SSH. Parmi celles-ci, 1,2 milliard (39,1 %) ont Ă©tĂ© gĂ©nĂ©rĂ©es Ă l'aide de l'algorithme RSA. Dans 593671 cas (0,048 %), la signature RSA Ă©tait corrompue et ne passait pas la vĂ©rification. Pour 4962 signatures corrompues, il a Ă©tĂ© possible d'appliquer la mĂ©thode de factorisation Lattice pour dĂ©terminer la clĂ© secrĂšte Ă partir de la clĂ© publique connue, ce qui a finalement permis de reconstruire 189 paires uniques de clĂ©s RSA (dans de nombreux cas, les mĂȘmes clĂ©s et dispositifs corrompus ont Ă©tĂ© utilisĂ©s pour gĂ©nĂ©rer diffĂ©rentes signatures corrompues). La reconstruction des clĂ©s a nĂ©cessitĂ© environ 26 heures de temps processeur.

Le problÚme ne concerne que des implémentations spécifiques du protocole SSH, principalement utilisées sur des dispositifs intégrés. Parmi les exemples de dispositifs avec des implémentations SSH problématiques, citons les produits Zyxel, Cisco, Mocana et Hillstone Networks. OpenSSH n'est pas affecté au problÚme, car il utilise la bibliothÚque OpenSSL (ou LibreSSL) pour la génération de clés, qui dispose d'une protection contre les attaques fondées sur l'analyse des pannes (Fault Attack) depuis 2001. De plus, dans OpenSSH, le schéma de signatures numériques ssh-rsa (basé sur sha1) a été déclaré obsolÚte et désactivé dans la version 8.8 (le support des schémas rsa-sha2-256 et rsa-sha2-512 est maintenu). Potentiellement, l'attaque pourrait également s'appliquer au protocole IPsec, mais les chercheurs n'avaient pas de données expérimentales suffisantes pour confirmer l'existence d'une telle attaque en pratique.
Source : opennet.ru
