Private vault (Beta)
How the private vault works
The private vault is a folder in your cloud where files are encrypted in your browser, with a key made from a passphrase only you know, before they’re uploaded. We store the encrypted files but can’t open them. It’s on paid plans, and it’s in Beta.
What it protects, and what it doesn’t
- Protected: the contents of your vault files and the names of files and folders in it. Without your passphrase or recovery key, they can’t be read: not by us, and not by anyone who gets a copy of our storage or backups.
- Not hidden: how many files and folders the vault holds, roughly how big each file is, when things were changed, and who in your team uploaded them. We need these for your storage space, the trash and the activity log.
- No reset: if you lose both your vault passphrase and your recovery key, nobody, including us, can open these files. Staff can’t reset a vault passphrase. You can make a recovery key when you set up the vault, or later.
- You trust our website’s code: the encryption runs in code that our website sends to your browser. If our website were tampered with, that code could be changed to leak your passphrase. That’s why we publish exactly how it works below, and a tool you can use without our website.
- Your devices matter: malware on your computer or phone could see your files or your passphrase while the vault is open. Keep your devices up to date, and lock the vault when you’re done (it also locks itself after 15 minutes without activity).
- Choose a strong passphrase: people who can open your cloud can download the locked vault key and try guesses on their own computer. A long passphrase (at least 12 characters; a few unrelated words works well) makes that impractical.
What you can and can’t do in the vault
- Upload, download, make folders, rename, move to the trash and restore, and get back older versions, on computers, tablets and phones, in an up-to-date browser.
- Files can be up to 2 GB each. Vault files count towards your cloud’s space at their encrypted size, which is very slightly larger than the original.
- Not in the vault: search, previews, share links, upload links, connecting it as a drive, and downloading folders as a ZIP from the website.
- In a team, everyone who uses the vault shares one passphrase, and the cloud’s folder rules decide who can open it.
- “Download everything” includes your vault files, still encrypted, with a file called vault.json. Open them with the tool below.
Beta means it’s ready to use and works as described here, but an independent security review hasn’t been done yet. We’ll say so on our changelog when it has.
Open your vault without our website
Our free, open-source tool opens the “Private vault (encrypted)” folder from a “Download everything” export on your own computer. It needs Node.js 20 or later, sends nothing anywhere, and you can read every line of it first.
- Download syncore-vault-open.mjs.
- Unzip your export, then run:
node syncore-vault-open.mjs "Private vault (encrypted)" "My vault files" - Type your vault passphrase when asked. To use your recovery key instead, add
--recoverybefore the folder name.
The file format (format 1)
For people who want to check our work. Everything uses the browser’s built-in encryption (the Web Cryptography API); nothing is home-made.
- Vault key: 32 random bytes made in your browser when you set up the vault.
- Passphrase: PBKDF2 with SHA-256, a random 16-byte salt and at least 600,000 iterations turns your passphrase into a key that locks the vault key with AES-256-GCM. We store only the salt, the iteration count and the locked vault key.
- Recovery key: 20 random bytes shown as 32 characters (Crockford base32, in groups of 4). HKDF with SHA-256 and its own salt turns it into a second key that locks a second copy of the vault key.
- Names: each file or folder name is encrypted with AES-256-GCM, using a key derived from the vault key with HKDF and a fresh random 12-byte nonce.
- Files: every saved version gets its own random 256-bit key, locked with a key derived from the vault key. The file starts with a 19-byte header (
SYNCVLT1, the chunk size, a random 7-byte nonce prefix), then the contents in 4 MiB chunks, each encrypted with AES-256-GCM. A chunk’s nonce is the prefix, the chunk number and a flag marking the last chunk, and the header is authenticated with every chunk, so changed, reordered, swapped or cut-off chunks are detected. - Checking changes: to stop someone without the passphrase changing the vault’s keys, your browser proves it unlocked the vault with a token derived from the vault key. We store only a SHA-256 hash of that token, which can’t be used to open anything.
- All locked values are stored as base64url text: the 12-byte nonce followed by the ciphertext and its 16-byte tag.