Security Overview
For: Platform engineers and security teams evaluating or operating Axemere Gateway.
Axemere Gateway applies security at four layers. Understanding how they compose helps you reason about the attack surface and configure each layer appropriately.
Table of Contents
- Security Layers
- Layer 1 — Transport: Gateway-to-CP mTLS
- Layer 2 — Policy Integrity: Bundle Signing
- Layer 3 — Credential Protection: Envelope Encryption
- Layer 4 — Audit Integrity: Merkle Ledger
- What Each Layer Does and Does Not Protect
- See Also
Security Layers
| Layer | Mechanism | What it protects |
|---|---|---|
| Transport | Gateway-to-CP mTLS | Only registered gateways can reach the control plane |
| Policy integrity | Bundle signing | Policy bundles cannot be tampered with in transit or at rest |
| Credential protection | Credential encryption | Inline API keys are encrypted before hitting the database |
| Audit integrity | Merkle proofs | Execution records are tamper-evident and externally verifiable |
Standards used: Ed25519 (RFC 8032) · AES-256-GCM (NIST SP 800-38D) · RFC 3161 TSA · JCS (RFC 8785)
Layer 1 — Transport: Gateway-to-CP mTLS
Every self-hosted gateway authenticates to the control plane using a certificate issued by the Axemere CA. The private key is generated on the gateway and never transmitted; the control plane only ever receives a CSR.
Certificates are issued automatically during bootstrap and renewed automatically when within 14 days of expiry.
Layer 2 — Policy Integrity: Bundle Signing
The control plane signs every policy bundle with a dedicated Ed25519 key before serving it to gateways. Gateways verify the signature before activating the bundle. A compromised database or MITM on the gRPC connection cannot inject unauthorized policy.
Layer 3 — Credential Protection: Envelope Encryption
AI provider API keys stored in inline mode are encrypted with AES-256-GCM before being written to the database. The encryption key is never stored alongside the data. A database backup or SQL injection attack yields only ciphertext.
Encryption at rest is layered, not uniform: this application-layer AES-256-GCM step applies specifically to stored credential secrets. All other platform data (execution-record metadata, quarantine entries, usage and cost data) relies on the database's standard disk-level encryption at rest (managed-Postgres/Cloud SQL encryption), not a separate application-layer step. Both are real encryption; they operate at different layers, and this doc calls out which layer protects what rather than collapsing them into one blanket claim.
→ Credential Encryption (PMEK) | Choosing a Credential Mode
Layer 4 — Audit Integrity: Merkle Ledger
Every execution record is hashed, submitted to an append-only ledger, and periodically batched into a Merkle tree. The Merkle root is anchored to an external timestamp authority (RFC 3161). Customers can independently verify that a record has not been modified after the fact.
What Each Layer Does and Does Not Protect
| Threat | Mitigated | By which layer |
|---|---|---|
| Rogue gateway connecting to CP | Yes | mTLS — cert required |
| Stolen DB backup exposing inline API keys | Yes | Credential encryption |
| Tampered policy bundle in transit | Yes | Bundle signing |
| Tampered policy bundle in DB | Yes | Bundle signing |
| Tampered execution records after the fact | Yes | Merkle ledger |
| Compromised gateway process memory | No | Out of scope — OS/infra layer |
| Insider access to CP infra AND encryption key | No | Mitigated by future CMEK |
| Client-to-gateway authentication | No | Handled by API keys and policy, not mTLS |