Aller au contenu

Intégrité de fichier SHA-256 : comment une empreinte prouve qu’un fichier n’a pas changé

Une empreinte SHA-256 est une chaîne de 64 caractères calculée à partir des octets d’un fichier : changez un seul octet et l’empreinte change entièrement, donc deux empreintes identiques montrent que deux fichiers sont identiques. Cette page explique le fonctionnement d’un hash, donne la commande pour en calculer un sur macOS, Windows et Linux, et dit ce qu’une empreinte ne peut pas vous dire.

Par Martin Ferret · Publié le · Mis à jour le

Qu’est-ce qu’une empreinte SHA-256 ?

Une empreinte SHA-256 est la chaîne que la fonction de hachage SHA-256 calcule à partir d’un fichier : elle lit un fichier de n’importe quelle taille et renvoie toujours 256 bits, écrits sous forme de 64 caractères hexadécimaux.

9f2c4e8a1b7d3f60c5a29e84bb1730df
5e6a0c93d47182fbe95c2a7d3810a41d

Le même fichier produit toujours la même empreinte, sur n’importe quelle machine, n’importe quelle année. Un fichier différent en produit une différente.

Pourquoi changer un seul octet change-t-il toute l’empreinte ?

Modifiez un seul caractère n’importe où dans le fichier, et l’empreinte ne varie pas légèrement. Elle devient une chaîne sans aucun rapport, dont environ la moitié des bits ont basculé.

C’est cette propriété qui rend la comparaison utile. Inutile de lire deux fichiers pour savoir qu’ils diffèrent : on compare deux chaînes courtes, et soit elles correspondent exactement, soit non. Il n’y a pas de correspondance partielle et rien à interpréter.

Comment calculer soi-même une empreinte SHA-256 ?

Aucun logiciel n’est à installer. Tous les grands systèmes d’exploitation intègrent cette fonction.

Commandes pour calculer une empreinte SHA-256
macOSshasum -a 256 _chat.zip
Linuxsha256sum _chat.zip
Windows, PowerShellGet-FileHash _chat.zip -Algorithm SHA256
Windows, invite de commandescertutil -hashfile _chat.zip SHA256

Lancez-la sur le fichier, comparez le résultat à l’empreinte imprimée sur la page de certificat, et vous aurez vérifié le travail vous-même au lieu de croire quiconque sur parole. Si vous préférez ne pas relire soixante-quatre caractères sur une page, le vérificateur SHA-256 fait la comparaison pour vous, dans votre navigateur, sans rien envoyer.

Pourquoi le fichier source accompagne-t-il le document ?

Une empreinte imprimée sur une page ne prouve rien à elle seule : sans le fichier qu’elle décrit, il n’y a rien à quoi la comparer.

Le ZIP d’origine est donc joint au PDF lorsqu’il fait moins de 10 Mo. Quiconque reçoit le document peut l’extraire, lancer l’une des commandes ci-dessus et constater par lui-même si la chaîne correspond. La vérification ne dépend pas de notre disponibilité, ni même de notre existence. Une archive plus lourde est fournie à côté du PDF, car les systèmes de dépôt plafonnent la taille des pièces jointes, et le certificat indique lequel des deux cas s’applique.

  • Les empreintes correspondent : le fichier est, octet pour octet, celui qui a été utilisé.
  • Elles diffèrent : quelque chose a changé après la génération du document.

Que ne peut pas dire une empreinte ?

Une empreinte atteste l’intégrité, pas l’authenticité ni l’exactitude. Ce sont des questions distinctes, auxquelles répondent des personnes et non l’arithmétique. Rendre une page citable est encore une autre question, et la réponse à celle-ci est la numérotation des cotes.

Autant le dire clairement : ChatExhibits génère un document et une empreinte. Il ne décide pas de ce qu’un tribunal accepte, et faciliter la vérification n’est pas la même chose que garantir quoi que ce soit.

Questions fréquentes

Une empreinte SHA-256 est-elle une forme de chiffrement ?

Non. Une empreinte ne cache rien et ne protège rien : le fichier reste exactement aussi lisible qu’avant. C’est un résumé à sens unique, et il est impossible de retrouver le fichier à partir de son empreinte.

Renommer ou copier un fichier change-t-il son SHA-256 ?

Non. L’empreinte est calculée uniquement à partir du contenu du fichier : un nouveau nom, une copie ou une pièce jointe d’e-mail donnent la même valeur. L’ouvrir et l’enregistrer à nouveau, ou le recompresser, peut modifier les octets et donc l’empreinte.

Deux fichiers différents peuvent-ils avoir le même SHA-256 ?

En théorie oui, puisqu’il existe plus de fichiers possibles que d’empreintes. En pratique, on n’a jamais trouvé deux fichiers différents ayant le même SHA-256, et c’est pourquoi une correspondance est tenue pour la preuve que les fichiers sont identiques.

Pourquoi l’empreinte est-elle calculée sur le ZIP et non sur _chat.txt ?

Parce que le ZIP est le fichier qui a été fourni. Hacher la transcription qu’il contient décrirait un autre fichier, et quiconque vérifierait le ZIP avec cette valeur verrait une différence qui ne signifie rien.

Pourquoi le certificat n’imprime-t-il pas l’empreinte du PDF lui-même ?

Parce qu’écrire l’empreinte dans le PDF modifie le PDF, et donc son empreinte. Un document ne peut pas porter sa propre empreinte ; il porte à la place celle de son fichier source.

Ouvrir votre export

Lu dans ce navigateur. Jamais envoyé, jamais conservé.

ZIP ou TXT, depuis iOS ou Android

Pas encore d’export ?

Comment exporter depuis WhatsApp
Où le trouver sur ce téléphone

iPhone

  1. Dans WhatsApp, ouvrez la discussion et touchez le nom du contact ou du groupe.
  2. Touchez Exporter la discussion, choisissez Joindre les fichiers, puis Enregistrer dans Fichiers.
  3. Revenez ici, touchez Choisir votre export et sélectionnez-le dans Fichiers.

Android

  1. Dans WhatsApp, ouvrez la discussion, touchez les trois points, Plus, puis Exporter la discussion.
  2. Choisissez Inclure les médias, puis enregistrez-le sur le téléphone (Fichiers ou Téléchargements).
  3. Revenez ici, touchez Choisir votre export et sélectionnez-le.

Tout fonctionne sur ce téléphone, et le document est créé ici même. Seule la transcription des notes vocales demande un ordinateur.