Architektur-Hinweis: Klassen/Typen/Namespaces mit aktuellem Sourcecode abgleichen. Symbole, die nicht im Source gefunden werden, mit
<!-- TODO: verify symbol -->markieren.
Version: 1.1
Last Updated: 2026-05-31
Module Path: src/security/
The security module provides encryption, key/provider integration, access-control/policy enforcement, detection, and audit-evidence surfaces for ThemisDB.
- Fail-closed behavior on invalid or unsafe security states.
- Deny-by-default policy behavior for access control paths.
- Separation of cryptographic key/provider responsibilities from data-plane logic.
- Source-verifiable security controls over speculative claims.
| File | Role |
|---|---|
field_encryption.cpp / encrypted_field.cpp |
field-level encryption/decryption paths |
vault_key_provider.cpp / pki_key_provider.cpp / hsm_provider_pkcs11.cpp |
key/provider integration |
rbac.cpp / access_control_manager.cpp / row_level_security.cpp |
authorization and row-level enforcement |
query_masking_policy.cpp / pii_redaction_policy.cpp |
masking and PII policy behavior |
aql_injection_detector.cpp |
query-injection detection surface |
zero_trust_policy_enforcer.cpp |
request-level policy enforcement |
security_evidence_collector.cpp / security_manager.cpp |
security orchestration and evidence surfaces |
behavioral_anomaly_detector.cpp / malware_scanner.cpp |
detection and threat-signal paths |
Request/data path
-> access-control/policy decision
-> optional masking/redaction
-> encryption/decryption/key-provider paths (where required)
-> evidence/audit signal emission
Detection path
-> query/content/security event input
-> detector/scanner scoring or validation
-> security status/event output
| Direction | Module | Interface |
|---|---|---|
| Used by | src/server/ |
request-time policy and security checks |
| Used by | src/query/ |
query-level security checks and masking |
| Used by | src/storage/ |
encryption/key-provider integration points |
| Uses | utility/audit components | evidence and chained audit output |
- Security control paths are designed for concurrent runtime usage.
- Shared registries/caches/providers are protected by explicit synchronization in their implementations.
- Security-sensitive state transitions must remain deterministic under concurrency.
- Invalid critical security state should lead to deny/reject behavior.
- Key/provider dependency failures are handled through explicit error paths.
- Detection and audit/evidence paths must remain operationally bounded.
- Some high-assurance runtime envelopes still require broader benchmark evidence.
- Some dependency-failure combinations remain under ongoing hardening verification.
- Operator-facing policy and diagnostics clarity is still being improved.
- Verified files:
src/security/field_encryption.cppsrc/security/vault_key_provider.cppsrc/security/hsm_provider_pkcs11.cppsrc/security/pki_key_provider.cppsrc/security/rbac.cppsrc/security/access_control_manager.cppsrc/security/row_level_security.cppsrc/security/query_masking_policy.cppsrc/security/aql_injection_detector.cppsrc/security/zero_trust_policy_enforcer.cppsrc/security/security_evidence_collector.cpp
- Verified interfaces/behaviors:
- encryption and key-provider surfaces
- policy enforcement and access-control behavior
- detection and security evidence collection paths