Sanctioned pathway · Compatible with SAP API Policy 4.2026a, §2.2.2 Read the whitepaper →
AegisAI
Security & compliance

Security that survives every audit.

Per-user identity propagation to 31 backends. Tamper-evident HMAC audit chain. Fail-closed by default. Each backend's own IAM as the sole arbiter. SOX, GDPR, EU AI Act, and SAP API Policy 4.2026a §2.2.2 alignment provided by one architecture — certification stays the customer's program.

Compliance posture

Built to answer the questions your regulator already asks.

SAP 4.2026a §2.2.2

Architecture-leg compatible. Documented BAPIs only. Per-user identity propagation.

SOX-aligned

Per-end-user audit attribution. Tamper-evident chain. Re-walkable from any machine with the HMAC key. (Customer's SOX program; AegisAI provides the audit substrate.)

GDPR-aligned

Per-field PII classification. Mask strategies driven by user clearance. Self-hosted by default; data plane stays with customer. (Customer's DPA + data residency posture; AegisAI provides the controls.)

EU AI Act-aligned

Deterministic policy decisions. No LLM in the decision path. Reproducible from logged inputs. ADR 0001. (Article 14 alignment is the customer's system classification; AegisAI provides the deterministic substrate.)

Security pillars

Six things you can verify, not just trust.

HMAC-chained tamper-evident audit

Every decision is a Postgres row in an HMAC hash chain. SHA-256 row hash + HMAC signature. SELECT FOR UPDATE row lock prevents race conditions. Independently re-walkable: python -m audit_service.verify_chain.

Identity propagation, not substitution

The end-user's JWT subject becomes the principal at every backend: Trusted RFC at SAP, STS at AWS, OBO at Azure, WIF at GCP, External SSO at Snowflake, Unity Catalog at Databricks, OAuth at Salesforce. ADR 0002.

Fail-closed at every layer

Redis down → trust denies. Postgres down → 503. JWKS unreachable → 401. PRODUCTION mode refuses to start with default secrets. Verified by automated tests.

Deterministic policy decisions

No LLMs in the policy path. Safe AST whitelist. Deny-by-default, deny-wins-on-tie. Same inputs → same verdict, every time, every replay. ADR 0001.

Parameterised SQL by construction

SafeQuery uses :named placeholders only. User input never enters the SQL string. SQL injection is a category error, not a defended threat.

Field-tag response firewall

Every field carries a classification, PII kind, and mask strategy. Salary aggregates. Email partial-masks. Tenant ID drops. Schema-driven, deterministic.

Threat model summary

What AegisAI defends against, in plain English.

The full threat model with mitigation per row lives in the whitepaper. Headline categories below.

Token theft and replay

Short TTL JWTs (5min–24h). Issuer + audience binding. Optional JTI denylist. Rotate JWT_SECRET to invalidate every token in flight.

Privilege escalation via scope expansion

Adaptive trust signals catch the "asking for things you've never asked for before" pattern. Rate limit bands tighten. Policy engine denies novel scope under block_scope_expansion restriction.

Exfiltration via coordination

Cross-user coordination signals catch swarm patterns — many agents asking small slices to assemble a full extract. Trust score collapses across the coordinated set.

Audit chain tampering

HMAC-SHA256 over canonical JSON; rows are immutable from the DB role's perspective. SELECT FOR UPDATE row lock prevents concurrent appends from skipping links. Chain break triggers the kill switch automatically.

Responsible disclosure

Found something? Email us. We'll acknowledge in two business days.

Email hello@aegisai.digital with subject AegisAI security disclosure, a description of the issue, reproduction steps, and your timeline expectations. We aim to publish a fix within 30 days for high-severity issues.

Ready when you are

Put the sanctioned pathway in front of your AI.

30-minute architecture call. We walk through your data sources, your auth model, and what a 4.2026a-compatible AI integration looks like for your stack.