TLS vs End-to-End Encryption: What You Need to Know
Compare TLS transport encryption with true end-to-end encryption to understand which provides better security for your file transfers.
TLS (Transport Layer Security) encrypts data while it travels between your device and a server, then decrypts it on arrival — meaning the server operator can read your files in plaintext. End-to-end encryption (E2EE) encrypts content on the sender's device with a key that only the recipient holds, so servers never see the unencrypted data. For file transfers, TLS protects against network eavesdroppers but not the provider itself. E2EE protects against both. The padlock icon in your browser doesn't tell you which one is actually in play.
What TLS Actually Protects
TLS 1.3, standardized in RFC 8446, is the protocol powering every HTTPS connection. It negotiates a session key using ECDHE with curves like X25519, authenticates the server with an X.509 certificate, and wraps your HTTP traffic in AES-128-GCM or ChaCha20-Poly1305. That's excellent protection against the coffee-shop Wi-Fi attacker or an ISP trying to read your requests.
What TLS doesn't do: it terminates at the load balancer. When you upload a 3 GB video to a typical file-sharing service, TLS decrypts at the edge, then the plaintext file hits an S3 bucket, a transcoding pipeline, maybe an ML content-scanning job, and finally the recipient's download stream — which gets re-encrypted with a fresh TLS session. The service has full read access at every step.
Where End-to-End Encryption Starts and Ends
True E2EE moves the encryption boundary from the server to the endpoints. On the sender's browser or client, a symmetric key (typically AES-256-GCM) is generated in-memory. The file gets encrypted chunk-by-chunk before a single byte leaves the device. The ciphertext is uploaded over TLS to the server, which stores opaque blobs. The recipient receives the decryption key through a separate channel — most often as a URL fragment after the # symbol, which browsers never transmit to servers.
The server, in this model, is a dumb storage layer. Even a full subpoena, a rogue employee with database access, or a cloud provider reading disk snapshots would yield only encrypted bytes. This is the architecture HexaTransfer uses: AES-256-GCM with a per-transfer key derived client-side and never transmitted to the origin.
Comparison: TLS-Only vs End-to-End Encryption
| Property | TLS-only transfer | End-to-end encrypted | |---|---|---| | Cipher in transit | AES-128/256-GCM | AES-256-GCM (plus TLS) | | Server sees plaintext | Yes | No | | Key location | Server-managed | Sender's device | | Protection against subpoena | None | Strong | | Content scanning by provider | Possible | Impossible | | Recovery if you lose the key | Provider can help | Data is unrecoverable | | Typical services | Google Drive, Dropbox | HexaTransfer, SwissTransfer E2EE mode |
How Key Exchange Actually Happens
The hard part of E2EE isn't the cipher — AES has been solid for 25 years. The hard part is getting the key from sender to recipient without the server seeing it. File-transfer services typically use one of three patterns.
The first is the URL fragment trick: the link looks like https://hexatransfer.com/d/abc123#key=xyz, where everything after # stays in the browser. JavaScript reads it locally and decrypts. The second is password-based encryption, where the sender picks a passphrase, runs it through PBKDF2 (RFC 8018) or Argon2id with 600,000+ iterations, and shares the password out-of-band via Signal or a phone call. The third is public-key exchange using libraries like libsodium's crypto_box, where the recipient publishes an X25519 public key.
When TLS Alone Is Fine
Not every file needs E2EE. If you're sharing a press release with a journalist, a meme with your group chat, or a public marketing PDF, TLS-only services are perfectly adequate. The data wasn't sensitive to begin with, and the provider reading it creates zero risk. You're optimizing for convenience — previews, thumbnails, in-browser editing — and those features fundamentally require server-side plaintext access.
The calculus changes with medical imaging (DICOM files covered under HIPAA 45 CFR 164.312(a)(2)(iv)), financial statements under PCI DSS 4.0 Requirement 3.5.1, legal discovery materials, M&A documents, or anything containing EU personal data under GDPR Article 32. Here, "the provider can technically read this" is a compliance problem, not just a privacy aesthetic.
The Metadata Gap Nobody Talks About
Even with perfect E2EE, the server still sees metadata: upload timestamp, file size, IP addresses of sender and recipient, user-agent strings, transfer duration. If your threat model includes traffic analysis — a journalist communicating with a source, say — this matters. A 147 MB file uploaded at 3:14 AM from a Reuters office to a Signal number in Istanbul tells a story even if the contents are ciphertext.
Good E2EE services minimize metadata retention. Look for short log-retention windows (7 days or less), no user accounts required for basic transfers, no third-party analytics on transfer pages, and ideally onion routing or VPN-friendly policies. The cipher suite matters less than the operational hygiene around it.
Verifying the Claim
"End-to-end encrypted" is marketing text until you can prove it. Three tests separate real E2EE from wordplay. First, open DevTools and watch the network tab during an upload — if the file body goes out as plaintext multipart/form-data, you're looking at TLS-only. Second, check whether the decryption URL contains a fragment (#). No fragment, no client-side key. Third, read the service's subpoena response policy: if they can produce file contents to law enforcement, the files aren't E2EE to begin with. Services that publish warrant canaries and open-source their crypto code (GitHub repos showing WebCrypto API usage) give you the strongest assurance.
For everyday large-file sends where confidentiality matters, pick a service that's explicit about its model. Try it at hexatransfer.com — free, no account, 10 GB max.
Send large files securely with end-to-end encryption
Transfer files up to 10 GB for free with end-to-end encryption. No account required. Your files are encrypted in your browser before upload — no one else can read them.
Send a file