ASTIS Documentation
Getting Started
Pick the quickstart for what you're building — the three products don't share a path.
ASTIS Mail
Encrypted workspace — keep Gmail / M365, no migration.
- 1Start a 30-day Mail Free Trial at portal.astis.io.
- 2Open mail.astis.io (PWA on desktop / mobile) or install the Thunderbird, Outlook, or Gmail plugin.
- 3Compose as usual — ASTIS encrypts on your device and manages keys. Recipients decrypt automatically or via a secure onboarding link.
ASTIS Platform (API)
Cryptographic controls in your own product.
- 1Create an evaluation org in portal.astis.io and generate an API key — free developer access.
- 2Call encrypt / sign / FPE / audit endpoints, or use the SDK (Python / Go / Node / Java).
- 3Move to a paid annual license for production; add HYOK or HYOK CVS for self-hosted custody.
Workload Secrets
Deliver secrets to Kubernetes workloads.
- 1Register your cluster and mint a workload-bound key in Portal.
- 2Seal secrets with astis-cli; store the envelope in a k8s Secret, Vault, or Git.
- 3Wrap your app with astis-exec — it unseals in-pod after attestation.
How It Works
Architecture Overview
ASTIS is a security layer, not a mail server. Your existing email provider handles delivery and storage. ASTIS adds:
- End-to-end encryption — messages are encrypted with OpenPGP before leaving your client
- Session key capsules (SKEY) — encrypted key material that controls access to each message
- Policy enforcement — TTL, sharing rules, and access requirements defined by the sender or organization
- Zero-knowledge for email content — ASTIS never sees or stores plaintext email content; session keys are stored as encrypted capsules (transient in-memory plaintext only during Key Rewrap)
Message Flow
1. Sender composes email → ASTIS plugin encrypts content with SKEY
2. SKEY is wrapped into an encrypted capsule → sent to ASTIS service
3. Encrypted email is delivered via your normal email provider
4. Recipient's ASTIS plugin requests capsule → decrypts SKEY → reads message
5. Access is governed by TTL, policies, and recipient key verification
Plugins & Clients
ASTIS Mail
AvailableThe primary ASTIS client — a web/PWA app at mail.astis.io. Works across all devices. Available with a 30-day free trial.
Web, PC, Mobile, Tablet
Thunderbird Plugin
AvailableOpenPGP key management and ASTIS encrypted email inside Mozilla Thunderbird — WKD key lookup and detection of incoming OpenPGP messages.
Windows, macOS, Linux
Gmail Web Plugin
BetaEnd-to-end encryption directly in Gmail web interface.
Chrome, Firefox, Edge
Outlook Web Plugin
BetaEnterprise-grade encryption for Outlook Web / Microsoft 365.
Chrome, Firefox, Edge
Mobile (Android/iOS)
Coming SoonNative mobile clients with biometric authentication.
Android, iOS
Encryption & Keys
OpenPGP (RFC 4880)
All messages are encrypted using OpenPGP. Each user has a public/private key pair. Public keys are discoverable via WKD (Web Key Directory) protocol.
Session Key Capsules (SKEY)
Each email is encrypted with a unique session key. The session key is then wrapped into an encrypted capsule:
- Capsule is encrypted to the recipient's public key
- Plaintext SKEY is never stored or logged by ASTIS
- TTL and policies are enforced at the capsule level
Key Discovery (WKD)
ASTIS uses the Web Key Directory protocol (RFC 8605) for automatic public key discovery. When you send an email, the recipient's public key is automatically retrieved via their email domain's WKD endpoint.
ASTIS-Managed
ASTIS operates the service and holds the org key as sealed material — fastest rollout. You can generate and revoke the key; ASTIS processes it transiently during Key Rewrap (honest policy-trust).
HYOK
Hold Your Own Key — decryption authority stays under customer control. For regulated/sovereign environments requiring on-premise key operations.
Organizations
Organization Management
Business and Enterprise plans include organization-level controls:
- Roles — Admin, Auditor, Member roles with granular permissions
- Policies — Organization-wide TTL defaults, external sharing rules, access requirements
- Audit logs — Security-relevant events: policy changes, admin actions, access decisions
- Team key governance — Centralized key management across the organization
Licensing & Seats
- You only pay for users who send encrypted emails
- Receiving and reading emails is unlimited and free
- Per-seat price is locked for the full annual subscription term
- Seats can be added mid-term at the locked price
- Seat reductions take effect at next renewal
Infrastructure Services
WKD Service
Web Key Directory — RFC 8605 compliant public key discovery via email domain. HTTPS-based, HKP support.
SKEY Service
Session key capsule management — secure storage, retrieval, TTL enforcement, and policy-based access control.
Customer KMS (HYOK option)
Optional customer-held key residency under HYOK — your key stays in your KMS with rotation, revocation, and a vendor kill-switch. Sometimes called BYOK.
HYOK Service
Hold Your Own Key — on-premise key authority, HSM support, zero-knowledge for email content, data residency compliance.
CryptoVault Service (CVS)
PrivatePGP key vault and HYOK gateway. Stores password-encrypted private keys with binding-based access control. The password is never recoverable by CVS. CVS stores sealed private-key material and performs approved key operations; managed CVS may process key material transiently in memory. HYOK and HYOK CVS move that boundary to customer infrastructure. Routes HYOK operations to customer-controlled key endpoints.
WALEP
Wall Encryption Proxy — cross-platform client-side cryptographic engine powering ASTIS plugins on Windows, macOS, and Linux. Handles encryption, decryption, key generation, and capsule operations locally on the device.
WALEW
Wall Encryption WebAssembly — Rust-compiled WASM cryptographic engine that runs entirely in the browser. Powers in-browser ASTIS Mail (PWA) and is available to customer web applications via the API platform. Full sealed envelope, OpenPGP, and capsule operations without a native install. FIPS-validated build on the certification roadmap.
WALES
Wall Encryption Service — server-side cryptographic processing designed for mobile users who want the simplest, fastest way to use encrypted email — no plugin installation required. Plaintext is processed transiently in a controlled environment and never persisted.
SDKs & API
Decrypt secrets and sealed data inside your own app — the ASTIS edge never sees plaintext. Three steps from an API key to a decrypted secret.
What a secrets manager can't do
- Decryption is pod-local. Plaintext exists only in the authorized pod's RAM — never in etcd, a config server, or on the ASTIS edge. Vault, External Secrets, and Sealed Secrets each materialize plaintext along the way — a written-back k8s Secret, a mounted file, an agent-rendered file. ASTIS narrows that moment to an attested, pod-local decrypt.
- Access is bound to the workload, not a token. Decryption needs four factors — the API key + the pod's Kubernetes-signed identity + an in-pod ephemeral key + the approved image digest. A stolen key or leaked file decrypts nothing off-pod.
- It composes — it doesn't replace. Keep Vault for rotation, your KMS as custodian, your config server for delivery. ASTIS turns them into pure ciphertext transport and adds the zero-knowledge decryption edge on top.
1Get a workload API key
In portal.astis.io → API Keys, create a workload key — bound to your cluster, namespace, service account, and approved image digest. Store it as a Secret in the pod's namespace:
kubectl -n my-ns create secret generic astis-api-key \
--from-literal=api-key='astis_live_sk_…'2Wire your pod
Your app declares no identity — the gateway derives it from your API key + the pod's ServiceAccount JWT. Mount four things into the pod:
/etc/astis/api-key workload API key (the Secret from step 1)
/var/run/secrets/astis-audience/token projected SA token (audience: astis.io)
/etc/podinfo/{name,uid} pod identity (downward API)
/etc/astis-sealed/* your sealed secrets (ASTIS:v2 ciphertext)Grab the full ready-to-apply Deployment from the Kubernetes recipes .
3Decrypt in your app
Install the SDK, build the client with fromKubernetes(), and call openSecret(). That's the whole integration.
Install (pip)
# from the public repo (PyPI release coming)
pip install "git+https://github.com/astis-io/astis-sdk.git#subdirectory=sdks/python"Decrypt a secret
from astis_sdk.kubernetes import from_kubernetes
# no identity args — the gateway derives it from the pod's API key + SA token
client = from_kubernetes()
wire = open("/etc/astis-sealed/db-password").read().strip()
secret = client.open_secret(wire) # plaintext only in this process's RAMAll four clients are open source, Apache-2.0: astis-io/astis-sdk (SDKs, wire contracts, astis-exec source, Spring Boot starter). A complete deployable cluster example — manifests plus the same app in all four languages — lives in astis-io/astis-kubernetes.
Where does the envelope come from?
openSecret() takes a string — the ASTIS:v2 ciphertext. Keep it anywhere config lives: a mounted Secret file, an env var, or an application.yaml / config property — it's ciphertext, so it's safe in all of them.
# the envelope is just a string — source it however you like (pick one):
wire = open("/etc/astis-sealed/db-password").read().strip() # mounted Secret (file)
wire = os.environ["DB_PASSWORD_ENC"] # Secret exposed as env var
wire = settings["db_password_enc"] # any config object
secret = client.open_secret(wire)Only the plaintext is sensitive — never write the decrypted value back into env or config.
Multiple secrets? One key, many envelopes.
A service usually needs several — DB1, DB2, an LLM API key. Seal each to the same workload, mount them as files, and decrypt each with the same client (one session is reused for all). Adding a secret never needs a new key, and each rotates independently.
/etc/astis-sealed/db1-password
/etc/astis-sealed/db2-password
/etc/astis-sealed/llm-api-keyclient = from_kubernetes() # one client, one workload session
db1 = client.open_secret(open("/etc/astis-sealed/db1-password").read().strip())
llm = client.open_secret(open("/etc/astis-sealed/llm-api-key").read().strip())With the Spring Boot starter or astis-exec, add one mapping line per secret — no code.
SDK source & snippets
Importable clients for Python, Go, Node.js, and Java — “how do I program against ASTIS?” All implement the same ASTIS:v2 wire contract and are cross-language verified.
Kubernetes recipes
Deployable examples — manifests, RBAC, Dockerfiles — for running pod-side decryption in a cluster: “how do I run it in Kubernetes?” The Java example consumes the Spring Boot starter directly.
ASTIS Mail OEM
A white-label, client-side encrypted mail & calendar workspace — under your brand, your domain, your identity. Built on the same end-to-end crypto core as ASTIS Mail, so everything in the Mail docs above (How It Works, Encryption & Keys) applies as-is.
Your brand & packaging
Branded workspace as a PWA in the browser today; optional desktop and mobile packaging (Windows, macOS, Linux, iOS, Android) can be scoped as part of the engagement — or embed it inside your existing product or customer portal.
Your identity
SSO / identity integration scoped for production white-label deployments — OIDC, Entra, Okta, Ping, or your own IdP. Access locked to your organization only, with no consumer accounts.
Who it is for
Regulated institutions, banks, platforms, and OEM partners that need their own brand, domain, identity and deployment model — with client-side encryption instead of gateway trust.
Engagement path
White-label engagements are scoped per partner: branding depth, app packaging, identity integration, and deployment model. Start from the product page or talk to us directly.
ASTIS HYOK CVS
CVS (Crypto Vault Service) is the key authority behind every ASTIS product — it holds sealed private-key material and performs the approved key operations. HYOK (Hold Your Own Key) CVS is its self-hosted deployment: the same CVS runs inside your perimeter (Helm), so every key operation happens on your infrastructure. ASTIS coordinates — and never touches key material.
What runs through CVS
- Encryption-at-rest (API Platform): envelope KEK operations — DEK unwrap for sealed envelopes (
/v1/envelopes/unwrap). - Tokenization & peppering: FPE master key-fetch and pepper share custody — keys leave only as sealed shares, unwrapped client-side.
- Sign & Verify: org signing key custody behind
/v1/sign. - Workload Secrets: the workload KEK unwrap that re-seals DEKs to an attested pod's ephemeral key.
- Mail org keys: tenant KEK cold storage and policy-gated rewrap (recovery, offboarding).
ASTIS-Managed CVS
ASTIS hosts the vault. Key material is stored sealed and processed transiently in memory during approved operations (e.g. Key Rewrap). Fastest rollout, honest policy-trust.
HYOK CVS (self-hosted)
You host the CVS pod in your perimeter (Helm), with HSM support and data residency. All KEK/unwrap operations above run on your infrastructure — ASTIS drops out of your critical path entirely, remaining a software supplier. Customer-held keys (sometimes called BYOK) are provided through this model.
Why self-host
Designed for sectors where vendor-held keys are off the table: financial services under DORA / NIS2 vendor-risk programs, healthcare (HIPAA), payment infrastructure (PCI DSS), public-sector and sovereign environments with data-residency mandates. Whether a deployment satisfies your control set is your assessor's call — what HYOK CVS changes is the architecture: a vendor cannot be compelled to disclose what it cannot decrypt, and the availability and custody of your keys no longer depend on ASTIS-as-a-service.
Exit / anti-lock-in
Formats are open standards (OpenPGP RFC 4880/9580, WKD) — data decrypts with any compatible client, and exit requires no re-encryption. Lock-in is removed cryptographically, not contractually.
Sales-led: deployment is scoped with your security team.
Frequently Asked Questions
Do I need to change my email provider?
No. ASTIS is a security layer that works with your existing provider (Microsoft 365, Gmail, SMTP, etc.). Keep your current setup.
What happens if the recipient doesn't have ASTIS?
ASTIS supports secure escrow onboarding. The message stays encrypted, and once the recipient registers and publishes a public key, the capsule is re-wrapped to their key.
Does ASTIS store my emails?
No. ASTIS servers do not store your emails. Your email provider handles storage and delivery. Plaintext email content is handled only within the ASTIS client application on your device — it is never seen or stored by ASTIS servers.
What encryption standard does ASTIS use?
ASTIS uses AES-256-GCM for email content encryption and OpenPGP (RFC 4880) for session key (SKEY) capsule protection. Each message is encrypted with a unique session key, which is then wrapped into an OpenPGP capsule. Plaintext session keys are never stored.
Can I use ASTIS for my team?
Yes. Business plans support 15–2,000 senders with organization policies, audit logs, and team key governance. Enterprise plans are designed for larger organizations or regulated environments — they include HYOK CVS key custody, extended audit retention, dedicated onboarding, priority support, SLA options, and custom pricing. Contact sales for a tailored deployment.
What is TTL (Time-to-Live)?
TTL controls how long a recipient can decrypt a message. After the TTL expires, the session key capsule is no longer accessible. Free: up to 14 days. Plus: up to 90 days. Business/Enterprise: custom TTL.