How obfs4 Disguises Tor and VPN Traffic as Random Noise

Of 543 consumer VPNs in our data, 74 say they do not offer it. Below: the services that rank highest for it.

10consumer VPNs offer it
459do not say

obfs4 is a pluggable transport from the Tor ecosystem that wraps another TCP connection, usually Tor or OpenVPN, so that every byte on the wire looks like random data with no recognisable header or fixed sizes. The server answers only clients holding its key, so scanning cannot confirm what runs there. It is not a VPN and not an anonymity network by itself.

A wrapper, not a tunnel of its own

The obfourscator, as the specification calls it, sits on top of a protocol that already encrypts and authenticates. Anonymity comes from Tor, privacy from the VPN's own policy. Its predecessor obfs3 fell to active probing and was deprecated; obfs4 swapped the slow UniformDH handshake for an authenticated exchange based on Tor's ntor handshake, which fixed the speed problem and stopped a man-in-the-middle, while probe resistance comes from the keys described below.

Why every byte looks random

Curve25519 public keys have a shape a filter can spot, so obfs4 encodes them with Elligator 2 and they read like coin flips. Handshake messages carry random padding (a whole message at most 8192 bytes, client padding 85 to 8128 bytes, server padding up to 8096). Data moves in frames of at most 1448 bytes, up to 1427 of them payload, encrypted and authenticated with NaCl secretbox (XSalsa20-Poly1305); even the length field is masked, so no plaintext byte reaches the wire. Timing leaks are handled by iat-mode: 0 leaves timing to the OS, 1 makes obfs4 split data itself with varied timing, 2 randomises sizes outright. Modes 1 and 2 cost speed.

The bridge key that keeps probes out

Each server owns a 20-byte Node ID and a long-term Curve25519 identity key, which the client needs in advance, received out of band. The first message carries an HMAC computed with that key and the current hour (the previous and next hour are accepted for clock skew). A scanner lacking the key gets silence and a random delay before the socket closes. The bridge line packs it together: the word obfs4, address and port, relay fingerprint, then cert= with the keys and iat-mode. One wrong character in cert and the handshake silently fails.

Bridges in Tor Browser

Tor Browser ships built-in obfs4 bridges, and more can be requested from the Tor Project; private bridges that are not shared widely stay unblocked longer, and bridges in general slow the connection compared with ordinary Tor relays. China's firewall started probing suspected bridges in 2011 and by 2015 its probes arrived about half a second after a connection. The program running obfs4 and the other transports (meek, Snowflake, WebTunnel) is called Lyrebird.

obfs4 in front of a VPN tunnel

The VPN client, usually OpenVPN over TCP, sends traffic to a local obfs4 process through a SOCKS proxy on loopback; the far side unwraps it and passes it to the VPN server. LEAP's obfsvpn puts separate obfs4 bridges in front of OpenVPN gateways, ideally on different IP ranges, so that one scan cannot burn both. IVPN offers obfs4 with OpenVPN in its desktop apps, while Cryptostorm supports obfs4 and Riseup VPN uses obfs4 bridges over TCP. In the VPNRadarLab main ranking of 377 services, 6 list obfs4, 65 say they do not offer it, and 306 publish nothing, which means undisclosed, not missing. The full comparison lives in the ranking of services that support obfs4. One catch: TCP inside TCP adds delay under packet loss.

Random noise versus an HTTPS disguise

Approach What the censor sees Stranger probes the server Where it breaks
obfs4 high-entropy stream, no header silence protocol allowlists
NaiveProxy browser-like TLS to a real domain an ordinary website blocked domain or IP
VLESS with Reality TLS to a well-known site handshake forwarded to that site imperfect browser imitation
WebTunnel, meek HTTPS session web server or CDN slower, needs hosting

When random-looking traffic gets blocked anyway

"Looks like nothing" is itself a fingerprint. A USENIX Security 2023 paper by Wu et al. documented how, from November 2021, the Great Firewall passively detected and blocked fully encrypted traffic in real time, naming Shadowsocks, VMess and obfs4, using crude tests on the first packet that could hit about 0.6% of normal connections. On networks that only pass familiar protocols, a random stream gets dropped without being identified, and a TLS disguise has better odds; where the filter hunts for signatures of plain Tor or OpenVPN, obfs4 wins. It runs only over TCP, hides the protocol rather than the destination IP, and a blocked bridge IP kills it regardless.

obfs4 FAQ

Does obfs4 hide that I use Tor from my ISP?

It hides the Tor handshake and keeps the bridge from being identified as a bridge by scanning, but your ISP still sees the bridge's IP and an encrypted stream.

Is obfs4 the same as obfsproxy?

Obfsproxy carried the older transports (obfs2, obfs3); obfs4 was written for its Go successor obfs4proxy, whose code lives on as Lyrebird in Tor Browser.

Which iat-mode should I pick?

Zero, unless the bridge keeps dropping; then try 1, and 2 as the last resort.

obfs4 or Snowflake when Tor is blocked?

Try obfs4 with a fresh private bridge first; when every bridge address is burned, Snowflake relays Tor through proxies operated by volunteers. The Tor Project guide to unblocking Tor compares the transports.

obfs4 at a glance

A keyed, padded wrapper that renders Tor or OpenVPN unreadable on the wire and leaves its server silent to strangers. Strong against signatures and probing, weak against allowlists and passive entropy tests.

Top services: obfs4

  1. IVPN4.77
  2. Cryptostorm3.84
  3. SmartyDNS3.23
  4. NVPN3.22
  5. Riseup VPN2.69

See the ranking: obfs4