1. Ce qui voyage avec un rapport
Trois valeurs rendent un rapport auto-vérifiable. Elles apparaissent sur l’artefact de rapport et sur les métadonnées publiques du portail de partage pour le lien.content_hash — SHA-256 des preuves
content_hash — SHA-256 des preuves
Un condensé SHA-256 hex minuscule du JSON de preuves canonique du rapport.
Les octets sont déterministes pour un rapport donné, donc quiconque
possède les mêmes preuves recalcule le hash identique. Toute édition des
preuves change cette valeur.
signature — Ed25519 sur le hash
signature — Ed25519 sur le hash
Une signature Ed25519 base64 calculée sur le
content_hash hex. Elle
prouve que le hash a été signé par la clé de signature d’OrcaRouter et
n’a pas été forgé.sig_key_id — quelle clé l'a signé
sig_key_id — quelle clé l'a signé
Un identifiant court et stable pour la clé publique active (par exemple
orca- suivi d’un fragment hex). Le vérificateur l’utilise pour confirmer
que le rapport a été signé par la clé actuellement publiée — un rapport
signé par un id de clé inconnu échoue de manière fail-closed.La signature couvre le hash de contenu, pas directement les octets du PDF,
du CSV ou du JSON rendu. Les mêmes preuves se rendent dans les trois formats à
partir d’un seul hash, donc la garantie d’intégrité porte sur les preuves
sous-jacentes — chaque export d’un rapport donné partage un seul
content_hash, signature et sig_key_id.2. Récupérez la clé publique
La clé publique de signature est publiée sur un endpoint ouvert — aucune authentification, aucun contexte d’espace de travail. Un auditeur l’appelle directement.public_key est la clé publique Ed25519 de 32 octets encodée en base64.
Le key_id ici doit correspondre au sig_key_id sur le rapport — s’il ne
correspond pas, le rapport a été signé par une clé différente (probablement
ayant fait l’objet d’une rotation ou plus ancienne) et ne se vérifiera pas
contre cette clé publiée.
3. Vérifiez la signature
Vous pouvez vérifier la signature de deux façons. Soit demander à OrcaRouter de vérifier le tuple pour vous, soit vérifier entièrement hors ligne avec la clé publique publiée.L’endpoint de vérification hébergé
Faites un POST des trois valeurs du rapport vers l’endpoint de vérification ouvert. Il est public — un auditeur l’appelle sans aucune référence d’identification.valid: true signifie que la signature est correcte contre la clé active
pour cet id de clé. valid: false signifie soit que la signature ne
correspond pas au hash, soit que le hash est vide, soit que le sig_key_id
ne correspond pas à la clé actuellement publiée.
Vérifiez hors ligne avec la clé publique
Un auditeur sceptique n’a pas besoin de faire confiance à l’endpoint de vérification du tout. Parce que l’algorithme est du Ed25519 standard sur le hash de contenu hex, la signature est vérifiable avec n’importe quelle bibliothèque cryptographique :4. Ce que couvre la signature
Une signature prouve que lecontent_hash du rapport a été signé par
OrcaRouter, et le hash prouve que les preuves ne sont pas éditées. Une
subtilité : le hash est calculé sur une forme canonique des preuves que
construit la passerelle — pas sur les octets bruts du fichier JSON ou PDF.
Donc re-hasher l’artefact téléchargé vous-même ne reproduira pas
content_hash. Utilisez l’endpoint de vérification (§2/§3), qui recalcule le
hash canonique et vérifie la signature Ed25519 pour vous :
| Vérification | Signification |
|---|---|
signature_valid: true | Le content_hash a été signé par la clé d’OrcaRouter — les preuves sont authentiques et non éditées. |
| L’id de clé correspond | Le sig_key_id du rapport == l’id de clé publié → signé par la clé active. |
5. Vérifier un rapport partagé
Lorsque vous envoyez à un auditeur un lien de portail de partage au lieu du fichier, les métadonnées du portail portent déjàcontent_hash,
signature et sig_key_id, plus un flag signature_valid calculé côté
serveur. L’auditeur peut faire confiance au flag et relancer les
vérifications ci-dessus contre la clé publique indépendamment — le portail de
partage ne nécessite aucune connexion, et le chemin de vérification est
identique.
Un artefact partagé n’est servi que tant que sa région estampillée correspond
encore à la
région de résidence des données
déclarée de votre espace de travail. Si la région a été changée, les
téléchargements sont retenus même si les métadonnées de signature restent
vérifiables. C’est intentionnel — voir
Lectures inter-régions.
6. Où aller ensuite
Rapports signés
Comment un rapport signé est généré, quelles preuves il capture, et
comment frapper un lien de partage auditeur.
Exporter les preuves
Récupérez les preuves de rapport en PDF, CSV ou JSON pour les documents de
travail de votre auditeur.
Résidence des données
Comment l’estampille de région sur un rapport gouverne où il est stocké et
servi.
Responsabilité partagée
Ce qu’OrcaRouter garantit sur le chemin de la passerelle versus ce qui
reste le vôtre.
