Threat model
Security
How a transfer is protected, and — more usefully — what it does not protect you from.
#The connection is encrypted
Transfers run over WebRTC, which encrypts every data channel with DTLS. This is not optional and cannot be turned off. Both sides verify each other’s certificate fingerprint during the handshake, so a third party cannot quietly insert themselves between you.
#Your link is the key
Each transfer mints two 256-bit access keys from your browser’s cryptographic random generator — one for the sender, one for the recipient. They are not interchangeable: the recipient’s key cannot act as the sender and vice versa.
The server stores only a SHA-256 fingerprint of each key and compares them in constant time, so a stolen server has nothing to hand out and a patient attacker cannot guess a key one byte at a time.
The recipient’s key sits after the # in the share link. Browsers do not send that part of a URL to the server, so it stays out of our access logs, out of any proxy along the way, and out of referrer headers.
#Anyone with the link can take the file
This is the part worth being clear about. The link is the only credential. Whoever opens it first gets the file, whether or not they are the person you meant.
So send it through a channel you trust. A link posted in a public channel or a group chat is a link anyone in that room can use.
#The file is verified
The sender hashes the file with SHA-256 as it reads, and the recipient hashes it as it writes. The two are compared when the transfer ends.
A mismatch fails the transfer and discards the partial file. A file that arrives corrupted is never presented as complete — an honest failure is worth more than a quiet one, particularly at these sizes.
#What the server enforces
- Exactly two participants per session — a third cannot join.
- Access keys are checked before any connection is established.
- Signaling messages are size-capped and must be well-formed.
- Session creation is rate-limited per address.
- Sessions expire on a timer and are deleted automatically.
#What this does not protect you from
- A recipient you did not intend, if your link is shared or intercepted.
- Malware in a file you accept. Nothing here scans file contents — we cannot, we never see them.
- A compromised device on either end. Encryption in transit does not help if the disk it lands on is already someone else's.
Keep reading