Security at dotEnv Cloud
Your secrets are encrypted with AES-256-GCM and, with client-managed keys, can be made unreadable to us by design. Here's exactly how it works.
Encryption you can verify
Every secret is encrypted before it's stored, using the same authenticated cipher across our platform, CLI, and every SDK.
Zero-knowledge, client-managed keys
Choose client-managed custody and your encryption key never reaches our servers. Encryption and decryption happen on your machine (through the CLI or an SDK), so we only ever store ciphertext we cannot read.
The data key is derived the same way regardless of who holds the key. That means switching custody never re-encrypts your secrets and never requires downtime.
Zero-knowledge Client decrypts locally
With client-managed keys the server never sees your key. Decryption only ever happens client-side, so a breach of our database exposes ciphertext, not secrets.
No re-encryption on custody switch
Because a project's key and salt always derive the same AES data key, moving between server-managed and client-managed custody leaves your stored ciphertext untouched.
Key-proof verification
For client-managed keys we store a PBKDF2 key proof (600,000 iterations), never the key itself. Every write is checked against it, so a mistyped or wrong key is rejected instead of silently corrupting your secrets.
Access control & accountability
Encryption is only half the story. Access to your account and your data is scoped, authenticated, and logged.
Scoped API tokens
API tokens carry explicit abilities, so each token grants only the permissions it needs. Tokens can be created, scoped, and revoked independently.
Two-factor authentication
Protect your account with TOTP-based two-factor authentication. Setup is confirmed end-to-end before it's enabled, with recovery codes for backup access.
Audit logging
Activity across your organization is recorded in an audit log you can review (who did what, and when), scoped to your organization and retained per your plan.
Policies & responsible disclosure
Read our formal commitments, or report a vulnerability. We take responsible disclosure seriously and welcome reports from security researchers.
Found a vulnerability? Reach our team through the contact page for responsible disclosure.