Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/02/2017, à 20:42

Compte supprimé

[Bon à savoir] Collision SHA1, c'est fait…

Bonjour !

Ça c'est fait. Ce n'était qu'une question de temps.

Announcing the first SHA1 collision (article en anglais).

Jamais les MD5SUMS, SHA1 SHA256, SHA512, SHA1024, SHA1048576 ne garantiront authenticité des fichiers plus longs que la clé.
C'est logique.

Deux fichiers (plus longs que la clé) qui ont la même somme de contrôle, ne sont pas forcément identiques.
Dit autrement, jamais les sommes de contrôles MD5, SHA1 SHA256, SHA512, SHA1024, SHA1048576 ne garantiront l'exactitude d'un fichier plus gros que la somme de contrôle. Les probabilités de collisions sont faibles, mais pas nulles. Une preuve de plus après l'algorithme de création de collision de sommes MD5.

Mais on est certain que deux fichiers qui n'ont pas la même somme de contrôle sont obligatoirement différents.
J'essayais déjà d'expliquer ceci il y a quelques mois.

Ensuite, télécharger une image ISO qui a la bonne somme de contrôle ne garantit pas l’authenticité, car statistiquement, il y a très peu de chance que des erreurs de transmissions retombent sur la même clé. Mais celui qui a la puissance d'envoyer sur le réseau un fichier qui a les mêmes sommes de contrôle avec la même longueur à l'octet près, peut passer inaperçu.

À part l'état et quelques privés, je ne pense pas que nous risquions grand chose.

Enfin, le générateur de collision MD5 a besoin d'un peu moins d'une heure avec un Pentium 4 à 3GHz.

PS : En 2000, sur un processeur MC68030 à 50 MHz, il fallait 30 minutes pour résoudre 1000 équations à 1000 inconnues réelles avec une précision de 10⁻⁶.

Je n'ai pas programmé l'algorithme du générateur de collisions MD5.

Mais le principe d'un algorithme de générations de collisions repose sur la lecture de l'algorithme de somme de contrôle. Et même si les algorithmes n'étaient pas publiés, le code machine se désassemblerait pour comprendre l'algorithme qui créée la somme.

