Des chercheurs de l'UniversitĂ© de Californie Ă San Diego ont dĂ©veloppĂ© une technique avancĂ©e pour attaquer l'algorithme RSA, permettant de falsifier des signatures numĂ©riques sans avoir besoin de factoriser les nombres premiers sous-jacents Ă RSA ni de rĂ©cupĂ©rer la clĂ© privĂ©e. Les ressources nĂ©cessaires pour mener Ă bien une attaque sur une clĂ© RSA de 1024 bits sont Ă©valuĂ©es Ă 1380 ans de calculs sur un cĆur de processeur, ce qui a permis, sur le cluster universitaire, de dĂ©terminer en 5 mois les paramĂštres nĂ©cessaires pour gĂ©nĂ©rer des signatures RSA fictives (aucun accĂ©lĂ©rateur AI ni GPU n'a Ă©tĂ© utilisĂ© dans l'expĂ©rience, et avec leur utilisation, le temps de calcul peut ĂȘtre considĂ©rablement rĂ©duit). En comparaison, la mĂ©thode classique de factorisation nĂ©cessite entre 500 000 et un million d'annĂ©es de calculs sur un cĆur de processeur pour restaurer la clĂ© privĂ©e RSA-1024.
Pour mener l'attaque, il est nĂ©cessaire de pouvoir envoyer plusieurs fois des demandes de signature des donnĂ©es gĂ©nĂ©rĂ©es par l'attaquant, par exemple en interrogeant un service d'autorisation ou un module HSM. Pour dĂ©terminer les paramĂštres RSA-1024, il suffit d'envoyer 232 demandes similaires, et pour attaquer les clĂ©s RSA-2048 utilisĂ©es dans le protocole Privacy Pass, 243. Une fois le tableau de donnĂ©es signĂ©es obtenu, un long processus de calcul des paramĂštres est lancĂ© (environ 265 opĂ©rations pour RSA-1024), aprĂšs quoi l'attaquant peut crĂ©er de fausses signatures pour n'importe quelles donnĂ©es, dĂ©pensant environ 180 heures de calculs sur un cĆur pour chaque signature.
La méthode n'est applicable qu'aux signatures RSA qui ne utilisent pas de formatage et de remplissage supplémentaire avant le chiffrement (padding). Les implémentations de signature aveugle, y compris celles utilisées dans le protocole Privacy Pass, sont vulnérables à cette attaque. La plupart des implémentations courantes de RSA, y compris PKCS#1v1.5 et RSA-PSS (utilisées dans TLS et SSH), appliquent un remplissage supplémentaire et ne sont pas vulnérables à cette attaque.
L'algorithme de chiffrement RSA repose sur l'opĂ©ration d'exponentiation modulaire d'un grand nombre. La clĂ© publique contient le module et l'exposant. Le module est formĂ© Ă partir de deux nombres premiers alĂ©atoires, qui ne sont connus que du possesseur de la clĂ© privĂ©e. La mĂ©thode proposĂ©e repose sur une Ă©tude publiĂ©e en 2007, qui a dĂ©montrĂ© que l'extraction de la racine d'un message chiffrĂ© Ă l'exposant indiquĂ© dans la clĂ© publique, sans information sur les multiplicateurs secrets, est une opĂ©ration moins gourmande en ressources que la factorisation des multiplicateurs eux-mĂȘmes.
En utilisant une méthode spéciale de crible sur les corps numériques (SNFS), les chercheurs ont réussi à réduire la complexité de la compromission des clés RSA-1024 à 265 opérations, ce qui permet de réaliser des attaques pratiques sur des clusters modernes. Pour les clés RSA de 2048 bits, la complexité de l'attaque est estimée à 290, ce qui est théoriquement réalisable par de grandes entreprises ou des services secrets. Pour les clés de 4096 bits, la complexité de l'attaque est de 2119 opérations, ce qui, dans la pratique, est encore inaccessibile, mais reste en dessous du minimum de 2128 recommandé par la NSA, l'Institut national des standards et de la technologie et l'Agence européenne de la sécurité des réseaux et de l'information.
Source : opennet.ru
