verificateur
Vérificateur indépendant et open-source des preuves d'archivage Archive XO — contrôle l'intégrité SHA-256, l'horodatage RFC 3161 et l'ancrage OpenTimestamps d'un dossier de preuve, sans le logiciel Archive XO.
- Active · last change 9-9-2026
- ★ 1 on GitHub
README
Vérificateur Archive XO
Outil indépendant et open-source qui vérifie un dossier de preuve Archive XO — sans le logiciel Archive XO, sans la machine d'origine et sans aucun serveur.
Pourquoi cet outil ?
Une preuve numérique n'a de valeur que si n'importe qui peut la vérifier avec ses propres moyens, sans dépendre de l'éditeur qui l'a produite. C'est le rôle de ce vérificateur : public, auditable et autonome.
Il n'implémente aucune cryptographie maison. Il orchestre la vérification et délègue chaque primitive aux implémentations de référence — exactement ce qu'un auditeur ferait à la main. C'est ce qui rend le verdict opposable :
| Maillon vérifié | Outil de référence délégué |
|---|---|
| Empreinte SHA-256 du document | openssl dgst -sha256 |
| Présence dans le manifeste mensuel | comparaison locale |
| Horodatage RFC 3161 (TSA) | openssl ts -verify |
| Ancrage Bitcoin (OpenTimestamps) | ots verify |
La chaîne prouvée est : document → manifeste mensuel → horodatage TSA + ancrage Bitcoin.
Le vérificateur ne contient aucun secret et n'ouvre aucune connexion vers Archive XO.
Ce que le verdict prouve — et ne prouve pas
Un PASS établit l'antériorité et l'intégrité : le document existait, inchangé, au plus tard à la date du jeton d'horodatage. Il ne prouve ni l'authenticité du contenu du document, ni une date antérieure au jeton — aucune technologie d'horodatage ne le peut.
Autorité d'horodatage épinglée
Le certificat racine de FreeTSA est embarqué dans le binaire (empreinte SHA-1 0B:93:07:6C:81:39:FA:2B:83:38:5F:78:28:D7:BE:75:73:40:D2:41, vérifiable sur freetsa.org). Un jeton validé contre cette autorité affiche [ OK ] … autorite reconnue. Un jeton qui ne se valide que contre le certificat fourni dans le dossier de preuve lui-même affiche un [WARN] explicite : le dossier n'est alors cohérent qu'avec lui-même, la date n'est pas garantie par un tiers de confiance connu de ce vérificateur.
Dépendances
À placer sur le PATH ou à côté de l'exécutable :
- openssl (
openssl.exesous Windows) — vérification SHA-256 et RFC 3161. - ots — client OpenTimestamps (
ots.exe) — vérification de l'ancrage Bitcoin (facultatif : sans lui, ce maillon est marqué[WARN], non bloquant).
Utilisation
Téléchargez le binaire depuis la page Releases, ou compilez-le (voir plus bas), puis :
ArchiveXOVerify <dossier_de_preuve.zip | repertoire_extrait>Le programme accepte directement le .zip (il l'extrait dans un dossier temporaire) ou un répertoire déjà décompressé.
Exemple de sortie
--- Verification de la chaine de preuve ---
[ OK ] metadata.json ??? certificat lu
[ OK ] Empreinte SHA-256 ??? 3a7bd3e2360a3d29... = certificat
[ OK ] Manifeste ??? empreinte presente dans MANIFEST_2026-05.sha256
[ OK ] Horodatage TSA primaire ??? horodatage RFC 3161 valide ??? autorite reconnue (FreeTSA, epinglee)
[ OK ] Ancrage Bitcoin ??? preuve OpenTimestamps confirmee
--- Verdict ---
RESULTAT : PASS ??? anteriorite et integrite etablies.
Ce document existait, INCHANGE, au plus tard le : May 12 09:41:07 2026 GMT
Ce verdict etablit l'ANTERIORITE et l'INTEGRITE du document.
Il ne prouve ni l'authenticite de son contenu, ni une date
anterieure a celle du jeton d'horodatage.Codes de sortie
| Code | Signification |
|---|---|
0 |
PASS — chaîne de preuve complète et valide (intégrable en CI/scripts) |
1 |
FAIL — au moins un maillon critique invalide ; preuve NON vérifiée |
2 |
Erreur d'usage ou dépendance manquante |
Un maillon critique en échec (empreinte qui ne correspond pas, document absent du manifeste, jeton TSA invalide) provoque un FAIL. Une preuve Bitcoin encore pending ou un certificat CA TSA non joint produisent un [WARN] non bloquant.
Compilation depuis les sources
Écrit en Free Pascal. Aucune dépendance Windows ni LCL : un simple fpc suffit, sur les trois OS.
# Windows / Linux / macOS (Free Pascal install??)
fpc -O2 ArchiveXOVerify.lprProduit l'exécutable ArchiveXOVerify (.exe sous Windows). Les binaires de publication sont signés et attachés à chaque Release pour garantir leur origine.
Structure d'un dossier de preuve
<dossier_de_preuve>/
????????? metadata.json Certificat : empreinte attendue du document
????????? original/ Le document d'origine (+ éventuel XML Factur-X)
├── manifest/*.sha256 Manifeste mensuel des empreintes
├── tsr/
│ ├── primary.tsr Jeton d'horodatage RFC 3161 (TSA primaire)
??? ????????? tsa-primary.pem Certificat CA du TSA (pour v??rif. hors-ligne)
??? ????????? secondary.tsr Jeton TSA secondaire (facultatif)
????????? ots/
????????? bitcoin.hash.ots Ancrage OpenTimestamps (Bitcoin)Vérification 100 % manuelle (sans cet outil)
Chaque maillon est reproductible à la main — c'est là toute la force du dispositif :
# Recalculer l'empreinte SHA-256 du document
openssl dgst -sha256 original/facture.pdf
# Vérifier le jeton d'horodatage RFC 3161
openssl ts -verify -data manifest/MANIFEST_2026-05.sha256 -in tsr/primary.tsr -CAfile tsr/tsa-primary.pem
# V??rifier l'ancrage OpenTimestamps
ots verify ots/bitcoin.hash.otsLa preuve ne dépend ni d'Archive XO, ni de cet outil.
Limites connues
- Certificat CA du TSA : la vérification RFC 3161 hors-ligne exige les certificats CA (
tsr/tsa-primary.pem) joints au dossier. Sans eux, le maillon TSA est marqué[WARN]. - Client
ots: requis uniquement pour l'ancrage Bitcoin. Un destinataire sans cet outil peut suivre la procédure manuelle ci-dessus ou celle du fichierVERIFICATION.txtinclus dans le dossier de preuve.
Licence
Distribué sous licence MIT. Voir le fichier LICENSE.
Liens
- Site : **https://www.archive-xo.com**
- Éditeur : ROSE SARL — contact@archive-xo.com

