Get started
Security model

How we keep your data unreadable — including to us.

This page explains exactly what is encrypted, how, and what we can still see. If anything here is unclear or wrong, tell us.

Key hierarchy

Two passwords, two jobs.

Your login password proves who you are to the server. Your master password never leaves your browser: it becomes the key that encrypts your data. Use two different passwords — if they matched, the server would receive the secret that protects your vault.

on your deviceMaster password
PBKDF2-SHA256 · 600,000 rounds · 16-byte salt
non-extractable CryptoKeyAES-256-GCM vault key
random 96-bit IV per item
what is uploaded{ iv, ciphertext + auth tag }
separately, on the serverLogin password → Argon2id hash
Data inventory

What we can and can’t see.

A zero-knowledge service still sees some metadata. Here is the complete list.

Visible to our servers

  • Your account email and username
  • How many entries, files and folders you have
  • The size of each encrypted file
  • Which folder each item sits in (but not its name)
  • Creation and modification times
  • IP addresses of requests, for rate limiting
Sharing

Share links use a key we never receive.

Sharing does not reuse your vault key. Each link gets its own random key.

  1. GenerateYour browser creates a fresh random AES-256 key just for this link.
  2. EncryptA copy of the file or login is encrypted with that key. Your vault key is not involved.
  3. UploadOnly the encrypted copy is uploaded, together with a random link ID.
  4. LinkThe key goes after the # in the URL. Browsers never send that part to a server.
  5. ExpireLinks stop working after the time and number of opens you chose, or earlier if you revoke them.
Platform

Defence in depth around the encryption.

Session cookies

HttpOnly, Secure and SameSite=Strict. Scripts on the page cannot read the session token.

Strict Content Security Policy

Only our own scripts can run. No inline scripts, no third-party trackers, no analytics.

Login hashing

Login passwords are stored as Argon2id hashes, a memory-hard function designed to resist GPU cracking.

Rate limiting

Login, registration and token exchange are rate-limited per IP to slow down guessing.

Transport

HTTPS only, with HSTS. Pages cannot be framed, which blocks clickjacking.

Server-side checks

The API rejects names that are not encrypted envelopes, so a client bug cannot quietly upload plaintext.

Responsible disclosure

Found a vulnerability?

Email us with the details and steps to reproduce. We will acknowledge within three working days, keep you updated, and credit you once it is fixed if you want. Please do not access other people’s data or degrade the service while testing.

security@example.com