Security and data protection
Last updated
This page summarises how OGuardAI protects data. Every statement traces to the security documentation, which carries the detailed and binding versions.
The trust boundary
Values that OGuardAI tokenizes exist in raw form only inside the trusted zone: the runtime and, when deployed, the Python NER sidecar. The model, your logs, your vector store, and any external tool see tokens and safe metadata, not the original value. One exception is deliberate: a value your policy explicitly whitelists is passed through unchanged, because you chose to allow it. See Trust and Data Flow Diagrams.
What is stored
- Raw personal data exists only in memory during request processing, inside the trusted zone, and never crosses to the untrusted zone.
- Session state is encrypted with AES-256-GCM: client-held in sealed mode, in-process in memory mode, or encrypted at rest in a shared Redis in redis mode.
- The revocation table stores only HMAC-SHA-256 hashes of values, never raw personal data.
- Audit events carry entity types and counts only, never raw values.
What OGuardAI guarantees and what it does not
Guarantees
- Detected, non-whitelisted values are never left raw in the safe output; they are tokenized or removed.
- Sealed session blobs are encrypted with AES-256-GCM, and tampered blobs are rejected.
- Expired sessions produce clean errors, never data leaks.
- A revoked value always returns a deleted marker on every future rehydrate.
Not guaranteed
- No detection system catches all personal data in every context. Person, company, and location detection requires the NER sidecar and is not available in built-in-only mode.
- OGuardAI does not control your vector stores, databases, or log sinks. It cannot delete a value from them; the external cleanup stays yours.
- Output quality depends on the model provider.
- Latency depends on the detector mode, the payload, and sidecar availability. No latency figure is published without a named benchmark run.
The binding, testable version of every claim is in Security Guarantees.
Retention and deletion
- Sessions auto-expire after a configurable TTL, one hour by default.
- Removing a session key from the keyring instantly invalidates every blob sealed under it.
- Revocation makes a value resolve to a deleted marker on every future rehydrate. It is irreversible and affects future rehydrate calls only; outputs already delivered cannot be clawed back.
- Vector stores, databases, and application caches must still delete their own copies of data.
The full procedure is in Data Retention and the revocation contract.
Compliance posture
OGuardAI is a control you operate. It is not a model, a data processing agreement, or a certification. It is designed to support GDPR data minimisation and to strengthen HIPAA and SOC 2 programs, and it does not replace a data processing agreement, a legal review, or an audit. The control-to-article mapping is in GDPR and Compliance Controls.
Data sovereignty
By detecting and tokenizing identifiers before a request leaves your runtime, OGuardAI narrows what is disclosed to a model provider, which strengthens a Section 203 StGB, US CLOUD Act, and Schrems II posture. This is background and a description of a technical control, not legal advice and not a certification. See Data Sovereignty.
Reporting a security issue
If you believe you have found a security issue, email office@oronts.com. Please give us a reasonable time to investigate and address it before any public disclosure, and please do not access, modify, or delete data that is not yours while testing. We acknowledge reports and keep you informed of progress. We do not currently run a paid bug-bounty program. Our machine-readable contact is published at /.well-known/security.txt.