🔐 Zero-Knowledge Architecture

How does
Shadow Drop work?

Learn how we protect your information with end-to-end encryption. The server can never see your data.

Your information, step by step

From registration to download, everything is designed so that only you can read your files.

Step 1
🔑

Registration & Login

Create an account with a username and a Master Password. This password generates your cryptographic keys directly in your browser. The server never receives your password or your private key in plaintext.

Step 2
📤

Someone Sends You Files

The sender uses your public link or a one-time link. Their browser encrypts the files with your public key before sending. The server only receives encrypted data.

Step 3
📥

Receive & Decrypt

Encrypted packages appear in your inbox. When opened, your browser decrypts them in RAM using your private key. You can download files with their original name and extension.

Real-time data flow

The server acts only as blind storage for encrypted bits.

👤

Sender

Encrypts files and message with a random AES key. Encrypts the AES key with your RSA public key.

→ Encrypted data
🗄️

Server (Blind)

Stores encrypted binary blobs. Has no keys to decrypt them. Zero-Knowledge.

→ Encrypted blobs
🔓

Receiver (You)

Your private key (in RAM) decrypts the AES key. The AES key decrypts the files.

Cryptography under the hood

All cryptographic processing occurs exclusively in your browser using window.crypto (Web Crypto API).

🔐

PBKDF2 — Key Derivation

Your master password is transformed into an AES-256 key via PBKDF2 with 600,000 iterations and SHA-256. A random 16-byte salt makes precomputed table attacks (rainbow tables) impossible.

🗝️

RSA-OAEP — Asymmetric Keys

A RSA-OAEP 4096-bit key pair is generated in your browser. The private key is encrypted with your derived master key before leaving your machine. The server only stores the public key and the encrypted private key.

⚡

AES-GCM — Symmetric Encryption

Each submission generates a fully random AES-GCM 256-bit session key. Files and message are encrypted with this key. The session key is encrypted with the receiver's RSA public key.

🌐

Web Crypto API — No Dependencies

All cryptography uses the browser's native API (window.crypto.subtle). No external libraries. No key transmission. Everything runs in the browser sandbox with native performance.

🛡️ What does the server see?

Stored Private Key
aGVsbG8gd29ybGQ= [encrypted with AES-GCM, inaccessible without your password]
Received Message
xK3bN9pQ7m... [encrypted binary blob, unreadable]
Attached Files
0x4F 0x2A 0xBB... [encrypted bytes, names and types unrecognizable]

Result: Even if the server were compromised, the attacker could not read your messages or files. Your master password is the only key, and it never leaves your browser.

What the server does see: who receives packages and when, how many files they have and their encrypted size, the sender name the sender typed (not verified), your username and last login, and for shared files their size, limits and expiry (the name is sealed until the password is entered; shares created before that change also show their name and type).

Additional features

Features designed to maximize your privacy and control.