Security & encryption

How Ambry protects your files

Your master password never leaves your device. Everything in your Ambry — files, names, thumbnails, and profile — is encrypted before it leaves your phone. The server stores only locked data it cannot read.

No password recovery

If you forget your master password, your files cannot be recovered. Ambry has no copy of your password and no back door. This is a feature, not a bug — it means even we cannot access your files.

  • There is no reset option — if you forget your password, it cannot be changed or recovered.
  • There is no “forgot password” flow that bypasses encryption.
  • Resetting would generate new keys, making existing encrypted files permanently unreadable.

Store your master password somewhere safe, such as a password manager. Choose it carefully — you cannot change it later.

How it works

Every time you unlock Ambry, your master password is used to derive a pair of cryptographic keys — a public key that goes to the server, and a private key that never leaves your device. Every file gets its own randomly generated key, which is then locked with your public key. Only your private key can unlock it.

What gets encrypted

Everything in your Ambry is encrypted — not just file contents:

  • File contents — each file is encrypted with its own random 256-bit key before upload.
  • File and folder names — encrypted alongside the content, so the server never sees them.
  • Thumbnails and previews — image previews use the same key as their source file.
  • Your profile name and photo — encrypted with your account key before being stored.

Compromising one file’s key has no effect on any other file — each item is independently locked.

Technical details

Key derivation

We use Argon2id (RFC 9106), tuned for mobile hardware. It is a memory-hard algorithm designed to make password guessing as slow and expensive as possible, especially on GPUs.

Encryption primitives

StepAlgorithm
Password → master keyArgon2id — libsodium crypto_pwhash
Master key → keypairX25519 — crypto_box_seed_keypair
Per-file key wrappingX25519 anonymous sealed box — crypto_box_seal
File & metadata encryptionXChaCha20-Poly1305 — crypto_secretbox

All primitives are provided by libsodium.

Security properties

  • Zero-knowledge: the server only ever handles ciphertext.
  • End-to-end: encryption and decryption happen only on your device.
  • Per-file isolation: every file has its own key.
  • Least-privilege cloud access: Ambry uses Google’s drive.file scope and can only touch files it created.