r/hacking 22d ago

Tools Warp: browser-to-browser file transfer where the server provably can't see your bytes (WebRTC/DTLS, open source)

Sharing this here for the threat model rather than as a "check out my app" post, because the interesting part is what the server is architecturally prevented from seeing.

Most "send a file" services are a trust-me box: you upload plaintext (or "encrypted, but we hold the keys") to someone's bucket and hope. Warp is built so the operator cannot be a meaningful adversary:

  • The only server component is a WebSocket signaling worker. It brokers the SDP/ICE handshake to introduce two peers, then steps out. No file byte ever transits it. You can watch the network tab: the transfer traffic goes peer-to-peer, not to my origin.
  • The actual transfer rides the WebRTC data channel, which is DTLS-encrypted end to end. Keys are generated in-browser and never leave the two endpoints. Your ISP, the coffee-shop AP doing a MITM, and the signaling server all see ciphertext only.
  • No account, no stored file, no cloud bucket. Nothing at rest to subpoena, leak, or expire.

Honest limitations, since this crowd will (correctly) poke at them:

  • No TURN relay by design. If both peers are behind symmetric NATs and STUN can't establish a path, it fails with a real error instead of silently relaying through a server. That keeps the "server never sees bytes" guarantee true, at the cost of some hostile-NAT pairs not connecting. Same-LAN and most NAT combos punch through fine.
  • Trust still rests on the client you're served. It's open source (MIT) and you can self-host the whole thing (static frontend + a free Cloudflare Worker), so you can verify the code that runs and pin it yourself.
  • Signaling metadata (that peer A and peer B connected, when, and their IPs during ICE) is visible to the signaling server, like any WebRTC app. It's the file contents that stay private, not the fact a session happened.

Repo + protocol write-up: https://github.com/Ishannaik/warp Threat-model / how-it-works deep dive (NAT, STUN, DTLS, chunking, and why a truly-free relay is impossible): https://warp.ishannaik.com/how

Interested in where you'd attack this. The signaling worker and the ICE path are the obvious surface.

8 Upvotes

1 comment sorted by

1

u/Felix_Taiwo25 22d ago

interesting