Contrôler un fichier – Hash

Indice NDT

(N)iveau requis, de l’utilisateur à l’expert.
(D)ifficulté : Simple, Moyenne, Complexe.
(T)emps estimé pour la réalisation.

Utilisateur Technicien Expert
Niveau
Simple Moyenne Complexe
Difficulté
– d’une heure + de 5 heures 12 heures et +
Temps

OcM

Objectif de l’article.
Contexte de la réalisation.
Modalité de l’éxécution.

Disposer de moyen pour vérifier la bonne « identité » d’un fichier

Réception d’un fichier dont on souhaite être rassuré en terme d’ouverture et/ou d’exécution

Utilisation des outils natifs et/ou de logiciels adaptés.

Principe


Le Hash

Ce type de fonction est très utilisé en cryptographie, principalement dans le but de réduire la taille des données à traiter par la fonction de cryptage. En effet, la caractéristique principale d’une fonction de hachage est de produire un haché des données, c’est-à-dire un condensé de ces données. Ce condensé est de taille fixe, dont la valeur diffère suivant la fonction utilisée.

Hein ?

Exemple avec les empreintes digitales : dans la perception que nous en avons à l’heure actuelle, une empreinte digitale est unique et représente un individu d’une façon si certaine que nous pouvons la qualifier de sure.

Pourtant la connaissance de cette empreinte ne permet pas à elle-seule de remonter à l’individu, ni de reconstituer cet individu. Il faut que la correspondance ait été préalablement établie dans une base de données pour que l’identification puisse avoir lieu par comparaison

C’est exactement ce genre de propriété que présente une fonction de hashage. Il s’agit bien d’un condensé de données pour un fichier. On parle alors abusivement de son empreinte digitale, en ce sens qu’un seul hash ne peut exister pour un fichier.

Disposer du hash permet de vérifier avec la source officielle (si digne de ce nom) que le fichier est bien celui qu’il prétend être.

Les différents hash

Et ça évolue encore ?
Oui donc à chaque fois, différents contrôles sont à faire selon les données sources transmises.
A noter qu’en février 2016 MD5 est moins utilisé au profit de SHA-1 et demain SHA-2 et après demain SHA-3 etc..

Modalités


Prennons l’exemple d’un fichier à télécharger. Le site de l’éditeur publie son hash et la méthgode utilisée. Une fois le fichier rappatrié, il suffit de vérifier le hash du fichier avec ce qu’annonce l’éditeur ou la source fiable.

Selon les sytèmes d’exploitation les outils sont plus ou moins intégrés (sous forme de ligne de commande) ou à récupérer via différents logiciels en open source ou sous licence payante.

Utilisation courante


le hash est affiché (pas toujours la cas hélas),

  1. je télécharge,
  2. je calcule
  3. je vérifie.
  1. Je calcule le hash
  2. j’envoie le fichier en indiquant son hash.
  3. La personne le réceptionne et fait le clacul de son côté sur la PJ.
[technique souvent utilisée pour les transferts monétiques via un ERP]
  1. Je lance une vérification de plusieurs fichiers systèmes importants ou majeurs pour moi,
  2. j’isole ces informations et je vérifie de temps à autre, en cas de doute.
[ Attention s’il s’agit de fichiers systèmes les mises à jour de l’OS peuvent les modifier.] Cette technique permet de vérifier qu’il n’ya pas de corruption sur les fichiers concernés.

Exemples


Un fichier d’archive ZIP contenant un fichier PDF. 

 et vérifier les signatures.

Le ZIP

avec signatures

a télécharger

Le fichier ZIP (contenant le fichier test.pdf)  a les signatures suivantes :

MD5 :
E1FB1A17F94E0E3BDD895DCBE7918509

SHA1 :
8124EBD80632B009CE2F2F25675A54C76BA6B791

SHA2 :
E6175E983995E30332672296E61D66D4DC6C059CFF46A7E5E66E39CD51E2E4E1

Le PDF

avec signatures

dans le ZIP

Le fichier test.pdf dispose des signatures suivantes :

MD5 :
ebff188366c4c265d72144524b31a5b3

SHA1 :
5b171d35b5f3b24c814dfe7503c5aaf766c15d5f

SHA2 :
ccdac2b903bfe8c5e6641110ad9c6a63006761968725ae1b56858f035b9324e9