
Une équipe de chercheurs universitaires de Californie et du Massachusetts a démontré qu’il est possible, sous certaines conditions, pour des attaquants de réseau passifs de récupérer des clés RSA secrètes à partir d’erreurs naturelles conduisant à des tentatives de connexion SSH (secure shell) infructueuses.
SSH est un protocole réseau cryptographique pour la communication sécurisée, largement utilisé pour l’accès au système à distance, les transferts de fichiers et les tâches d’administration système.
RSA est un système de cryptage à clé publique utilisé dans SSH pour l’authentification des utilisateurs. Il utilise une clé privée et secrète pour déchiffrer les communications chiffrées avec une clé publique partageable.
Exposer les erreurs matérielles
Un article publié par les chercheurs universitaires Keegan Ryan, Kaiwen He, Nadia Heninger et George Arnold Sullivan montre qu’il est possible pour un attaquant de réseau passif d’obtenir une clé RSA privée à partir de serveurs SSH rencontrant des erreurs lors du calcul de la signature.
« Si une implémentation de signature utilisant CRT-RSA présente un défaut lors du calcul de la signature, un attaquant qui observe cette signature peut être en mesure de calculer la clé privée du signataire », expliquent les chercheurs dans le document technique.
Le théorème du reste chinois (CRT) est utilisé avec l’algorithme RSA pour réduire la taille en bits de la clé publique et accélérer le temps de décryptage.
« Ces attaques exploitent le fait que si une erreur est commise lors du calcul modulo un premier, disons q, alors la signature invalide « s » qui en résulte est équivalente à la signature correcte modulo un facteur premier p, mais pas q », expliquent en outre les chercheurs. .
Bien que les erreurs de ce type soient rares, elles sont inévitables en raison de défauts matériels. Disposant d’un pool de données suffisamment important, un attaquant peut trouver et exploiter de nombreuses opportunités d’exploitation.
Il s’agit d’un problème connu qui affecte les anciennes versions de TLS. Ce problème a été résolu dans TLS 1.3 en chiffrant la poignée de main qui établit la connexion, empêchant ainsi les oreilles indiscrètes passives de lire les signatures.
SSH était auparavant supposé être à l’abri de cette attaque, mais les chercheurs ont prouvé qu’il est possible de récupérer les secrets RSA à l’aide d’attaques basées sur un réseau qui récupèrent la clé privée à partir de noms occasionnels partiellement connus.
Les chercheurs notent que leurs tests n’incluent pas de résultats « pour RSA-1024, SHA512 car le nombre de bits inconnus dans le hachage est bien au-delà de ce que nous pouvons résoudre par force brute ou avec des treillis ».
Ils ajoutent cependant que « l’attaque en treillis est assez efficace » et que leurs tests ont eu un taux de réussite de 100 %.

Grâce à leur attaque en treillis, les chercheurs ont réussi à trouver 4 962 signatures invalides révélant la factorisation de la clé publique RSA correspondante, permettant ainsi la récupération de clés privées correspondant à 189 clés publiques RSA uniques.
La plupart des secrets récupérés provenaient d’appareils dotés d’implémentations vulnérables, le plus grand nombre de signatures provenant d’appareils Zyxel.

Les chercheurs ont révélé le problème à Cisco et Zyxel plus tôt cette année et les fournisseurs ont enquêté sur la cause.
Cisco a déterminé qu’une atténuation appropriée avait été introduite l’année dernière dans les logiciels Cisco ASA et FTD. La société a déclaré aux chercheurs qu’elle étudiait des mesures d’atténuation dans les logiciels Cisco IOS et IOS XE.
Zyxel a découvert que la version du micrologiciel ZLD utilisée par les chercheurs dans l’expérience était passée à OpenSSL, ce qui élimine tout risque.
Les chercheurs préviennent que si les implémentations de signature utilisant l’algorithme du théorème du reste chinois (CRT) avec RSA présentent un défaut lors du calcul de la signature, un attaquant observant la signature pourrait être en mesure d’ordinateur la clé privée du signataire.
Pour contrer la capacité d’un attaquant à récupérer la clé secrète, les chercheurs recommandent des implémentations qui valident les signatures avant de les envoyer, comme la suite OpenSSH qui s’appuie sur OpenSSL pour générer des signatures.