Skip to main content

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 nonce per entry prevents replay attacks
  • Policy snapshot: policy_hash records 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:
  1. For each entry, verify the Ed25519 signature against the entry’s public key
  2. For each entry after the first, verify prev_hash == SHA-256(previous_entry.signature)
  3. Verify each nonce is unique (no replays)
  4. Verify timestamps are monotonically increasing
The QuintProxyService.VerifyAuditLog RPC performs this verification server-side. Bundles can also be verified offline using the exported public key.