Security at Phase
Access to your secrets is controlled by encryption keys that only you hold. Phase is built on a rigorous cryptographic foundation: open source, end-to-end encrypted by default, and engineered for enterprise-grade security.
Robust primitives.
One standardized set of primitives across the platform: elliptic-curve cryptography on Curve25519, authenticated encryption, and memory-hard key derivation. All implemented using the open source libsodium library.
ChaCha20
CSPRNG — crypto_kdf_keygen · 32-byte keys seeded from /dev/urandom · crypto.getRandomValues()
XChaCha20-Poly1305
AEAD — 256-bit keys · 192-bit nonces · per-field ephemeral keypair + random IV · output K_eph ‖ C ‖ IV
X25519
ECDH over Curve25519 — 256-bit keys · ephemeral keypair per operation → session key
XOR · t = n
2-of-2 split of a 256-bit key — share0 ⊕ share1 · an individual share reveals nothing
Argon2id
Memory-hard — 32-byte seeds · account seed: 1 GB · 4 iterations · device key: 64 MB · 2 iterations
Blake2B
crypto_kdf_derive_from_key — CONTEXT __sign__ → Ed25519 signing keys → X25519 · key digests salted with Salt_env, 32-byte outputs — server-side lookups without plaintext
End-to-end encryption
Encrypted by default: keys, values and comments, with an independent key for every environment. In the default E2EE mode Phase servers store only ciphertext and cannot decrypt your secrets.
Your account keys derive from a 24-word mnemonic phrase only you hold. Granting access wraps an environment’s keys to your account’s public key. The server stores wrapped keys and ciphertext it cannot open.
End-to-end encryption is the default. Server-side encryption is a per-app opt-in for when you need third-party syncs or the REST API. The environment key is then stored encrypted on the server.
Share a secret with anyone via a single link: the Box Seed travels in the URL fragment, parsed only by the browser and never sent to the server. View limits and expiry built in.
No single point of compromise
An access token carries only half a key. The other half sits encrypted on the server, and only the two together, recombined on your device, reconstruct anything usable.
Cryptographic access grants
Granting a teammate access to an environment means wrapping that environment's keys to their public key, on your device. The server stores the result and can never open it.
Granular access control.
Phase includes purpose-built tools to manage and control authentication, authorization and access to every resource.
Single sign-on & SCIM
Authentication delegates to your identity provider, including Google, GitHub, GitLab, Entra ID, Okta and Authentik. SSO can be enforced org-wide. SCIM provisioning keeps teams in sync with your directory, joiners and leavers included.
Authentication docsModular RBAC
A role-based access control engine with built-in roles for the common shapes and custom roles for everything else: per-resource CRUD granularity, scoped per app and per environment.
Access controlNetwork access policies
Restrict where secrets can be accessed from: IP allow-lists applied per user and per service account, so a valid token from the wrong network is still refused.
Network policiesAudit logs
Every access, change and grant is recorded: who, what and when, across apps and environments.
Audit logsSOC 2 Type 2
Independently audited by Oneleet. Our controls are examined continuously. Audit reports are available in our trust center.
Penetration tested
Penetration tested by Oneleet, an independent security firm, across the platform, APIs and services, with remediation tracked to completion. Executive summaries are available through the trust center.
Security controls.
The controls in place across the platform and the organization, audited and continuously monitored. The live list is published in the trust center.
Access Control and Authorization
- Access granting process used
- Access management policy established
- Account inventory maintained
- Dormant accounts disabled
- Employee access regularly reviewed
- MFA required for critical services
- Password management policy enforced
- Password management policy established
Data Management and Protection
- Data encrypted at rest
- Data encrypted in-transit
- Data inventory maintained
- Data management and retention policy established
Disaster Recovery
- Automated backups enabled
- Business continuity and disaster recovery policy established
- Data recovery process established
- Disaster recovery plans tested
- Recovery data isolated
Email Security
- DMARC policy and verification used
- Email account access restricted
- Email settings block malicious content
Endpoint Security
- Anti-malware deployed on end-user devices
- Data encrypted on end-user devices
- Firewall maintained on end-user devices
- Mobile device management (MDM) used
Infrastructure Security
- Active discovery tools used
- Administrator access restricted
- Automated security scanning performed on infrastructure
- Buckets not exposed publicly
- Configuration management system established
- Firewall restricts public access to infrastructure
- Infrastructure changes logged
- Infrastructure changes require review
- Infrastructure deployed using an infrastructure-as-code tool
- Production deployment access restricted
- Unauthorized assets addressed and removed
- Unique production database authentication enforced
- VPN used
- Web Application Firewall (WAF) used
Monitoring and Incident Response
- Audit log management process maintained
- Audit logs collected
- Incident response policy established
- Incident review process implemented
- Infrastructure performance monitored
- Log management used
- Network infrastructure monitored
Organizational Security
- Acceptable use policy established
- Asset inventory maintained
- Asset management policy established
- Change management policy established
- Changelog established and maintained
- Code of conduct established
- Company security commitments externally communicated
- Data-flow diagrams maintained
- External support resources available (i.e., documentation)
- Offboarding process established
- Onboarding process established
- Password manager used
- Performance evaluations conducted
- Physical access restricted
- Policies signed by relevant personnel
- Reference checks performed for employees
- Roles and responsibilities specified
- Security awareness training conducted
- Service description communicated
- Software development lifecycle established
- System changes externally communicated
- System changes internally communicated
Risk Management
- Risk assessments performed
- Risk management policy established
- Vendor inventory maintained
- Vendor management program established
Vulnerability Management
- Automated software patch management performed
- Penetration testing findings remediated
- Penetration testing performed within the last 12 months
- Vulnerabilities scanned
- Vulnerability management policy established
Enterprise-ready cloud.
Phase Cloud is the fully managed way to run Phase: hardened AWS infrastructure in the EU, run under the audited control program above. The same end-to-end encryption applies by default, so in E2EE mode the hosted service holds only ciphertext it cannot decrypt.
Hardened AWS infrastructure
Workloads run on EC2 instances built on the Nitro System for hardware-level isolation, with the instance metadata service API disabled to shut down SSRF attacks. Infrastructure is deployed as code; every change is logged and reviewed. Cloud integrations egress from three fixed IPs, published in advance of any change.
Protected at the edge
All traffic passes through Cloudflare for WAF filtering and DDoS protection, and every connection terminates over TLS 1.2 or newer. The origin accepts connections only from Cloudflare’s network.
EU data residency
All customer data is hosted in AWS eu-central-1 in Frankfurt, Germany. Secrets live in RDS PostgreSQL inside a private VPC, encrypted at rest and in transit, with Redis caches enforcing encryption in transit.
SubprocessorsPoint-in-time recovery
Databases are snapshotted every 24 hours, with point-in-time recovery to restore state to any moment.
DocsData privacy.
Phase respects and values your privacy. Please see our privacy policy for details on how we collect, process and store data.
Secrets we cannot read
End-to-end encryption by default means Phase stores ciphertext and wrapped keys it cannot open. For secrets in E2EE apps, plaintext never reaches Phase.
Four subprocessors
Four subprocessors run the entire service: AWS, Cloudflare, Google Workspace and Stripe. Customer data is hosted in Frankfurt, Germany.
No telemetry when self-hosted
Self-hosted Phase sends no usage analytics or telemetry, and can run fully air-gapped.
Your infrastructure, your rules.
Run Phase on your own infrastructure. It sends no usage telemetry and licenses verify locally, so it runs fully air-gapped or behind an egress filter. Your secrets never have to leave your network.
Open source & auditable
Source-available end to end. Every line of code that touches your secrets is public and auditable.
Verifiable provenance
Every commit is GPG-signed, so a git blame traces to its origin. Production containers build publicly from the exact code in the open repositories, so the pipeline can be independently verified.
Frequently asked questions.
Questions or disclosures
For security questions, vendor reviews or vulnerability reports, contact our security team.
Keep your secrets
Self-host or start on fully managed Cloud in under a minute.
Run Phase on your own infrastructure. Free and open source.