Visiblement Subversion est moins résilient que Git aux collisions SHA1...
https://arstechnica.com/security/201...rs-may-follow/
Discussion :
Visiblement Subversion est moins résilient que Git aux collisions SHA1...
https://arstechnica.com/security/201...rs-may-follow/
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Ha! ça me fait marrer
Depuis le temps tous le monde devrait savoir que pour éviter ce problème il faut utiliser à minima 2 algorithmes de Hash et utiliser leur 2 ou plus références, mais non on préfère accorder toute nôtre confiance à une seule serrure sur la porte![]()
Maintenant que google a démontré qu'on pouvait trouver une collision à SHA-1, il reste à cubifier le problème : démontrer qu'on peut trouver une paire de fichiers différents qui provoquent une collision ET pour MD5, ET pour SHA1, ET pour SHA256. Bon courage.
Pas utile, étant donné que beaucoup de logiciels ne gèrent qu'une implémentation de hashage.
La démonstration serait juste pour le fun ou pour l'exploit technique mais en terme pratique elle n'a aucun interet.
Il vaux mieux utiliser les nouveaux algo de hachage plutot que se basé sur un plus fiable (md5), un autre incertain (sha1) et un encore sur pour autant que je sache (sha256).
Salut à tous.
Désolé si je me suis trompé, mais je n'ai pas trop la connaissance de ces procédés.Envoyé par dourouc05
Et donc maintenant, nous avons un sérieux problème de sécurité avec cette technique.Envoyé par dourouc05
Ne peut-on pas trouver une autre technique qui consisterait à verrouiller le fichier et que seul celui qui va l'utiliser pourrait le déverrouiller. Cela garanti aucune falsification, non ?Envoyé par dourouc05
J'avais en tête le chiffrement d'un texte. Or "Dourouc05" me confirme que cela n'a aucun rapport, juste la création d'une emprunte afin de garantir qu'il n'y a, par son auteur, aucune falsification.Envoyé par Beanux
Donc les termes de chiffrer ou de crypter ne sont pas appropriés.
Autrement dit, faire l'opération inverse à partir d'une emprunte donnée (le hash).Envoyé par Beanux
Or là, je ne comprends plus très bien. Est-ce pour crypter un texte ou juste garantir que ce texte n'a pas été falsifié ?Envoyé par Beanux
Car Dourouc05 dit que c'est une emprunte et vous, un cryptage non réversible.
Et en ce qui concerne le bug en cascade ?
Je ne suis pas du tout convaincu de ce que vous dites. Dans l'exemple donné du hash sha-1, il y a une emprunte de 160 bits.Envoyé par TiranusKBX
Vous pouvez utiliser autant d'algorithme que vous désirez, pour complexifié votre emprunte, au final, elle aura toujours 160 bits.
Quel est l'intérêt de votre démarche ? Surtout que l'on utilise un et un seul type de hashage à la fois.Envoyé par CaptainDangeax
Si je comprends votre exemple, cela me rappelle le théorème chinois sur les restes du calcul modulaire.
@+
Il en existe plein d'autre, par exemple, le SHA2 est aussi une fonction de hachage qui elle est encore fiable. Et le SHA3 est aussi la pour proposer une alternative viable au SHA2.
Le terme crypter est un terme qui est mal utilisé (normalement il n'existe pas) dans la langue française: https://chiffrer.info/
Le mot cryptage (pour moi), peut être employé à cette fin, parce que c'est une méthode à sens unique. Néanmoins je concède que cela prête a confusion.
Je vous invite à lire la page wikipédia des fonctions de hachage. Elle vous expliquera très bien le des fonctions de hachage (la partie considérations mathématique peut être passé).
Mais l’intérêt n’est pas qu'il y ai une unicité absolue des empreintes/hash, c’est la non réversibilité de cette opération qui est importante.
Il est important qu'il y ai un grand nombre d'empreinte aussi, et sur 160 bit, les chercheurs en sécurité ont estimé cela suffisant.
En revanche je ne comprends pas ce que vous mentionnez en parlant de "bug en cascade".
Il y a d'autres méthodes; par exemple chiffrer le fichier et donner sa clef publique; l'utilisateur peut le télécharger et le déchiffrer. Personne d'autre ne pourra chiffrer un fichier avec la même clef privée (tant que l'algo de chiffrement / génération de clefs résiste aux attaques bien sur).
Mais c'est bien moins pratique qu'un hash.
Les deux.
Tu stoques des mots de passe en base de données : tu vas stocker un hash des pass et non les pass en clair.
Quand un utilisateur se connecte, tu hash son pass et compare les hashs.
Dans ce cas on peut voir ça comme une forme de cryptage.
Tu mets un fichier à télécharger sur ton site.
L'utilisateur veut s'assurer que le fichier est correct (téléchargé correctement / pas modifié par une tierce personne) : il hash le fichier et compare le hash à un hash de référence que tu as calculé. Si c'est identique le fichier est bon.
(Bien sur si quelqu'un accède à ton serveur et modifie le fichier, il y a de grandes chances qu'il modifie le hash de référence; mais c'est un autre problème).
Çà sert aussi à comparer rapidement des fichiers / objets (cas d'SVN ou de hashtable).
Salut à tous.
Je ne parlais pas du hashage, mais d'une autre approche. C'est le principe de l'emprunte que que je mets en doute.Envoyé par Beanux
Réduire un fichier selon un algorithme pour obtenir quelque chose faisant (dans le cas du sha-1) 160 bits, il y aura nécessairement des collisions.
Elle vous eet à quoi cette non réversibilité si la taille de l'emprunte est trop petite.Envoyé par Beanux
Et quand on aura des ordinateurs quantiques, à combien jugez-vous la taille de cette emprunte ?
En fait, le problème repose sur le temps nécessaire pour obtenir le résultat recherché.
Ceci :Envoyé par Beanux
Surtout quand les chercheurs disent "d'autre commits sont bloqués".Envoyé par Stéphane Le Calme
Je crois que cela se nomme le RSA, non ? Encore des modulos.Envoyé par Iradrille
Je connais le principe. Mais c'est du cryptage !Envoyé par Iradrille
L'intérêt est limité à l'usage des mots de passe, pas à quelque chose qui peut être craqué si on dispose de la puissance d'un super ordinateur.
Ok, je comprends mieux ! Mais je ne voie toujours pas l'intérêt de cette multiplicité des hash.Envoyé par TiranusKBX
Par analogie, auriez-vous intérêt à mettre plusieurs serrures douteuses sur votre porte, où bien une seule si elle est infalsifiable ?
@+
Oui, mais la probabilité que ça arrive par accident est infime, donc en pratique ce n'est pas vraiment un souci. Par contre, ça devient problématique si quelqu'un est capable de générer ces collisions volontairement...
Le "cryptage" n'existe pas, ça s'appelle le chiffrement. Et le chiffrement, c'est réversible, contrairement au hachage. Donc non, ce n'est pas du chiffrement.
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Faut quand même pas non plus oublier qu'on parle de 6500 années CPU pour arriver à une collision , dans des conditions probablement favorables.
Alors effectivement il faudra sans doute envisager de basculer GIT vers autre chose mais j'y vois pas une faille de sécurité.
Justement linguistiquement parlant le cryptage existe, il ne fait pas référence au chiffrement. Sa signification est simplement d'encoder quelque chose sans en connaitre la clé inverse. Ce qui correspond plutôt correctement au hachage.
https://chiffrer.info/
Salut à tous.
Afin de bien comprendre où se trouve l'erreur, j'ai fait une recherche sur le net et dans mes bouquins.
Avant de dire que le terme cryptage n'existe pas, il suffit de prendre un dictionnaire et de voir si le mot y est présent.Envoyé par tomlev
Référence : dictionnaire Le petit Larrousse - Grand Format - (Larousse / Her 1999).
A la page 286, pour "cryptage", je lis :
Et à la page 210, pour "chiffrement", je lis :Cryptage : nom, masculin 1) Transformation d'un message en clair en un message codé compréhensible seulement par qui dispose du code. Cryptage d'une dépêche. 2) Transformation d'une suite de signaux électriques ou radioélectriques telle que celle-ci ne peut être rendue intelligible que par le truchement d'un décodeur approprié. Cryptage des émissions d'une chaîne de télévision.
Donc les deux mots existent dans le dictionnaire !Chiffrement : nom, masculin. Opération qui consiste à transformer un texte clair en cryptogramme.
Dans un "que sais-je" que je possède dont le titre est "Les écritures secrètes" (N°116), il y a en préambule des "notions générales et terminologie". On y lit :
Qu'est-ce que l'on constate ? Qu'il s'agit de l'art de la cryptographie appliquée à des écritures de type graphique.La cryptographie (du grec kruptos = caché et graphein = écrire) est, par définition étymologique, la science des "écritures secrètes".
Par "écritures secrètes", il faut entendre les modifications que l'on fait subir à un texte écrit en vue de le rendre incompréhensible à ceux qui n'ont pas à le connaitre. En cryptographie, l'information à traiter pour la rendre secrète est donc graphique. Le traitement de l'information, c'est-à-dire les modifications apportées au document graphique, intervient soit avant la transmission (cryptographie manuelle, cryptographe semi-automatiques), soit au moment même de la transmission 'machine à chiffrer automatiquement liées au moyen de transmission).
En cherchant sur le net, on trouve :
--> Que le terme chiffrement est l'opération qui consiste à chiffrer un texte selon une clef.
--> Le déchiffrement est l'opération inversement du chiffrement, à savoir à partir d'une clef connue.
--> Le décryptage n'est pas synonyme de déchiffrement, car l'opération consiste à retrouver le message en clair, sans posséder la clef de chiffrement.
Il est à remarquer que si l'on traduit de l'anglais en français, nous avons
--> encryption, qui donne chiffrement.
--> decryption, qui donné déchiffrement.
--> break a secret code, qui donne décrypter un code secret.
Il y a certainement une erreur fréquente de traduction de l'anglais au français.
Et quand est-il du terme cryptage que l'on trouve dans le dictionnaire Larousse ?
Il parait que c'est un faux anglicisme de chiffrer et n'a pas de correspondance dans la langue anglaise.
En ce qui me concerne, je ne peux pas utiliser ces termes qui sont réservés aux services du chiffrement.
Pour ma part, je préfère utiliser les termes de coder, voire encoder, et de décoder, plus parlant pour nous autres informaticiens.
D'ailleurs, ne parle-t-on pas de code ASCII ou code EBCDIC ?
Je suis désolé si j'hésite sur le bon usage de ces mots qui n'appartient pas aux jargons des informaticiens.
@+
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 :
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
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
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
Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités
Ben y'a juste un problème oublié avec les fonctions à sens unique, faut encore valider le produit de l'opération. Ce qui impose une validation par comparaison (seul moyen de vérifier que le résultat obtenu est valide).
Et avec la croissance constante de la longueur des clés de vérification, les bases de données qui servent au stockage des validations augmentent en taille de manière considérable, et fragilisent celle-ci.
La seule méthode connue encore viable aujourd'hui de cryptage est celle du masque jetable, avec ces contrainte que sont l'unicité d'usage, mais aussi la communication des masques.
RSA devait compenser la seconde, avec un cryptage à sens unique où seule les clés de cryptage sont échangées, les compléments des clés servant au décryptage restant connues uniquement de expéditeurs.
SHA lui sert a vérifier la validité des données communiquées, mais n'est pas à sens unique, c'est juste un calcul avec contraintes, compliqué et stable, mais (comme exemple), on peut faire des glaçons avec de l'eau de source, et aussi de l'eau de mer.
Donc on peut tromper le vérificateur car seul un contact direct avec l'expéditeur permet de s'assurer de ce qui est viable ou non. Ce qu'aucune signature numérique (et donc déportée et copiable) ne peut faire.
Le mieux qui reste disponible est encore de communiquer en clair, avec vérification de chaque étape, enregistrée dans le message, du départ à l'arrivée, avec controle ouvert des données envoyées (type blockchain). Mais pour les amoureux du secret, sur que ça coince (surtout dans la finance).
Partager