Aller au contenu
En développement
FR

Preuve

Vérifier un dossier de preuve

Un dossier de preuve de Perlata est une archive zip à structure fixe. Vous pouvez le vérifier avec des outils présents sur presque toutes les machines, sans nous. Cette page décrit ce qu'il contient, ce que vous pouvez vérifier et ce que chaque vérification établit. La description faisant foi voyage dans le dossier lui-même, sous le nom format.md ; si cette page en diffère, c'est celle-là qui s'applique.

Ce que contient le dossier

Les noms de fichiers sont en anglais et ne changent pas avec la langue du document, pour qu'un programme de vérification cherche un nom fixe plutôt que cinq orthographes.

  • manifest.json énumère chaque fichier avec sa taille et son SHA-256.
  • events.json contient la chaîne : chaque événement avec son numéro d'ordre, son moment, son contenu, l'empreinte du maillon précédent, sa propre empreinte de chaîne et un scellement.
  • proofs.json contient les chemins des événements vers la racine de leur heure.
  • anchors/ contient, par racine horaire, l'horodatage tel que le service d'horodatage l'a délivré, sous forme de jeton RFC 3161.
  • seals.json contient les clés publiques permettant de vérifier les scellements.
  • Le document de preuve sous deux formes, à lire, ainsi que le message tel qu'il a été envoyé et l'annonce telle qu'elle a été remise au service d'envoi.

Les quatre vérifications

Elles s'appuient les unes sur les autres : la première montre que les fichiers n'ont pas changé, la dernière que la chaîne existait déjà à un moment établi par un tiers.

  • Les fichiers face au manifeste. Calculez le SHA-256 de chaque fichier et comparez-le à la liste. Si l'un diffère, le dossier a été modifié après avoir été consigné.
  • La chaîne. Chaque événement porte l'empreinte du précédent, et le premier porte une valeur initiale qui lie la chaîne à une remise d'un expéditeur. Une suite d'événements cohérente ne peut donc pas être rattachée à une autre remise.
  • Les scellements. Chaque scellement porte sur les octets bruts de l'empreinte de chaîne, en ECDSA sur P-256 avec SHA-256. Vous le vérifiez avec openssl dgst et la clé publique du dossier.
  • L'horodatage. La racine de l'heure a été soumise à un service d'horodatage ; vous vérifiez le jeton dans anchors/ avec openssl ts et le certificat de ce service.

Ce qu'une vérification établit et ce qu'elle n'établit pas

La chaîne et les scellements établissent que rien n'a changé depuis la consignation. Ils n'établissent pas quand la consignation existait, car les empreintes sont les nôtres et les heures figurent dans nos propres données. C'est à cela que sert l'horodatage : un tiers a vu la racine de cette heure et a signé dessus.

Les scellements sont les nôtres. Le dossier n'établit pas qui détient la clé, et il le dit lui-même. Vous récupérez donc le certificat du service d'horodatage auprès de ce service et non auprès de nous ; sinon vous vérifiez notre chaîne avec un maillon qui nous appartient.

Si le répertoire anchors/ est absent, il n'y a pas d'horodatage externe pour cette période, et le document de preuve le dit explicitement. La chaîne est alors fixe par rapport à elle-même, mais le moment où elle existait n'a pas été établi de façon indépendante.

Si vous placez l'annonce conservée à côté de l'exemplaire arrivé chez le destinataire, les en-têtes diffèrent et le SHA-256 aussi. Ce n'est pas le signe d'une modification ultérieure : le service d'envoi ajoute ses propres en-têtes au départ. Ce qui se compare, c'est le contenu, et l'empreinte du manifeste établit que le fichier conservé n'a pas changé depuis.

Ce dont vous avez besoin

Openssl et un moyen quelconque de lire du JSON, rien de plus. La chaîne et les scellements se vérifient sans réseau. Pour l'horodatage, il vous faut une fois le certificat du service, que vous récupérez auprès de ce service.

Les lignes de commande exactes figurent dans format.md à l'intérieur du dossier, y compris les deux options sur lesquelles une vérification échoue alors que tout est correct : la racine se transmet comme empreinte et non comme fichier, et le jeton se lit avec l'option prévue pour un jeton isolé.

Version 1.0, 17 août 2026. Cette page décrit le format perlata.evidence-package.v1. Une question sur un dossier que vous avez reçu ? Écrivez à [email protected].