L’attaque Marvin, le retour d’une vulnérabilité vieille de 25 ans dans le RSA
Une faille de sécurité découverte en 1998 dans le standard de cryptographie à clé publique "PKCS #1 v1.5" refait surface aujourd'hui et elle impacte des projets populaires comme OpenSSL. Faisons le point.
Lors de tests sur des opérations de chiffrement, les chercheurs en sécurité de Red Hat ont découvert qu'il était toujours possible d'exploiter une faille de sécurité connue et présente dans PKCS #1 v1.5, lié aux certificats SSL. Elle a été découverte il y a 25 ans par Daniel Bleichenbacher.
Ils estiment que de nombreux projets sont affectés : "Nous montrons que de nombreuses implémentations que l'on croyait immunisées sont vulnérables à la variante temporelle de la même attaque.", peut-on lire dans leur publication. En exploitant cette vulnérabilité, un attaquant peut déchiffrer du RSA, falsifier les signatures et même déchiffrer les sessions enregistrées sur un serveur TLS vulnérable.
Bien que le RSA soit pris comme exemple, cette technique, baptisée Marvin Attack, fonctionnerait avec les autres algorithmes cryptographiques asymétriques : "Si les serveurs TLS sont le principal vecteur de l'attaque, les problèmes fondamentaux à l'origine de sa généralisation s'appliquent à la plupart des algorithmes cryptographiques asymétriques (Diffie-Hellman, ECDSA, etc.), et pas seulement à RSA."
Pour réaliser cette attaque, il n'est pas nécessaire d'avoir du matériel surpuissant. D'après les chercheurs, quelques heures suffisent avec du matériel standard. D'après les tests effectués, les projets suivants sont vulnérables à l'attaque Marvin :
- OpenSSL (TLS level) : CVE-2022-4304
- OpenSSL (API level) : pas de CVE
- GnuTLS (TLS level) : CVE-2023-0361
- NSS (TLS level) : CVE-2023-4421
- pyca/cryptography : CVE-2020-25659
- M2Crypto : CVE-2020-25657
- OpenSSL-ibmca : pas de CVE
- Go : pas de CVE
- GNU MP : pas de CVE
Comme le montre la liste ci-dessus, il n'y a pas de référence CVE unique pour cette vulnérabilité puisque le correctif dépend de chaque implémentation au sein de chaque projet. Les chercheurs déconseillent l'utilisation du chiffrement RSA PKCS#1 v1.5.
Le correctif ne se situe pas du côté du navigateur ou de l'application, puisque c'est du côté serveur que les modifications sont à apporter. Pour en savoir plus, vous pouvez consulter la FAQ publiée par les chercheurs de Red Hat.