Skip to content

Threat model

AdversaryDefense
Insider / DB admin alters a stored recordDetected: the recomputed Merkle root no longer matches the immutable anchor.
Compromised API replica tries to overwrite an anchorRejected on-chain: anchors are write-once.
Malicious tenant tries to read/forge another tenant’s batchBlocked at the ledger: batch state is keyed by the caller’s signed identity.
Network attacker replays or tampers with a webhookHMAC-SHA256 signature on the callback body.
Unauthenticated prober on the public endpointServer-side channel resolution + only “anchored yes/no + root” exposed; no tenant metadata.
Brute-force / abuse of the APIOpt-in API keys (hashable at rest) + a Redis-backed shared rate limiter.
Oversized-body DoSConfigurable request body cap (413).
  • The permissioned Fabric network is honest for ordering and immutability. As with any blockchain, the guarantee rests on consensus (Raft ordering, endorsement policy). A majority collusion of orderers is out of scope.
  • Keys and identities are protected by the operator. API keys and Fabric signing identities must be kept secret; the platform supports hashing keys at rest and least-privilege identity bundles, but custody is the operator’s job.
  • SHA-256 is collision-resistant.
  • Confidentiality of payloads — encrypt sensitive fields before sending.
  • Availability/backup of off-chain data — deletion is detectable, not prevented.
  • Pre-anchor tampering — integrity is guaranteed from the moment of anchoring; anchor promptly to shrink the window.
  • Physical/host compromise of the ledger nodes — a standard blockchain-network assumption.

See the hardening summary for the concrete mitigations shipped across the stack.