À partir de là, je ne sais pas trop, si ce sont les génies informatico-mathématiciens qui génèrent des algorithmes de collisions… (Cas du MD5) ou si plusieurs fichiers analysés sont enregistrés avec leur clé respective, puis comparaisons des différentes clés (ce qui semble le cas de l'article en anglais plus haut concernant le SHA-1).

Dernière modification par Compte supprimé (Le 23/02/2017, à 21:04)

#2 Le 24/02/2017, à 12:16

Compte supprimé

Re : [Bon à savoir] Collision SHA1, c'est fait…

ludovic@debian-LibraZiK:~$ mkdir tests-sha1
ludovic@debian-LibraZiK:~$ cd tests-sha1/
ludovic@debian-LibraZiK:~/tests-sha1$ ls -al
total 8
drwxr-xr-x  2 ludovic ludovic 4096 févr. 24 11:57 .
drwxr-xr-x 66 ludovic ludovic 4096 févr. 24 11:57 ..
ludovic@debian-LibraZiK:~/tests-sha1$  wget https://shattered.it/static/shattered-1.pdf
--2017-02-24 11:57:56--  https://shattered.it/static/shattered-1.pdf
Résolution de shattered.it (shattered.it)… 216.239.38.21, 216.239.36.21, 216.239.34.21, ...
Connexion à shattered.it (shattered.it)|216.239.38.21|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 422435 (413K) [application/pdf]
Sauvegarde en : « shattered-1.pdf »

shattered-1.pdf               100%[===================================================>] 412,53K  1,99MB/s   ds 0,2s   

2017-02-24 11:57:56 (1,99 MB/s) — « shattered-1.pdf » sauvegardé [422435/422435]

ludovic@debian-LibraZiK:~/tests-sha1$  wget https://shattered.it/static/shattered-2.pdf
--2017-02-24 11:58:08--  https://shattered.it/static/shattered-2.pdf
Résolution de shattered.it (shattered.it)… 216.239.32.21, 216.239.34.21, 216.239.36.21, ...
Connexion à shattered.it (shattered.it)|216.239.32.21|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 422435 (413K) [application/pdf]
Sauvegarde en : « shattered-2.pdf »

shattered-2.pdf               100%[===================================================>] 412,53K  2,21MB/s   ds 0,2s   

2017-02-24 11:58:09 (2,21 MB/s) — « shattered-2.pdf » sauvegardé [422435/422435]

ludovic@debian-LibraZiK:~/tests-sha1$ ls -als *.pdf
416 -rw-r--r-- 1 ludovic ludovic 422435 févr. 22 23:42 shattered-1.pdf
416 -rw-r--r-- 1 ludovic ludovic 422435 févr. 22 23:42 shattered-2.pdf
ludovic@debian-LibraZiK:~/tests-sha1$ diff shattered-1.pdf shattered-2.pdf
Les fichiers binaires shattered-1.pdf et shattered-2.pdf sont différents
ludovic@debian-LibraZiK:~/tests-sha1$ sha1sum shattered-1.pdf shattered-2.pdf
38762cf7f55934b34d179ae6a4c80cadccbb7f0a  shattered-1.pdf
38762cf7f55934b34d179ae6a4c80cadccbb7f0a  shattered-2.pdf
ludovic@debian-LibraZiK:~/tests-sha1$ 

On a bien deux fichiers différents qui ont la même signature SHA1.

Dernière modification par Compte supprimé (Le 24/02/2017, à 12:19)

#3 Le 24/02/2017, à 13:30

bruno

Re : [Bon à savoir] Collision SHA1, c'est fait…

Une somme de contrôle n'a jamais été une garantie absolue. C'est un moyen d'indiquer qu'un fichier est bien celui qu'il prétend être avec une probabilité très forte.

MD5 est cassé depuis longtemps et on ne s'en sert pratiquement plus. SHA1 est déconseillé depuis plusieurs années. GPG ne l'utilise plus, Ubuntu ne l'utilise plus depuis 16.04, les AC ne l'utilisent plus pour signer les certificats, etc.

Comme tu le fais remarquer la probabilité de collision est extrêmement faible (d'autant plus que la clé est longue). D'ailleurs l'article que tu cites indique qu'il faut une puissance de calcul phénoménale pour arriver à trouver une collision avec SHA1 (2^80 calculs) :


Nine quintillion (9,223,372,036,854,775,808) SHA1 computations in total (2^80 sommes de contrôle à calculer)
    6,500 years of CPU computation to complete the attack first phase (6500 ans de calcul d'un processeur pour la première phase)
    110 years of GPU computation to complete the second phase (110 ans de calcul d'un GPU pour la seconde phase)

SHA256 et SHA3 sont jusqu'à présent réputés sûrs (c'est aussi ce que dit l'article que tu cites). Avec SHA256 il faudrait calculer 2^128 sommes de contrôle pour espérer tomber sur une collision.

Hors ligne

#4 Le 24/02/2017, à 15:05

Compte supprimé

Re : [Bon à savoir] Collision SHA1, c'est fait…

Et oui.

Malheureusement, j'ai déjà lu sur ce forum que si la clé MD5-SHA1 est bonne, le fichier téléchargé est bon… (certainement vrai en pratique, mais le raisonnement est faux en théorie - ces exemples MD5-SHA1 pour le prouver).

2^128 sommes de contrôle pour SHA256 ?
Demie-durée de vie 2¹²⁷…
avec un ordinateur avec 10 millions de processeurs, arrondis à 2²³

La demie-durée de vie passe à 2¹²⁷÷2²³=2¹⁰⁴ par processeur à 1,45 GHz https://www.top500.org/system/178764

Bon, tant qu'il n'inverseront pas l'algorithme, ça ira !!! big_smile

Dernière modification par Compte supprimé (Le 24/02/2017, à 15:05)