Une faille liée au remplissage PKCS #1 v1.5 dans les serveurs SSL découverte en 1998 et que l’on pense avoir été résolue affecte encore aujourd’hui plusieurs projets largement utilisés.
Après des tests approfondis mesurant les opérations de bout en bout, les chercheurs de Red Hat ont découvert plusieurs variantes de l’attaque temporelle originale, collectivement appelées « attaque Marvin », qui peuvent efficacement contourner les correctifs et les atténuations.
Le problème permet aux attaquants de potentiellement déchiffrer les textes chiffrés RSA, de forger des signatures et même de décrypter les sessions enregistrées sur un serveur TLS vulnérable.
En utilisant du matériel standard, les chercheurs ont démontré qu’il est possible d’exécuter l’attaque Marvin en quelques heures seulement, prouvant ainsi son caractère pratique.
Red Hat prévient que la vulnérabilité ne se limite pas à RSA mais s’étend à la plupart des algorithmes cryptographiques asymétriques, les rendant vulnérables aux attaques par canal secondaire.
Sur la base des tests effectués, les implémentations suivantes sont vulnérables à l’attaque Marvin :
- OpenSSL (niveau TLS): Synchronisation d’Oracle dans le décryptage RSA – CVE-2022-4304
- OpenSSL (niveau API): Rendre l’API de décryptage RSA sûre à utiliser avec le remplissage PKCS#1 v1.5 – Pas de CVE
- GnuTLS (niveau TLS): Les temps de réponse aux textes chiffrés RSA mal formés dans ClientKeyExchange diffèrent des temps de réponse des textes chiffrés avec un remplissage PKCS#1 v1.5 correct. -CVE-2023-0361
- NSS (niveau TLS): Améliorer la rapidité constante des opérations RSA. -CVE-2023-4421
- pyca/cryptographie: Tentative d’atténuer les attaques de Bleichenbacher sur le décryptage RSA ; jugé inefficace ; nécessite à la place un correctif de niveau OpenSSL. -CVE-2020-25659
- M2Crypto: Atténuez les attaques de synchronisation de Bleichenbacher dans l’API de décryptage RSA ; jugé inefficace ; nécessite à la place un correctif de niveau OpenSSL. -CVE-2020-25657
- OpenSSL-ibmca: Correctifs à temps constant pour RSA PKCS#1 v1.5 et remplissage OAEP dans la version 2.4.0 – Pas de CVE
- Aller: crypto/rsa DecryptPKCS1v15SessionKey a une fuite limitée – Pas de CVE
- Député GNU: mpz_powm_sec ne perd aucun bit de poids fort dans le résultat – Pas de CVE
L’attaque Marvin n’a pas de CVE correspondant malgré la mise en évidence d’une faille fondamentale dans le décryptage RSA, principalement la façon dont les erreurs de remplissage sont gérées, en raison de la variété et de la complexité des implémentations individuelles.
Ainsi, bien que l’attaque Marvin soit un défaut conceptuel, il n’existe pas de correctif ou de correctif unique pouvant être appliqué universellement, et le problème se manifeste différemment sur chaque projet en raison de leurs bases de code uniques et de la mise en œuvre du décryptage RSA.
Les chercheurs déconseillent d’utiliser le cryptage RSA PKCS#1 v1.5 et encouragent les utilisateurs concernés à rechercher ou à demander aux fournisseurs de proposer des solutions alternatives de compatibilité ascendante.
Désactiver simplement RSA ne signifie pas que vous êtes en sécurité, prévient le Section questions-réponses de la page de Marvin Attack.
Le risque est le même si la clé ou le certificat RSA est utilisé ailleurs sur un serveur qui le prend en charge (SMTP, IMAP, serveurs de messagerie POP et serveurs HTTPS secondaires).
Enfin, Red Hat prévient que la certification FIPS ne garantit pas une protection contre l’Attaque Marvin, à l’exception de la certification Niveau 4, qui assure une bonne résistance aux attaques par canal secondaire.
Bien qu’il n’y ait eu aucun signe apparent d’utilisation de Marvin Attack par des pirates informatiques, la divulgation des détails et de certaines parties des tests et du fuzzing du code augmente le risque que cela se produise sous peu.
Pour ceux qui souhaitent plonger dans les détails plus techniques de Marvin Attack, un document publié il y a quelques mois approfondit le problème et les tests effectués pour en apprécier l’impact.