Empreintes de fichier

Bonjour à tous !

Aujourd'hui, on va parler empreintes de fichiers. Petit tour du principe, des algorithmes, et des nouveautés...

Les empreintes digitales permettent d'identifier de manière unique un individu, cependant l'information contenue dans une empreinte est très faible par rapport à toute l'information que représente un individu.

De même, il existe en informatique un challenge comparable, qui consiste à permettre d'identifier de manière unique des fichiers. On utilise donc un algorithme qui -- en théorie -- est très sensible à la variations de bits dans un fichier, de telle sorte qu'il soit impossible -- ou presque -- que deux fichiers distincts aient la même empreinte.

Les cas d'utilisation d'empreintes sont nombreux :

  • vérification rapide qu'un téléchargement ne comporte pas d'erreur ;
  • identification d'un fichier dans un gestionnaire :
    • git pour des fichiers source ;
    • YouTube pour ses vidéos ;
    • etc.

Beaucoup d'algorithmes ont été développés : MD4 (très vieux), MD5 (déprécié pour toutes les applications liées à la sécurité) SHA1 (pour Secure Hash Algorithm) SHA2, SHA3...

Dans la mesure de l'efficacité d'un algorithme, on distingue :

  • la sureté, c'est-à-dire la capacité d'un algorithme de donner une empreinte différente pour deux fichiers différents ;
  • la sécurité liée à l'algorithme, qui garantit qu'une attaque contre l'algorithme (soit en essayant beaucoup de fichiers, soit en trouvant une "fonction inverse") est quasiment impossible.

Ainsi, la sureté d'un algorithme correspond à la capacité de cet algorithme de détecter une modification du fichier. De MD5 à SHA-3, tous en sont relativement capable.

La sécurité de ces algorithmes est essentielle. Prenons Bob, et un attaquant Jeb. Le but de Jeb est de pouvoir créer un fichier ayant la même empreinte que celui attendu par Bob, pour pouvoir le substituer à celui que Bob a demandé sur le réseau.

Eh bien figurez-vous que la sécurité de SHA vient d'être une nouvelle fois remise en cause. Dès 2005, des chercheurs avaient réussi à trouver des collisions (ce qui se passe quand deux fichiers ont la même empreinte). Désormais, le site Ars nous parle d'attaques plus systématiques sur l'algorithme SHA-1.

Tout ceci est bien dommage étant donné que les navigateurs web (Firefox, Iceweasel, Chromium, Opéra, Chrome, ...) ont abandonné MD5 il y a peu (il n'est plus supporté), et que la fin de support de SHA-1 est prévue pour fin 2017.

En attendant, la relève est là (SHA-2, SHA-3) mais encore faut-il que les sites webs que vous visitez supportent SHA-2, ce qui n'est pas gagné. Seuls quelques rares utilisent les bons algorithmes au bon endroit (Wikipédia, Google, Twitter, ...)

Tout ceci arrive au moment même ou la NSA (la partie sécurité intérieure) rend obsolète AES-128 (pour AES-256) et SHA-256 (une des quatres version de SHA2 pour les documents classés Secret Défense :

  • SHA-224
  • SHA256
  • SHA-384
  • SHA-512)

pour SHA-384...

Bonne journée !

Motius