End-to-end encryption you can trust — because privacy should be a guarantee, not a promise.
Contastic is built so that private data is private — by design, not by policy.
Your private contact fields are encrypted on your device before they ever leave it. We store only the encrypted result — we cannot read it, and neither can anyone else without your key.
Encryption keys are generated locally in your browser or on your phone and never transmitted in plaintext. An optional encrypted backup is stored on the server — but only your password can unlock it.
The server only holds your email, your public key, your public contact fields, and encrypted blobs. There is no master key, no backdoor, and no way for us to decrypt your private data.
Our security model relies on well-established cryptographic standards — not on asking you to trust us blindly. The approach is documented below for anyone who wants to verify it.
Defense-in-depth for the backend API.
Rate limiting on authentication and search endpoints, automatic IP banning for scanning behaviour, strict origin checks, and request size limits — all active by default.
The server runs as a non-root process, rejects any request outside the API prefix, and uses constant-time comparisons to prevent timing-based account enumeration.
For the security-minded: here is exactly how Contastic protects your data.
When you register, a 2048-bit RSA key pair is generated in your browser or on your device using the platform's secure cryptographic API (Web Crypto API in browsers, Android Keystore on Android). The private key is never sent to the server in plaintext.
When you share a private contact field with a subscriber, Contastic uses hybrid encryption:
The server stores only the ciphertext envelope. Decryption happens entirely on the recipient's device.
Your private key is encrypted with a key derived from your password using PBKDF2-HMAC-SHA256 (high iteration count, random salt) and AES-GCM-256, then stored on the server. Without your password, the backup is useless. We never see your password or your private key.
Account passwords are hashed with Argon2id before storage — the current standard for password hashing, resistant to GPU and side-channel attacks.
Authentication uses short-lived JWT access tokens (1-hour expiry) paired with 30-day refresh tokens. Tokens are signed with a server secret and validated on every request.
No custom or experimental algorithms. All primitives are implemented by the platform (Web Crypto API / JCE) rather than hand-rolled libraries.
The staging server is open for anyone to explore.
Create an account, generate your keys, and see for yourself that your private data never reaches the server in a readable form. No credit card, no commitment.
Open the Web App