audit.proto
Every intercepted tool call produces one or more audit entries. Each entry is signed with Ed25519 and chain-linked via SHA-256 hash of the previous entry’s signature, providing tamper-evident audit trails.AuditEntry
Integrity Model
- Ed25519 signatures: Each entry signed over its canonical representation
- Chain linking:
prev_hash = SHA-256(previous_entry.signature) - Replay protection: UUID
nonceper entry prevents replay attacks - Policy snapshot:
policy_hashrecords which policy version was active when the decision was made
AuditBundle
Collection of entries for export and offline verification.Verification
To verify an audit trail:- For each entry, verify the Ed25519 signature against the entry’s public key
- For each entry after the first, verify
prev_hash == SHA-256(previous_entry.signature) - Verify each nonce is unique (no replays)
- Verify timestamps are monotonically increasing
QuintProxyService.VerifyAuditLog RPC performs this verification server-side. Bundles can also be verified offline using the exported public key.