Re: WireGuard obfuscation & active probing: staying virtuous under pressure

Ian Chen <[email protected]> Wed, 22 Apr 2026 19:32:13 +0800
Newsgroups com.zx2c4.lists.wireguard
Message-ID <LV5PR01MB9941483EF4AD106F533F88964DD22D2@LV5PR01MB994148.prod.exchangelabs.com>
--=-61PfsPedgxCq7Z3hufzk
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

> WireGuard over Shadowsocks-2022
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D
>=20
> TL;DR: Too much crypto + deployment challenges.
>=20
> Shadowsocks is a good solution against censor, but it strips 40 more
> bytes from MTU and AEADs data twice: XChaCha20-Poly1305 of
> Shadowsocks +
> ChaCha20-Poly1305 of WireGuard burning twice as much carbon credits.
> Performance matters: e.g. Mullvad introduces LWO claiming performance
> improvement over Shadowsocks.

I developed swgp-go around the same time I wrote the spec for
Shadowsocks 2022. At the time, I intentionally left replay protection
out of swgp-go, because I thought WireGuard wouldn't need it.

Thanks to your work, I now understand that this assumption was wrong!
So I added it into swgp-go:
https://github.com/database64128/swgp-go/commit/207a055ab0a1058579f299fc102=
1cc64c95b21db

The new "zero-overhead-2026" and "paranoid-2026" modes provide replay
protection for handshake packets. Replayed packets are dropped by
checking the nonce and an encrypted unix epoch timestamp, similar to
how Shadowsocks 2022's TCP construction does it.

This won't address the "DoSer" scenario, but should provide enough
protection against censors without knowledge of the OBFSK.

--=-61PfsPedgxCq7Z3hufzk
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----

iHUEABYKAB0WIQRNztFeNG4pI7kx1vcconVGvtuLAQUCaeixvQAKCRAconVGvtuL
AcOLAP4vwbRgxwmRRXqlD6YGd8ofZb7ci4IoeV83LuSlQjvKwwEAsnkeAlBsS48e
vmoNxxAv0k4xwiH03nuBSn2fY6r1ggI=
=l3zh
-----END PGP SIGNATURE-----

--=-61PfsPedgxCq7Z3hufzk--