Trust & Security

What we protect, how we protect it, and where the limits are.

🔐 Encryption

  • Every file is encrypted with AES-256-GCM using your personal master key before it is stored.
  • Your master key is protected by a key derived from your password with Argon2id. We never store your password.
  • While you are signed in, the unlocked key is split: the server keeps only an encrypted copy and your browser holds the other half. A copy of our database alone cannot open your files.
  • Your recovery key is shown once and never stored. If you lose both your password and your recovery key, we cannot restore your data.

🧩 Secret vault for your heirs

The secret vault key is split into three shares (Shamir 2-of-3): one for you, one for your heir, one held by us. No single share can open the vault, including ours, and your heir's share works only after the vault has been released.

⏱ Timestamps

Files are timestamped by BeatTime, an independent public service. We send only a blinded fingerprint:

digest = SHA256("tvs-v1|" + salt + "|" + SHA256(file))

The salt is available only to you, in the verification data of each file. With the file and the salt, anyone can recompute the digest and check it at beattime.live. BeatTime seals each week of timestamps in a signed Merkle tree and anchors it in the Bitcoin blockchain.

⚖️ Honest limits

  • While you are signed in and your key is unlocked, our server processes your data in memory. We call this a trusted session window, not zero-knowledge.
  • Metadata such as file sizes, dates and release settings is not encrypted.
  • Timestamps prove when a file existed. They do not prove who created it or what it means.