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.
| macOS | shasum -a 256 _chat.zip |
|---|---|
| Linux | sha256sum _chat.zip |
| Windows, PowerShell | Get-FileHash _chat.zip -Algorithm SHA256 |
| Windows, invite de commandes | certutil -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.
À lire aussi
- Exporter une discussion WhatsAppLes étapes sur iPhone et Android, ce que change l’option des médias, pourquoi WhatsApp Desktop n’exporte pas et ce que contient le fichier ZIP.
- Format d’export WhatsApp : le TXT et le ZIPCe que contient un export WhatsApp : les deux formats de date, les caractères invisibles, les pièces jointes sur iOS et Android et les noms de fichiers.
- Numérotation des cotes : définition et formatD’où vient la convention, à quoi ressemble un numéro de cote, pourquoi il se poursuit sur toute une production, et ce qu’apposer un numéro n’accomplit pas.