Vérifier une preuve
Le pack de preuves est un unique fichier JSON autonome : enregistrements,
points de contrôle, clés, ancres. obsign verify le contrôle sans réseau.
L’auditeur compile le vérificateur depuis les sources et l’exécute sur une
machine de son choix.
cargo run -p obsign-audit-core --example gen_sample -- /tmp/samplecargo run -p obsign -- verify /tmp/sample/evidence.json \ --trusted-keys /tmp/sample/trusted-keys.jsonFalsifiez le résultat et relancez :
sed -i '' 's/"outcome": "deny"/"outcome": "allow"/' /tmp/sample/evidence.jsoncargo run -p obsign -- verify /tmp/sample/evidence.json \ --trusted-keys /tmp/sample/trusted-keys.json # exit 1Codes de sortie
Section intitulée « Codes de sortie »| Code | Signification |
|---|---|
0 | Prouvé — vérifié contre des clés obtenues hors du pack |
1 | Falsifié — un enregistrement, un point de contrôle ou une ancre échoue à la vérification |
2 | Erreur d’exécution |
3 | Cohérent mais non prouvé — vérifié uniquement contre les clés que le pack transporte lui-même |
Le code 3 mérite qu’on y insiste : sans --trusted-keys, la vérification
n’établit qu’une cohérence interne, et le rapport le dit explicitement. Un
pack forgé et signé avec une clé inventée se valide lui-même ; l’ancrage des
clés doit venir d’un autre canal. Le code 0 est réservé à la vérification
contre des clés externes. Dans une tâche planifiée, traitez le code 3 comme
une erreur de configuration (le fichier de clés de confiance n’est pas
parvenu au vérificateur), jamais comme un succès.
Ce que la vérification établit
Section intitulée « Ce que la vérification établit »- Aucun enregistrement supprimé, inséré ou modifié — chaîne de hachage,
seqcontigus. - Aucune réécriture en bloc — la chaîne de hachage seule ne suffit pas : qui détient la base peut tout recalculer. Les points de contrôle, signés avec une clé extérieure au processus d’écriture (KMS/HSM), ferment cette brèche.
- Aucun scellé escamoté — les points de contrôle sont chaînés entre eux.
- Ce qui n’est pas prouvé est déclaré tel — un enregistrement cohérent mais couvert par aucun point de contrôle valide est signalé.
Les ancres
Section intitulée « Les ancres »Lorsqu’un point de contrôle porte une
ancre RFC 3161, obsign verify
la recontrôle structurellement et la rapporte. La signature CMS du jeton
d’horodatage lui-même est validée contre le certificat de la TSA avec un
outillage standard (openssl ts -verify), et le rapport le dit sans faire
passer un contrôle structurel pour un contrôle cryptographique.
Pourquoi le vérificateur est petit
Section intitulée « Pourquoi le vérificateur est petit »Le binaire de l’auditeur se compile à partir de ~31 crates, presque
uniquement la cryptographie elle-même (curve25519-dalek, sha2 et leur
support arithmétique). L’analyse des arguments est écrite à la main ; pas de
framework web, pas d’exécutif asynchrone, pas de pile TLS. L’arbre de
dépendances fait partie du produit : c’est ce qu’un auditeur doit lire avant
d’accorder sa confiance au verdict.