[ALERTE CERT] ROCA : Vulnérabilité RSA Infineon

Azmi Sbai Alerte CERT

Une vulnérabilité a été identifiée le 16 Octobre 2017 par des chercheurs de l’université Masaryk à Brno (République Tchèque) dans la bibliothèque cryptographique de génération des clés RSA développée par Infineon Technologies AG:

Impact & produit affecté

Le risque associé est critique car cette vulnérabilité permet à un attaquant potentiel de trouver la clé privée à partir de la clé publique (si la paire de clés est générée par la bibliothèque Infineon RSA). Ainsi, l’attaquant pourra déchiffrer le trafic et forger de fausses signatures avec la clé privée récupérée.

La version 1.02.013 de la bibliothèque Infineon RSA et les Infineon TPM ne génèrent pas correctement les paires de clés RSA. En conséquence, l’espace de clés requis pour une recherche exhaustive est réduit de sorte qu’il soit possible de factoriser des clés de tailles inférieures ou égales à 2048 bits afin de récupérer la clé privée.

Les chercheurs ont estimé la complexité de cassage en temps et en coût  en fonction des longueurs de clés avec un  processeur Intel E5-2650 v3 @ 3GHz Q2:

  • Clé RSA 512 bit – 2  heures CPU ;
  • Clé RSA 1024 bit – 97  jours CPU;
  • Clé RSA 2048 bit – 140.8 années CPU;

L’impact réel de la vulnérabilité dépend du scénario d’utilisation, de la disponibilité des clés publiques et de la taille de leur modulo. Les chercheurs ont trouvé 760 000 clés vulnérables dans divers domaines y compris : les documents citoyens électroniques, les jetons d’authentification, la signature des paquets logiciels, les cartes à puces, les clés TLS, SSH et PGP.

Les chercheurs ont publié un outil « ROCA detection tool » qui permet de détecter si une clé RSA publique/privée est vulnérable à cette attaque. L’outil supporte plusieurs formats d’entrée : X509 (*.der, *.crt, *.prem), RSA PEM *.pem, SSH *.pub, ASC encoded PGP Key (*.pgp, *.asc) …

Recommandations

Les équipes du CERT Devoteam recommandent de :

  • s’assurer que la génération des clés n’est pas gérée par une bibliothèque ou une puce reconnu comme vulnérable
  • tester ses clés à l’aide de l’outil fourni dans un environnement clos
  • générer (si applicable) des nouvelles clés RSA de taille minimum 3072 bits en utilisant une bibliothèque cryptographique considérée comme étant non vulnérable (OpenSSL)
  • en cas de gestion de PKI, s’assurer que la hiérarchie n’est pas affectée et que les clés vulnérables ont été révoquées.