Des chercheurs de l'institut national de recherche en informatique et en automatique (INRIA) en France et de l'Université technologique de Nanyang (Singapour) ont présenté une méthode d'attaque (), qui est présentée comme la première mise en œuvre pratique d'une attaque contre l'algorithme SHA-1, pouvant être utilisée pour créer de fausses signatures numériques PGP et GnuPG. Les chercheurs estiment que toutes les attaques pratiques sur MD5 peuvent désormais s'appliquer à SHA-1, bien qu'elles nécessitent encore des ressources considérables pour être mises en œuvre.
La méthode est basée sur la réalisation , permettant de trouver des compléments pour deux ensembles de données arbitraires, de sorte qu'en les ajoutant, on obtienne des ensembles provoquant une collision, l'application de l'algorithme SHA-1 menant à la formation du même hash de résultat. En d'autres termes, pour deux documents existants, il est possible de calculer deux compléments, et si l'un est ajouté au premier document et l'autre au second, les hashes SHA-1 résultants de ces fichiers seront identiques.
La nouvelle méthode se distingue des techniques similaires précédemment proposées par une efficacité accrue dans la recherche de collisions et la démonstration d'une application pratique pour une attaque sur PGP. En particulier, les chercheurs ont pu préparer deux clés PGP publiques de tailles différentes (RSA-8192 et RSA-6144) avec des identifiants utilisateurs différents et des certificats provoquant une collision SHA-1. incluait l'identifiant de la victime, tandis que incluait le nom et l'image de l'attaquant. Grâce à la recherche de collisions, le certificat d'identification des clés, incluant la clé et l'image de l'attaquant, avait le même hash SHA-1 que le certificat d'identification incluant la clé et le nom de la victime.
L'attaquant pouvait demander une signature numérique pour sa clé et son image à un tiers certificat d'autorité, puis transférer la signature numérique pour la clé de la victime. La signature numérique reste valable grâce à la collision et à la certification de la clé de l'attaquant par l'autorité de certification, permettant à l'attaquant de prendre le contrôle de la clé au nom de la victime (car le hash SHA-1 des deux clés est identique). Ainsi, l'attaquant peut se faire passer pour la victime et signer tout document en son nom.
L'attaque demeure encore assez coûteuse, mais elle est désormais accessible aux agences de renseignement et aux grandes entreprises. Pour une simple recherche de collision avec un GPU NVIDIA GTX 970 moins cher, les coûts se sont élevés à 11 000 dollars, tandis que pour la recherche de collision avec un préfixe donné, cela a atteint 45 000 dollars (à titre de comparaison, en 2012, le coût de la recherche de collision dans SHA-1 était estimé à 2 millions de dollars, et en 2015, à 700 000). Pour réaliser une attaque pratique sur PGP, il a fallu deux mois de calculs impliquant 900 GPU NVIDIA GTX 1060, dont la location a coûté aux chercheurs 75 000 dollars.
La méthode de détection de collisions proposée par les chercheurs est environ 10 fois plus efficace que les réalisations précédentes — le niveau de difficulté des calculs de collision a été réduit à 261,2 opérations, au lieu de 264,7, et les collisions avec un préfixe donné à 263,4 opérations au lieu de 267,1. Les chercheurs recommandent de passer au plus vite de SHA-1 à l'utilisation de SHA-256 ou SHA-3, car selon leurs prévisions, le coût d'une attaque tombera à 10 000 dollars en 2025.
Les développeurs de GnuPG ont été informés du problème le 1er octobre (CVE-2019-14855) et le 25 novembre, lors de la sortie de GnuPG 2.2.18, ont pris des mesures pour bloquer les certificats problématiques — toutes les signatures numériques identifiant en SHA-1 créées après le 19 janvier de l'année dernière sont maintenant jugées invalides. CAcert, l'un des principaux organismes certificateurs pour les clés PGP, prévoit de passer à des fonctions de hachage plus sûres pour la certification des clés. En réponse aux informations sur cette nouvelle méthode d'attaque, les développeurs d'OpenSSL ont décidé de désactiver SHA-1 au premier niveau de sécurité proposé par défaut (SHA-1 ne pourra pas être utilisé pour des certificats et des signatures numériques lors de l'établissement des connexions).
Source : opennet.ru
