Mullvad is working on adding QUIC obfuscation in their VPN clients

Mullvad is adding QUIC, a UDP-based network protocol that keep the speed of UDP while adding the reliability of TCP, as an obfuscation technique.

A year ago, Mullvad only supported UDP over TCP obfuscation, which while working - in advanced censorship such as the GFW - was quite slow and unreliable, especially in mobile connections. The addition of Shadowsocks - a censorship evasion protocol that hides in https traffic- was a great addition for both stability and the strength of the circumvention.

Adding QUIC will enhance speed compared to Shadowsocks and stability compared to UDP over TCP.

Sources:

5 Likes

UPD?

But anyway this sounds great. Wireguard inside of QUIC is literally quick, and hopefully strong enough of an obfuscation to easily circumvent lots of firewalls and the like.

Meant UDP

Nice catch. Thanks for sharing and updating us on this.

1 Like

It wasn’t. Shadowsocks is detectable for a long time now, and it was back when they added it. There’s no reason to keep it.

It doesn’t work with GFW, Iran, Russia etc. Claiming that QUIC would help against advanced censors is stupid, since Iran, China and Russia all block QUIC. China doesn’t do this at scale since it breaks some things, but more harsh censors do. QUIC encapsulation helps in work networks in EU and US at best.

1 Like

I should add that Mullvad obfuscating connections to known, publicly listed, non-rotating servers is pure theatre. VPNs that work in China constantly rotate servers/hide behind CDNs.

Because ?

I know from personal experience that UPD-over-TCP did work against GFW, about Quic I never claimed it will work against the GFW, it is best seen as a replacement for UDP over TCP

China doesn’t mass block IPs for now as they still need acces to the outside world, ie they don’t want to completely break connections with the outside. And I totally disagree with your caracterisation of “theatre”.

VPNs that work in China often proxy your traffic to a Chinese server, then connect to the outside, so zero privacy here.

Also, you don’t seem to know how Chinese censors operate. They do not work on IP blocking, as this can easily be bypassed by just rotating IPs (especially with IPv6) Instead they intercept your traffic and make a dummy request to a domain they control. If the server that you connect to complies with the request, they will block it.

I already said why. The development is abandoned and it doesn’t deliver on its promises.

They do block IP addresses of detected VPN servers, you’re simply uninformed. They do in fact not block cloudflare CDNs which are used for censorship circumvention, but i specifically mentioned that Mullvad doesn’t implement such measures, and that their servers are publicly visible. Their servers are IP blocked in China. There’s no point in wasting DPI throughput on enumerated servers. This is true for all censored countries.

Kek

1 Like

Both the Android and the Rust Shadowsocks client saw commits this week, with the Rust client even getting a release two weeks ago.

They probably do, but that’s not their main way of blocking VPNs, it mainly relies on DPI and other more “flexible” techniques.

I can only speak from experience when I went to china for more than two weeks, in the province I was mullvad servers weren’t IP blocked.

Yes, I agree, but generally speaking I would say China prefers to make it cumbersome and unreliable to access VPNs, not impossible. Because some still need to access outside for “legitimate” reasons (scientific research, business, etc.). Completely banning IPs mean you lose that + if IPs rotate there is some chance you block a legitimate service on this adress.

They do probably block some IPs, all I am saying is that it isn’t their primary method of firewalling.

That’s a proven technique, see The predictable IP address sequences of one type of GFW DNS injector · Issue #466 · net4people/bbs · GitHub

There’s no beef, i just want you to agree Mullvad doesn’t help censored countries in any meaningful way.

The development of censorship resistant solutions has moved elsewhere (V2Ray) long time ago since shadowsocks was architecturally flawed. Shadowsocks Development stalled in a sense of the developers not fixing the inherent problems of the protocol.

Once again, there are multiple ways of enumerating servers. While some VPN providers have lots of rotating servers users can switch from, with obfs4-like mailing list control group distribution (i.e censor has to create a ton of accounts to enumerate all the servers since 1 user can’t get the whole list easily), Mullvad publicly lists their servers for everyone. As for the IP blocking part - once the GFW has caught a server to censor, it IP blocks it instead of stupidly analyzing its traffic pipe.

Infrastructure isn’t uniform. When we speak of GFW capabilities, we refer to GFW at its peak.

1 Like

Shadowsocks isn’t flawed, as it never was sucesfully blocked AFAIK. This doesn’t mean it couldn’t be in the future, but it’s still working great.

V2Ray and VMess is definitely a stronger (but more complex) protocol. It definitely would be great if they implemented it, no question about that.

But saying all their obfuscation is useless is a stretch.

That’s true (although honestly it would be trivial for them to make accounts). But you can also privately ask Mullvad for non-public IPs.

Source ?

Again, I said this because you talk and say a lot of things without proof, so I would like you to provide evidence or testimony.

1 Like

IRGFW report:

Shadowsocks (old and new encryptions and methods): Mostly blocked, occasionally graylisted. Some modifications allow connectivity but with high packet loss and jitter. (Graylist) • ShadowSocks + Cloak: Partially functional. Detected by IRGFW with minimal UL/DL speeds and high jitter (Graylist).

