SHA-1 a été craqué par un nouvel exploit

Une preuve de concept a été créée pour une attaque qui casse le Secure Hash Algorithm 1 (SHA-1), l’algorithme de chiffrement utilisé pour signer des certificats qui authentifient les logiciels téléchargés et protègent contre les attaques man-in-the-middle.

L’exploit a été développé par Gaëtan Leurent et Thomas Peyrin, des chercheurs d’Inria France et de l’université technologique Nanyang/Laboratoires Temasek à Singapour. Ils ont précisé que parce que l’attaque est beaucoup moins complexe et moins onéreuse que les précédentes preuves de concept, cela rend cette attaque disponible aux individus ordinaires qui ont des ressources normales.

“Cela prouve une fois pour toute que SHA-1 ne devrait pas être utilisé dans des protocoles de sécurité où la résistance aux collisions est nécessaire dans la fonction de hash,” ont écrit les chercheurs. “Continuer d’utiliser SHA-1 pour les certificats ou pour l’authentification de messages handshakes dans TLS ou SSH est dangereux, et il y’a un risque d’abus venant d’un individu motivé. SHA-1 a été craqué depuis 2004, mais est encore utilisé dans de nombreux systèmes de sécurité; nous vous recommandons fortement de vous débarrasser de SHA-1 pour éviter les attaques.”

Etant donné les empreintes de SHA-1, Leurent et Peyrin ont déclaré que les utilisateurs de GnuPG, OpenSSL et Git pourrait être en danger. Et, dans les scénarios de compatibilité descendante, les utilisateurs peuvent rencontrer des connexions chiffrées rétrogradées à la fonction de hachage obsolète, ce qui ouvre la porte aux attaques même dans les cas où SHA-1 n’est pas activé par défaut.

SHA-1 s’accroche

SHA-1, développé par NIST, a disparu au cours des 5 dernières années car de plus en plus d’attaques voient le jour. Microsoft a annoncé l’année dernière qu’ils ne distribueraient plus de mises à jour du système d’exploitation Windows en utilisant SHA-1, citant l’existence d’attaques de collision contre SHA-1 comme principale raison. Les collisions se produisent quand un individu est capable de générer un certificat avec la même signature que le certificat original.

La plupart des navigateurs et applications ne reconnaissent plus les certificats signés avec SHA-1, peu d’autorités de certificats l’utilisent encore, et NIST s’en est débarrassé depuis 2011 mais cette nouvelle preuve de concept est inquiétante car SHA-1 est encore utilisé par un nombre non-négligeable de personnes.

En particulier, Pretty Good Privacy (PGP), un programme de chiffrement utilisé pour signer, chiffrer et déchiffrer des textes, e-mails, fichiers, dossiers et partitions de disque. Il joue un énorme rôle dans la sécurité des communications par e-mail et utilise encore SHA-1 par défaut.

“C’est toujours la fonction de hachage par défaut pour certifier les clés PGP dans la version legacy 1.4 de GnuPG, le successeur libre de l’application PGP pour chiffrer les e-mails et les fichiers,” ont expliqué les chercheurs de Venafi dans un article analysant la preuve de concept.

sha-1 pgp

Mais ce n’est pas la seule application. Les chercheurs de Venafi ont ajouté: “Git, le système le plus utilisé pour gérer le développement de logiciel utilise encore SHA-1 pour assurer l’intégrité des données. Et beaucoup d’applications qui utilisent le chiffrement HTTPS acceptent encore les certificats SHA-1. SHA-1 est aussi utilisé pour les signatures intra-protocole dans les protocoles TLS et SSH.”

Une Collision Majeure

L’exploit, qui se concentre sur PGP, est une autre attaque de collision, mais qui est beaucoup plus simple à effectuer que pour les précédentes preuves de concept. En s’aidant des exploits précédents, les chercheurs se sont concentrés sur l’efficacité de l’attaque pour la rendre plus facile à exécuter.

“Notre travail montre que SHA-1 est complètement cassé pour l’utilisation de signatures digitales,” ont écrit Leurent et Peyrin dans leur papier de recherche. Ils ont ajouté: “Nous avons réussi à réduire significativement la complexité des attaques de collisions contre SHA-1: sur une Nvidia GTX 970, les collisions à préfixe identique peuvent désormais être calculées avec une complexité de 2^61,2 plutôt que de 2^64,7 , et les collisions à préfixe choisi avec une complexité de 2^63,4 plutôt que de 2^67.”

L’attaque permet donc de se faire passer pour un utilisateur légitime en créant une clé PGP identique à la clé de la victime. Cela permet ensuite au pirate d’intercepter les communications par e-mail, de lancer des attaques man-in-the-middle, prendre le contrôle de sessions et bien d’autres choses encore.

Les chercheurs ont expliqué:

“En exploitant les propriétés de OpenPGP et du format JPEG, nous pouvons créer 2 clés publiques: une clé A avec le nom de la victime et une clé B avec le nom du hacker et une image, de manière à ce que le certificat d’identité contenant la clé du hacker et son image ait le même hash SHA-1 que le certificat contenant la clé de la victime et son nom. Donc le hacker peut demander une signature de sa clé et de son image à un parti tiers (du Web of Trust ou d’une autorité de certificat) et transférer la signature à a clé A. La signature sera toujours valide à cause de la collision, alors que le hacker contrôle la clé A avec le nom de la victime et signé par le parti tiers. Il peut donc se faire passer pour la victime et signer n’importe quel document en son nom.”

Le pire c’est que SHA-1 n’a pas besoin d’être sélectionné par défaut pour que l’attaque fonctionne, il suffit juste qu’il soit supporté.

“Quand un protocole supporte plusieurs fonctions de hachage, ces attaques sont possibles tant que SHA-1 est supporté par ces implémentations, même s’il n’est pas sélectionné pour l’utilisation normal,” selon le papier. “Une attaque man-in-the-middle forcera l’utilisation de SHA-1.”

Dans la pratique, l’attaque demande une certaine puissance de calcul. Les chercheurs ont dit avoir payé 756 000 dollars pour leurs processus et leurs calculs mais le coût pourrait descendre à 50 000 dollars en utilisant des GPU avancés et une méthodologie d’attaque connu. Dans certains cas, le coût pourrait même descendre jusqu’à 11 000 dollars.

Ce qu’il faut retenir c’est que les utilisateurs, les administrateurs et les développeurs devront implémenter SHA-2 le plus vite possible.

Les développeurs de GnuPG ont implémenté une contre-mesure en arrêtant d’utiliser SHA-1 dans la version 2.2 et les développeurs d’OpenSSL ont déclaré qu’ils pensaient supprimé le support de SHA-1. Le papier a aussi noté que les développeurs de GIT travaillent au remplacement de SHA-1 et qu’ils utilisent une librairie de détection de collision pour mitiger les risques des attaques de collision.

Si cet article vous a plu, jetez un œil à notre article précédent.