Protocols
WireGuard, ChaCha20-Poly1305 and the kill switch: how PryVPN moves your traffic
What happens to a packet between your device and the exit node — and why a dropped tunnel means silence instead of leaks.
The short version. PryVPN runs kernel WireGuard end to end. Every packet is sealed with ChaCha20-Poly1305 before it leaves your device, sized to a 1420-byte MTU so nothing fragments, and routed so that a dead tunnel has nowhere to send anything. Your provider sees one encrypted UDP flow to one address — never the sites, the searches or the DNS.
Why WireGuard, and why in the kernel
Older VPN protocols grew organically for decades: negotiation ciphersuites, fallback modes, compatibility shims. Every option is a corner where a bug or a downgrade attack can hide. WireGuard took the opposite route — one handshake, one cipher suite, a few thousand lines of code. Less code means less room for mistakes, and it shows: the Linux implementation lives in the kernel, so packets move between the network stack and the cipher without crossing into userspace and back.
That is the datapath PryVPN uses on every node: kernel WireGuard, no userspace relay in the middle, no protocol fallback. If a client cannot speak WireGuard, it does not connect at all. There is deliberately no “compatibility mode” to be downgraded into.
ChaCha20-Poly1305: one cipher, no negotiation
Because there is no cipher negotiation, there is nothing weak to negotiate down to. ChaCha20 encrypts the packet; Poly1305 authenticates it, so any bit flipped in transit fails closed instead of decrypting to garbage. The combination was designed to be fast even on CPUs without dedicated AES instructions — which is exactly the hardware in most phones and routers.
Keys never travel inside the tunnel setup you can inspect: each session gets a fresh keypair, the server keeps only the public half, and the private half is shown to you exactly once, inside the profile the console generates. Delete the session and that key is useless. There is no password to phish and no certificate to expire mid-trip.
MTU 1420: the number that avoids fragmentation
Encryption adds overhead to every packet — headers the outer network must carry. If the inner packet plus that overhead exceeds what the path accepts, something has to fragment it, and fragmentation costs CPU twice (split, then reassemble) while giving middleboxes two chances to mishandle it.
PryVPN sets the tunnel MTU to 1420 bytes: full-size traffic from your device is clamped before encryption so the encrypted packet still fits a standard 1500-byte path. The practical effect is fewer retransmits and steadier throughput on mediocre hotel and airport networks — the places a VPN matters most. If your connection ever feels “sticky” on public Wi-Fi with another provider, mismatched MTU is one of the first suspects; here the number is fixed and public.
The kill switch is routing, not a feature flag
Most “kill switches” are watchdogs: an app notices the tunnel died and hurries to block traffic. Between dying and noticing, packets can leave. PryVPN does it one layer lower. The tunnel profile claims the entire IPv4 space as two halves — 0.0.0.0/1 plus 128.0.0.0/1 — which outranks any leftover default route. While the tunnel is up, everything matches those routes and enters it. The moment the tunnel interface is gone, those routes are gone too, and there is simply no route left for the packets to take.
Nothing has to notice, react, or win a race. Silence is the default state, connectivity the exception — which is the correct polarity for a privacy tool.
What your provider actually sees
With the tunnel up, everyone between you and the exit node — the café Wi-Fi, the ISP, anyone with access to their records — sees exactly three facts:
- UDP packets flowing to a single node address on one port,
- how many bytes, and when,
- that the payload is opaque.
The hostname, the DNS lookup, the page, the video, the timing inside the flow: all inside the encrypted payload. They can tell you used the internet. They cannot tell what for. And on our side the mirror rule holds — the never-logged list (browsing, DNS, destinations, SNI, payloads, your tunnel source address) is published on the privacy page and served by the API itself, so it is a checkable promise rather than a slogan.
No fallback protocol, on purpose
Every “if WireGuard fails, try something older” path is a downgrade attack waiting for an excuse — a hostile network just has to break the modern handshake and wait for the client to volunteer something weaker. So there is no such path. One protocol, one cipher, one MTU. The setups that cannot do that do not connect, loudly, instead of connecting weakly and quietly. When a privacy tool fails, the only acceptable failure is the obvious one.
Questions we hear
Is WireGuard faster than OpenVPN?
Does the kill switch slow down my connection?
Why 1420 bytes and not 1500?
Can my ISP tell I am using a VPN?
Reviewed by Jonas Keller · Updated 2 September 2026