Collision SHA-1 : Linus Torvalds tente de rassurer la communauté des utilisateurs GIT
Collision SHA-1 : « le Ciel ne nous tombe pas sur la tête », Linus Torvalds veut rassurer les utilisateurs GIT,
quant aux implications de cette attaque
Il y a quelques jours, une équipe composée de chercheurs issus du Centrum Wiskunde et Informatica (CWI, Pays-Bas) et de Google a annoncé avoir mis au point une méthode pour briser l'algorithme SHA-1 qui a longtemps été utilisé pour vérifier l'authenticité des documents numériques. Dans le cadre de la rédaction détaillée de leur réalisation, les chercheurs ont également publié deux fichiers PDF comme preuve de la collision réalisée, les deux fichiers ayant des hachages SHA-1 identiques, mais affichant des contenus différents.
Ils ont mis à jour le site web dédié à l’évènement autour de la collision de hash pour indiquer des conséquences sur certains systèmes à l’instar de GIT. La raison ? « GIT s'appuie fortement sur SHA-1 pour l'identification et la vérification de l'intégrité de tous les objets de fichier et commits. Il est essentiellement possible de créer deux référentiels GIT avec le même hachage commit de tête et différents contenus, par exemple un code source bénin et un disposant d’une porte dérobée. Un attaquant pourrait potentiellement servir sélectivement l’un ou l’autre des dépôts aux utilisateurs ciblés. Cela exigera des attaquants de calculer leur propre collision ».
Pour rappel, Linus Torvalds et d'autres développeurs de noyau Linux ont créé GIT en 2005 comme système de contrôle de version distribué de Linux. Il est également utilisé par de nombreuses grandes entreprises, y compris Facebook, Google et Twitter, pour gérer leurs bases de code. GIT est également utilisé dans GitHub, l’un des sites de gestion de code source les plus populaires au monde.
Raison pour laquelle Linus Torvalds s’est penché sur le problème et a livré les résultats de son analyse.
« Tout d'abord, le ciel ne nous tombe pas sur la tête. Il y a une grande différence entre utiliser d'un hachage cryptographique pour des choses comme une signature de sécurité et s’en servir pour générer un "identificateur de contenu" d’un système de contenu-adressable comme git », a assuré Linus.
La différence résidant donc dans la raison de l’utilisation. « Un hachage qui est utilisé pour la sécurité est essentiellement une déclaration de confiance : et si vous pouvez tromper quelqu'un, vous pouvez l’emmener à vous faire confiance même quand il ne devrait pas vraiment ». Raison pour laquelle « lorsqu'un tel hachage est rompu, la raison même du hash disparaît fondamentalement ».
En revanche, dans un projet comme git, le hachage n'est pas utilisé pour la « confiance » : « notre confiance est dans les gens, et puis nous finissons par avoir beaucoup de mesures technologiques en place pour sécuriser les données réelles ». La raison de l'utilisation d'un hachage cryptographique dans un projet comme git est parce qu'il garantit à peu près qu'il n'y a pas d'affrontements accidentels, et est également excellent dans la détection d’erreurs ; même s’il n’est pas en mesure de corriger les erreurs, il est très bon lorsqu’il faut détecter les données corrompues.
« Deuxièmement, la nature particulière de cette attaque SHA-1 signifie qu'elle est réellement assez facile à atténuer, et il y a déjà eu deux ensembles de correctifs affichés pour cette atténuation », a-t-il continué. Linus note deux choses :
- l'attaquant ne peut pas simplement générer une collision aléatoire, mais doit être capable de contrôler et de générer à la fois le « bon » et le « mauvais » objet ;
- vous pouvez réellement détecter les signes de l'attaque dans les deux côtés de la collision.
Linus explique que la première remarque implique qu’il est vraiment difficile de cacher l'attaque dans des données qui sont transparentes (par données transparentes, il parle du fait que « vous voyez réellement et réagissez à toutes les données, au lieu d’avoir une espèce de “ bulle ” de données qui agit comme une boîte noire et ne vous permet de ne voir que les résultats finals).
« Dans les exemples PDF, le format PDF a agi comme "la boîte noire", et ce que vous voyez est l'impression qui a seulement une relation très indirecte au codage de pdf. Mais si vous utilisez git pour le contrôle de source comme dans le noyau, les choses dont vous vous souciez vraiment est le CODE SOURCE, qui est très transparent », a-t-il rappelé. « Alors, fondamentalement, si les données dont vous vous souciez principalement sont ce genre de code source transparent, l'attaque est assez limitée. Vous VERREZ l'attaque. Elle ne va pas silencieusement modifier vos données devant vous ».
En plus de ces arguments, Linus rappelle « qu’il y a effectivement une transition assez simple vers un autre hash qui ne va pas briser le monde - ou même de vieux dépôts git ». Il a expliqué que git finira par s'éloigner de SHA1 : « il y a un plan, il ne semble pas du tout mauvais, et vous n'aurez même pas à convertir votre dépôt ».
Source : billet Linus Torvalds
Et vous ?
:fleche: Que pensez-vous des raisons qu'il a évoquées ?
1 pièce(s) jointe(s)
Une deuxième attaque par collision encore plus puissante que la première fait tomber SHA-1
Une deuxième attaque par collision encore plus puissante que la première fait tomber SHA-1,
les chercheurs demandent d'arrêter l'utilisation de l'algorithme de hachage
En 1995, SHA-1 (Secure Hash Algorithm), l’algorithme de hachage cryptographique conçu par la NSA, a été publié par le gouvernement des États-Unis comme standard fédéral de traitement de l'information. SHA-1 venait remplacer SHA-0 qui a été rapidement mis de côté par le NIST (Institut national des normes et de la technologie, une agence du département du Commerce des États-Unis) pour des raisons de sécurité insuffisante.
Néanmoins, avec les années, SHA-1 n’a plus été considéré comme sûr face à des adversaires disposant de moyens importants, c’est ce qu’ont suggéré des cryptanalystes qui se sont penchés sur des attaques théoriques. Aussi, l’institut américain des standards avait déclaré SHA-1 obsolète en 2011. Il n’en a pas fallu beaucoup plus aux principaux navigateurs pour se décider à déprécier cet algorithme : Microsoft, Google et Mozilla ont annoncé la fin du support de SHA-1 sur leurs produits respectifs.
En 2017, une équipe composée de chercheurs issus du Centrum Wiskunde et Informatica (CWI, Pays-Bas) et de Google a annoncé avoir mis au point une méthode pour briser l'algorithme SHA-1 qui a longtemps été utilisé pour vérifier l'authenticité des documents numériques. Dans le cadre de la rédaction détaillée de leur réalisation, les chercheurs ont également publié deux fichiers PDF comme preuve de la collision réalisée, les deux fichiers ayant des hachages SHA-1 identiques, mais affichant des contenus différents.
L’une des propriétés des fonctions cryptographiques est le fait qu’elles sont unidirectionnelles ; en clair, il n’est pas possible de retrouver la chaîne originelle à partir du hash. Une seconde est que, théoriquement, deux chaînes de caractères différentes donneront systématiquement deux hash différents. C’est cette théorie que les chercheurs sont parvenus à démentir.
Google explique qu’une collision se produit lorsque deux morceaux de données distinctes (un document, un binaire ou un certificat de site Web) figurent dans la même signature (voir le schéma ci-dessous). Comme expliqué plus haut, les collisions ne devraient jamais se produire pour des fonctions de hachage sécurisées. Cependant, si l'algorithme de hachage a quelques défauts, comme SHA-1, un attaquant bien équipé peut créer une collision. L'attaquant pourrait alors utiliser cette collision pour tromper les systèmes qui s'appuient sur les hachages et leur faire accepter un fichier malveillant à la place de son équivalent bénin. Par exemple, deux contrats d'assurance avec des termes radicalement différents. Les attaquants pourraient également créer une mise à jour logicielle frauduleuse, qui serait acceptée et exécutée par un mécanisme de mise à jour qui valide les mises à jour en vérifiant les signatures numériques.
Trois ans plus tard, une équipe de chercheurs a révélé une attaque encore plus forte que la première. La nouvelle collision offre aux attaquants plus d'options et de flexibilité que celles disponibles avec la technique précédente. Elle permet de créer des clés de chiffrement PGP qui, lorsqu'elles sont signées numériquement à l'aide de l'algorithme SHA-1, usurpent l'identité d'une cible choisie. Plus généralement, elle produit le même hachage pour deux ou plusieurs entrées choisies par l'attaquant en ajoutant des données à chacune d'entre elles. L'attaque dévoilée mardi ne coûte également que 45 000 $ pour être menée à bien. L'attaque révélée en 2017, en revanche, n'a pas permis de falsifier des préfixes prédéterminés de documents spécifiques et a été évaluée à un coût de 110 000 $ à 560 000 $ sur la plateforme de services Web d'Amazon, selon la rapidité avec laquelle les adversaires voulaient l'exécuter.
La nouvelle attaque est importante. Bien que SHA-1 ait été progressivement abandonné au cours des cinq dernières années, il est loin d'être totalement obsolète. Il s'agit toujours de la fonction de hachage par défaut pour certifier les clés PGP dans la branche héritée de la version 1.4 de GnuPG, le successeur open source de l'application PGP pour chiffrer les e-mails et les fichiers. Ces signatures générées par SHA1 ont été acceptées par la branche GnuPG moderne jusqu'à récemment, et n'ont été rejetées qu'après que les chercheurs à l'origine de la nouvelle collision eurent communiqué leurs résultats en privé.
Et l'équipe d'expliquer que : « Nous avons calculé la toute première collision avec préfixe choisi pour SHA-1. En résumé, cela signifie une interruption complète et pratique de la fonction de hachage SHA-1, avec des implications pratiques dangereuses si vous utilisez toujours cette fonction de hachage. Pour le dire autrement: toutes les attaques pratiques sur MD5 le sont désormais également sur SHA-1. Nous avons considérablement amélioré la complexité des attaques SHA-1, avec un facteur d'accélération d'environ 10 ».
Qu'est-ce qu'une collision à préfixe choisi ?
Une collision classique (ou collision à préfixe identique) pour une fonction de hachage H est simplement deux messages M et M’ qui conduisent à la même sortie de hachage: H (M) = H (M’). Même si cette notion de sécurité est fondamentale en cryptographie, l'exploitation d'une collision classique pour les attaques est difficile en pratique.
Une collision à préfixe choisi est un type de collision plus contraint (et beaucoup plus difficile à obtenir), où deux préfixes de message P et P' sont d'abord donnés comme défi à l'adversaire, et son objectif est alors de calculer deux messages M et M' tel que H (P || M) = H (P' || M'), où || désigne la concaténation.
Avec une telle capacité, l'attaquant peut obtenir une collision même si les préfixes peuvent être choisis arbitrairement (et donc contenir potentiellement des informations significatives). Cela est particulièrement important lorsque la fonction de hachage est utilisée dans un schéma de signature numérique, l'une des utilisations les plus courantes d'une fonction de hachage.
Dans un article présenté au Real World Crypto Symposium de cette semaine à New York, les chercheurs ont averti que même si l'utilisation de SHA-1 est faible ou utilisée uniquement pour la compatibilité descendante, cela va laisser les utilisateurs vulnérables aux attaques potentielles. Les chercheurs ont déclaré que leurs résultats soulignaient l'importance d'éliminer complètement SHA1 dans les plus brefs délais.
« Ce travail montre définitivement que SHA-1 ne doit pas être utilisé dans un protocole de sécurité où une sorte de résistance aux collisions est à attendre de la fonction de hachage », ont prévenu les chercheurs. « L'utilisation continue de SHA1 pour les certificats ou pour l'authentification des messages de négociation en TLS ou SSH est dangereuse et il existe un risque concret d'abus par un adversaire bien motivé. SHA-1 est cassé depuis 2004, mais il est toujours utilisé dans de nombreux systèmes de sécurité ; nous conseillons vivement aux utilisateurs de supprimer le support SHA1 pour éviter les attaques ».
Source : équipe de chercheurs, article technique
Voir aussi :
:fleche: Les mises à jour de Windows 7 et Server 2008 vont nécessiter le support de SHA-2 à partir de juillet 2019, l'algorithme SHA-1 étant devenu moins sûr
:fleche: Intel obtient un brevet pour un procédé de minage plus économe en énergie basé sur des ASIC écoénergétiques et l'algorithme de hachage SHA-256
:fleche: Adam Langley : « SHA-3 n'apporte pas grand-chose par rapport à SHA-2, on pourrait s'en passer », la team Keccak répond à l'ingénieur de Google