Des chercheurs ont dcouvert une faille dans le protocole SSH qui permet de rcuprer les cls prives des serveurs lorsquil y a des erreurs de calcul pendant la connexion. Cette faille concerne les cls RSA, qui reprsentent environ un tiers des signatures SSH utilises sur Internet. Les chercheurs ont russi extraire prs de 200 cls prives partir de signatures dfectueuses quils ont collectes pendant sept ans. Cette faille pourrait aussi affecter les connexions IPsec, qui utilisent un protocole similaire SSH.
Cette dcouverte est surprenante car les logiciels SSH sont censs vrifier les erreurs de signature avant de les envoyer, et car les attaquants passifs ne devraient pas avoir accs certaines informations ncessaires pour exploiter la faille. Une autre raison de cette surprise est que, jusqu’ prsent, les chercheurs pensaient que les dfauts de signature n’exposaient que les cls RSA utilises dans le protocole TLS (Transport Layer Security) qui chiffre les connexions Web et de courrier lectronique. Ils pensaient que le trafic SSH tait l’abri de telles attaques parce que les attaquants passifs – c’est–dire les adversaires qui se contentent d’observer le trafic – ne pouvaient pas voir certaines des informations ncessaires lorsque les erreurs se produisaient.
SSH, ou Secure Shell Protocol, est un protocole d’administration distance qui permet aux utilisateurs d’accder leurs serveurs distants, de les contrler et de les modifier via l’internet. Le service SSH a t cr pour remplacer de manire scurise le protocole Telnet non chiffr et utilise des techniques cryptographiques pour garantir que toutes les communications vers et depuis le serveur distant sont chiffres. Il fournit un mcanisme d’authentification d’un utilisateur distant, de transfert des donnes du client vers l’hte et de retransmission des donnes de sortie au client.
Le principal avantage de SSH par rapport ses prdcesseurs est l’utilisation du chiffrement pour garantir un transfert scuris des informations entre l’hte et le client. L’hte dsigne le serveur distant auquel vous essayez d’accder, tandis que le client est l’ordinateur que vous utilisez pour accder l’hte. Il existe trois technologies de chiffrement diffrentes utilises par SSH :
- le chiffrement symtrique
- Chiffrement asymtrique
- Hachage
La vulnrabilit se produit lorsqu’il y a des erreurs lors de la gnration de la signature qui a lieu lorsqu’un client et un serveur tablissent une connexion. Elle n’affecte que les cls utilisant l’algorithme cryptographique RSA, que les chercheurs ont trouv dans environ un tiers des signatures SSH qu’ils ont examines. Cela reprsente environ 1 milliard de signatures sur les 3,2 milliards de signatures examines. Sur ces quelque 1 milliard de signatures RSA, environ une sur un million exposait la cl prive de l’hte.
Les chercheurs ont not que depuis la version 2018 de TLS 1.3, le protocole a chiffr les messages d’change se produisant pendant la ngociation d’une session Web ou d’une session de courrier lectronique. Cela a agi comme une contre-mesure supplmentaire protgeant la compromission de la cl en cas d’erreur de calcul. Keegan Ryan, chercheur l’universit de Californie San Diego et l’un des auteurs de la recherche, a suggr qu’il tait peut-tre temps pour d’autres protocoles d’inclure la mme protection supplmentaire.
Bien que le protocole SSH existe depuis prs de 18 ans et qu’il soit trs largement dploy, nous trouvons toujours de nouveaux moyens d’exploiter les erreurs dans les protocoles cryptographiques et d’identifier les implmentations vulnrables. Dans nos donnes, environ une signature SSH sur un million exposait la cl prive de l’hte SSH. Bien que cela soit rare, l’norme quantit de trafic sur Internet implique que ces failles RSA dans SSH se produisent rgulirement. Mme si la grande majorit des connexions SSH ne sont pas affectes, il est toujours important de se dfendre contre ces dfaillances. Il suffit d’une mauvaise signature dans une implmentation non protge pour rvler la cl.
Il est heureux que les implmentations SSH les plus populaires incluent des contre-mesures pour empcher les erreurs de signature RSA de conduire une fuite de cl catastrophique, mais les implmentations qui ne l’ont pas fait taient tout de mme assez courantes pour apparatre dans nos donnes.
En 1996 et 1997, des chercheurs ont publi des rsultats qui, pris ensemble, concluaient que lorsque des erreurs de calcul naturelles entranaient une seule signature RSA errone, un cybercriminel pouvait l’utiliser pour calculer la partie prive de la paire de cls sous-jacente.
Fonctionnement des signatures RSA
Les signatures RSA utilisent des techniques mathmatiques pour garantir l’intgrit des donnes (messages ou documents). Le systme cryptographique cl publique RSA fournit un systme de signature numrique (sign + verify), bas sur les mathmatiques des exponentiations modulaires et des logarithmes discrets et sur la difficult de calcul du problme RSA (et de son problme connexe de factorisation des nombres entiers). L’algorithme de signature/vrification RSA fonctionne comme dcrit ci-dessous.
L’algorithme RSA utilise des cls de 1024, 2048, 4096, …, 16384 bits. RSA prend galement en charge des cls plus longues (par exemple 65536 bits), mais les performances sont trop lentes pour une utilisation pratique (certaines oprations peuvent prendre plusieurs minutes, voire plusieurs heures). Pour un niveau de scurit de 128 bits, une cl de 3072 bits est ncessaire.
La paire de cls RSA se compose de
- cl publique {n, e}
- cl prive {n, d}
Les nombres n et d sont gnralement de grands entiers (par exemple 3072 bits), tandis que e est petit, typiquement 65537. Par dfinition, les paires de cls RSA ont la proprit suivante :
(me)d≡(md)e≡m(modn) pour tout m dans l‘intervalle [0...n)
Signer un message msg avec la cl prive d’exposant d :
Calculer le hachage du message : h = hash(msg)chiffrer h pour calculer la signature : s=hd(modn)
Le hachage h doit tre compris dans l’intervalle [0…n). La signature obtenue s est un entier compris dans l’intervalle [0…n).
Vrification de la signature RSA
Vrification d’une signature s pour le message msg avec l’exposant e de la cl publique :
- Calculer le hachage du message : h = hash(msg)
- Dchiffrer la signature : h′=se(modn)
- Comparer h avec h’ pour savoir si la signature est valide ou non
Si la signature est correcte, les lments suivants seront vrais :
h′=se(modn)=(hd)e(modn)=h
Les chercheurs dmontrent qu’une attaque de rseau indirecte peut opportunment obtenir des cls d’hte RSA prives partir d’un serveur SSH qui subit un dfaut d’origine naturelle lors du calcul de la signature. Dans des travaux antrieurs, cela n’tait pas considr comme possible pour le protocole SSH parce que la signature comprenait des informations telles que le secret Diffie Hellman partag qui ne seraient pas disponibles pour un observateur passif du rseau.
Attaques par dfaut RSA
Si une implmentation de signature utilisant CRT-RSA prsente un dfaut pendant le calcul de la signature, un cybercriminel qui observe cette signature peut la modifier. Ces attaques exploitent le fait que si un terroriste fait un calcul en utilisant le module d’un facteur primaire, par exemple q, la signature invalide qui en rsulte est quivalente la signature correcte en utilisant le facteur primaire p, mais pas q.
En comparant la signature malforme une signature valide, un cybercriminel peut effectuer une opration mathmatique de type PGDC (plus grand dnominateur commun) qui, son tour, permettait de driver l’un des nombres premiers la base de la scurit de la cl. C’est ainsi qu’est ne une srie d’attaques reposant sur le dclenchement actif d’erreurs pendant la ngociation de la session, la capture de la signature errone qui en rsulte et, finalement, la compromission de la cl. Le dclenchement des erreurs repose sur des techniques telles que la manipulation de l’alimentation lectrique d’un ordinateur ou l’application d’un laser sur une carte puce.
Dans un rapport technique de 2015, un chercheur a montr pour la premire fois que les attaques sur les cls utilises pendant les sessions TLS taient possibles mme lorsqu’un adversaire n’avait pas d’accs physique l’appareil informatique. L’attaquant pouvait simplement se connecter l’appareil et attendre de manire opportuniste qu’une dfaillance se produise pendant le calcul. (Il a attribu plusieurs des dfaillances qu’il a observes un matriel dfaillant. )
On pensait que les attaquants qui observent le trafic sans y participer ne pouvaient pas analyser les cls cryptographiques utilises par SSH et IP, contrairement ceux qui interviennent dans les changes Diffie-Hellman. Or, ces attaquants passifs peuvent accder des donnes plus sensibles que les attaquants actifs. Cette erreur de jugement sous-estimait donc grandement le risque que reprsentaient ces attaquants passifs pour la scurit de SSH et IP par rapport TLSv1.2.
Malgr lexistence de mesures de protection dans la plupart des versions de TLS depuis deux dcennies, des chercheurs ont russi trouver des signatures errones en analysant le trafic sans y interfrer. Ces signatures leur ont permis de dchiffrer les cls RSA utilises par certains VPN, appareils de rseau et sites web, y compris des sites importants.
Comme indiqu prcdemment, les chercheurs n’avaient aucune preuve que des attaques passives exploitant des erreurs de signature taient possibles lorsque le trafic tait transmis par des protocoles non TLS tels que SSH ou IPsec. La raison en est que le hachage cryptographique de la signature de ces derniers protocoles comprend un secret partag gnr par l’change de cls Diffie-Hellman.
Les chercheurs ont utilis une mthode cryptographique sophistique base sur les mmes principes mathmatiques que la cryptographie avec des treillis pour contourner le problme du manque de donnes cls dans les signatures SSH errones. Cette mthode avait t propose en 2009, mais elle navait jamais t mise en pratique pour extraire une cl partir dune signature incomplte.
Source : Universitaires de Californie, San Diego et du MIT
Et vous ?
Les dmonstrations des chercheurs sur la vulnrabilit des cls cryptographiques sont-elles pertinentes ?
Quel est votrez avis surle sujet ?
Voir aussi :