How VeilShare keeps your files secure

VeilShare is built so that we never have to be trusted with your files. Everything is encrypted on your device before it's uploaded, and the keys stay with you. This page explains exactly how that works, how we protect your account, and what happens to your data if something goes wrong at a data center.

Last updated

Security at a glance

  • Files and file names are encrypted with AES-256-GCM in your browser before upload
  • Encryption keys never reach our servers in usable form, so we can't read your files
  • Your account password never leaves your device
  • Optional two-factor authentication with one-time email codes
  • Files are stored redundantly across several data centers, designed to survive fire and floods
  • Servers and database hosted in Finland, under the GDPR and Finnish data protection law

End-to-end encryption with AES-256-GCM

When you share a file, your browser generates a new random 256-bit key just for that file. The file is split into chunks, and each chunk is encrypted with AES-256-GCM using its own unique nonce before anything is sent to us. The file name is encrypted with the same key, so we don't know what you're sharing either.

AES-GCM is authenticated encryption. If a single bit of an encrypted file is changed, whether by a faulty disk or someone tampering with it, decryption fails instead of silently handing you a corrupted file.

Where the key lives

The key is placed in the part of your share link after the #. Browsers never send that part of a URL to the server, so when your recipient opens the link, their browser downloads the encrypted file and decrypts it locally. We only ever see encrypted data.

Zero-knowledge accounts

You don't need an account to use VeilShare. If you create one, it's designed so we still can't read your files, and your password never leaves your device.

When you sign in, your browser runs your password through Argon2id, a memory-hard algorithm built to make password guessing slow and expensive. From the result it derives two separate keys: one that proves to our server who you are, and one that unlocks your personal master key. The server only stores a salted hash of the first, and your master key is stored encrypted with the second.

Every file saved to your account has its key encrypted with your master key. That lets you open your files from any device after signing in, while we only ever hold locked copies.

Recovery key and key rotation

When you sign up, you get a recovery key. It's the only way to keep access to your saved files if you forget your password, because we can't reset encryption we don't hold the keys to. If you think your key may have been exposed, you can rotate your master key from your settings, which re-encrypts every saved file key in your browser.

Two-factor authentication

Turn on two-factor authentication in your account settings and a correct password is no longer enough to sign in.

  • Codes are generated with a cryptographically secure random number generator
  • Each code expires after 10 minutes and works only once
  • Codes are stored hashed, never in plain text
  • Code guesses and resend requests are rate limited to block brute-force attempts

You can also see every device signed in to your account and sign out any session you don't recognise, or all of them at once.

Protecting shared links

Anyone you share a file link with can decrypt the file, so we give you tools to limit who can use a link and for how long.

Password protection

Add a password to a file and the link won't download without it. The password is hashed in your browser with PBKDF2 before it's sent, checked in constant time, and repeated wrong guesses are blocked. It's an extra lock on the link, not an extra layer of encryption, so still share links and passwords over different channels.

Expiry and download limits

Files can expire after a set time or after a set number of downloads. Once either limit is reached, the file stops being available immediately, and the encrypted data is permanently deleted within an hour.

Protection against fire, floods and hardware failure

Encryption protects your files from people. Here's how they're protected from physical disasters like fire, floods and failing hardware.

File storage built to survive a lost data center

Encrypted files are stored on Cloudflare R2, which is designed for extreme durability. Each file is stored as multiple copies or erasure-coded fragments spread across many disks in several data centers within a region. Cloudflare designs it so data survives disk failures and physical damage to a data center, such as fire or flooding.

Servers and database in Finland with daily backups

Our application servers and database run at Hetzner in Helsinki, Finland, in a data center certified to ISO/IEC 27001:2022, the international standard for information security management. That means your account data is covered by the GDPR and Finland's Data Protection Act.

The database is backed up automatically every day, with the last seven days of backups kept. If a server fails, we can restore it from a recent backup.

Stolen hardware doesn't expose your files

Your files and file names are encrypted with keys we never hold, so a stolen disk, a leaked backup or a breach of our servers can't expose what you've shared.

What we can't protect against

No service can promise perfect security, and we'd rather be honest about where the risks are:

  • If you lose a link, or forget your password without your recovery key, the files can't be recovered by anyone
  • Malware on your device, or your recipient's device
  • We can see basic metadata needed to run the service, like file size and expiry date

See our privacy policy for the full list of what we process and how long we keep it. Found a security issue? Email [email protected] and we'll look into it.

Frequently asked questions

No. Files are encrypted in your browser before they are uploaded, and the key stays in your share link or for account files, is locked behind your password. We only ever store encrypted data we can't decrypt.

AES-256-GCM, the same authenticated encryption standard used by banks and governments. Every file gets its own random 256-bit key, and account passwords are hardened with Argon2id.

Encrypted files are stored on Cloudflare R2, which spreads each file across multiple disks in several data centers so it can be rebuilt if one site is lost. Our database is backed up automatically every day.

Not without your key. For a shared link, the key is part of the link. For account files, you can reset your password with the recovery key shown when you signed up. Without either, nobody can decrypt the files, including us.

Yes. Turn it on in your account settings and every sign-in will also need a six-digit code sent to your email, valid for 10 minutes.

Sources

Share a file securely

Free, no account needed. Your file is encrypted in your browser before it's uploaded, and we can't read it.

Share a file