QUIC (Hysteria in this example:

Hysteria2: Requires a QUIC-enabled destination IP (Page 8 - UDP section).
• Hysteria2 + Obfs (Salamander): QUIC may be completely disabled to some IPs, but Salamander Obfs can sometimes bypass this restriction if UDP works appropriately.
• TUIC/JUICITY: Similar to plain Hysteria2. Gray-listed with limited UL/DL bandwidth and high jitter.
• Obfs4 (for any protocols like OpenVPN/ShadowSocks/Tor): Mostly blocked but can work on some ISPs. Gray-listed and has exceptionally high jitter and UL limitations.

GFW report, various usenix presentations: Shadowsocks blocked since 2021, QUIC works, VMESS can be discovered, VLESS can be discovered.

Russia via ntc: Shadowsocks blocked since 2022, QUIC fully blocked.

That’s not what i said.

You made various stupid claims without knowing anything about the scene to begin with.

1 Like

Still reading this thread, but one thing that’s really interesting about this is that they’ve actually implemented MASQUE and are using it for the QUIC-based obfuscation (GitHub diff)

3 Likes

You are welcome to disagree but there is no need to be disrespectful.

3 Likes

We partnered with Mullvad as our exit node and launched with QUIC-based obfuscation, so you bet I’m happy to see more of this! :blush:

It’s great seeing more QUIC-based protocols getting launched, the VPN industry needs to invest in more core innovation and less in FUD-y marketing.

A few points on TCP obfuscation (“the old way”):

  • TCP obfuscation when done over a reliable/vanilla TCP socket suffers from the TCP-over-TCP meltdown problem (bad performance, jittery-ness)
  • TCP obfuscation when done by not actually running TCP, but sending IP packets that look like TCP won’t work on networks like airlines where they do TCP re-termination (a la Performance-enhancing Proxy)

This is why QUIC-based is great, it looks like an HTTP/3 connection and doens’t suffer from the TCP-over-TCP meltdown problem because the application dictates the congestion control rules (more here).

It doesn’t mean that it’ll get around IP blocks or port blocks (it’s not magic), it simply makes it:

  • Far less likely for a network admin to block your access by collateral damage with overly-zealous firewall rules (e.g. “we’re blocking all ports other than 80, 443, and 53!”, unfortunately far more common than you’d expect)
  • Far trickier for nation-state censors to implement a fine-tuned DPI system (especially with Chaos Protection)

Any VPN that has to work in various network environments need a variety of obfuscation strategies to get around network blocks, and each strategy comes with its tradeoffs. Having QUIC obfuscation in the toolbelt makes it far more likely that you’re successfully connecting in the first place, and that your connection is reliable and non-jittery.

Sidenote: One of our engineers did recently come up with a way to do TCP obfuscation without suffering from the TCP-over-TCP meltdown and work even when being re-terminated. We’re researching this method internally now :technologist:

typed and sent over Obscura’s QUIC-obfuscated tunnel with a Mullvad exit node :laughing:

4 Likes

Interresting report


Shadowsocks plain seems to be blocked, I am not sure if that’s also the case with Wireguard over Shadowsocks.

In Russia, it seems to be because of the HTTP traffic not the protocol as Shadowsocks and V2Ray seems affected Blocking of fully encrypted protocols (Shadowsocks, VMess) in Russia, targeting HTTPS traffic fingerprints ¡ Issue #363 ¡ net4people/bbs ¡ GitHub

At the end of the day, it is a game of cat and mouse on modifying the fingerprint.


1 Like

Right, they aren’t starting from stratch and it seem quite promising

How does this affects DPI ?

One of the easiest ways to do “DPI” (all relative how “deep” it is) is just to look at the SNI hostname in the TLS Client Hello.

In TLS and QUIC without Chaos Protection, middleboxes can sniff the SNI hostname by just reading a fixed offset into the stream.

Chaos Protection for QUIC breaks up the Client Hello into multiple frames and shuffle them (perfectly valid from a real QUIC implementation’s perspective).

So middleboxes would have to jump from “reading a fixed byte offset” to “fully implementing QUIC frame reconstruction logic and do that for every stream”, which is far tricker.

1 Like

Messed up the date, it was blocked since mid 2018 if i remember correctly.

As it stands now, harsher censors simply block QUIC altogether due to its low adoption and the lack of repercussions due to fallbacks.

While i admire Hysteria2, i think VPN providers should implement AmneziaWG as a starting point. I didn’t test your implementation, but I’m pretty sure AmneziaWG/Cloak are faster.

It doesn’t disrupt their current infra and nor require any development. I started to dislike the usually praised Proton, Mullvad and even Tor after learning how useless their solutions are at combatting censorship.

Its sad to see tier 2 vpn providers like ivpn carefully implementing V2Ray protocols (but most importantly financing the developers) while Proton doesn’t fix leaks in their Linux VPN client for years and Mullvad grifting misinformed EU&US users about their success in fighting censorship.

opengfw covers both cases with their analyzer AFAIK

1 Like

Right. The IRGFW report was insightful to many of my friends who were just exploring the censorship scene just recently. It highlighted the need to constantly switch between many strategies and servers. In Russia, Iran and China Tier 2 and Tier 3 VPN providers provide VLESS (WS+TLS to be precise), Trojan (Both TLS and WS+TLS), VMESS (WS+TLS) and Amnezia altogether since it’s common to encounter a heavily censored segment of the internet while traveling for example. I hope Encounter5729 would finally understand how Mullvad adding QUIC obfuscation is certainly a path in the right direction, but nearly not enough to deal with censorship in any meaningful way.

I forgot to mention i asked Mullvad whether they had plans to add V2Ray, AmneziaWG protocols and they said no. I don’t want to appear to be hating on them for no reason)

I saw no confirmation of this in their blogs. They simply email you back an unblocked server from the public list last time i emailed them.

1 Like