Immutable Logs — Cryptographic audit chain
SecureAI records every AI interaction and every administrative action in a three-layer immutable chain. This architecture ensures that any modification, deletion or manipulation of records is detectable — even if someone has direct access to the database.Why does it matter?
A log that only exists in MongoDB is not truly immutable: anyone who has access to the server can delete it without leaving a trace. SecureAI solves this by pinning each log to Sigstore Rekor, a public transparency log operated by the Open Source Security Foundation (OpenSSF) — the same system the software industry uses to verify the chain of custody of critical packages.Technical guarantee: Once a Merkle block hash is in Rekor, no one — including the SecureAI operator — can retroactively alter that record. Any third-party auditor can independently verify it with a single curl call.
##The three layers of proof Each interaction bundle has three levels of cryptographic evidence:
Layer 1 — MongoDB Registry (L1)
The primary record of the interaction is stored in MongoDB with:
The string
prev_hash → current_hash → next_current_hash causes deleting any row to break the string — the discrepancy is detectable by traversing the sequence.
Layer 2 — Merkle Tree (L2)
Every 10 log entries are grouped into a Merkle block:merkle_root is the root hash that represents the 10 entries. If any entry is altered, the merkle_root changes — invalidating the inclusion test.
Layer 3 — Rekor Anchor (L3)
Themerkle_root of each sealed block is sent to Sigstore Rekor, a public append-only log. Rekor returns:
Once
log_index exists in Rekor, no one can delete it — the Rekor log is public, distributed, and immutable by design.
Transparency Portal (admin)
Access
Admin → AI Gateway → Transparency PortalVerify a bundle
- Type or paste
bundle_idinto the search field. - Click “Verify Proof”.
- You will see the three layers with status badges:
- ✅ Green = verified successfully
- ⚠️ Yellow = sealing/anchor pending (normal for interactions less than 2 minutes ago)
- ❌ Red = verification failure (warning signal)
Copy public verification link
When the result is visible, a bar appears with the “Copy public verification URL” button. That link is public — you can send it to an external auditor without requiring a login.##Public verification page Anyone with a
bundle_id can verify the test without access to SecureAI:
- The content of the message nor the response of the AI
- User data (name, email, IP)
- Any personally identifiable information
Independent verification with curl
An external auditor can verify any bundle without trusting the web interface:Step 1 — Get the test
Step 2 — Confirm the hash in the Merkle layer
Step 3 — Confirm the anchor in Rekor
signedEntryTimestamp field confirms that Rekor has accepted and signed the entry. That timestamp cannot be retroactively altered.
Signed export bundle (auditors and users)
In addition to the public verifier bybundle_id, SecureAI allows you to export cryptographic evidence in a portable ZIP for offline audits.
What does the ZIP include?
When an administrator uses Export signed bundle in Logs or SMLTP, a file is downloaded with:data.csv: exported data.manifest.json: cryptographic metadata (rowCount,merkleRootOfExport,signingKeyFingerprint, timestamp, etc.).manifest.sig: signature Ed25519 ofmanifest.json.verify.js: offline verifier without dependencies.README.txt: quick instructions.
How to verify (offline)
- Unzip the ZIP.
- Open a terminal in that folder.
- Run:
What does this verifier detect?
- Editing any field in
data.csv. - Deleting or adding rows in
data.csv. - Modification of
manifest.json. - Use of incorrect signing key.
FAIL, that export should not be considered trusted.
Quick test for audit
To demonstrate tamper detection:- Run
node verify.json the newly exported ZIP (it should give allPASS). - Edit any character in
data.csvand save. - Run
node verify.jsagain. - Must fail at least
Merkle root of export.
Interpretation of states
Complete flow of a message
Supplier compliance
The “Provider Compliance” badge indicates whether the AI provider (OpenAI, Anthropic, etc.) confirmed receiving the SMLTP privacy headers:Frequently asked questions
Can I verify a bundle without internet? Yes, download the test JSON from the “Download JSON” button while you are online. Themerkle_root and hashes are verifiable offline by recomputing the tree.
What happens if L3 is pending?
This is normal for recent interactions (less than 1 minute). Rekor’s sidecar processes blocks every ~30 seconds. If after 5 minutes it is still pending, verify that the sidecar rekor-anchor is running.
How long are records kept?
By default, logs are kept based on the configured retentionPeriod. Records marked as compliance (phi, pii, security, authorization) are never automatically deleted.
Can I share the verification link with a customer?
Yes. The URL /verify/<bundle_id> does not require login and does not expose sensitive data. It is safe to share with auditors, regulators or clients.
