Table of Contents
- The fundamental split: network layer vs browser layer
- What a VPN conceals in a browser context
- What a VPN does not touch: the fingerprint surface
- WebRTC: the IP leak that bypasses your tunnel
- DNS: the second leakage vector
- Which VPN complements browser hardening best
- ProtonVPN: pragmatic choice, honest limitations
- Building the complete stack
The fundamental split: network layer vs browser layer
Most VPN marketing conflates two distinct threat surfaces as if they were one. They are not.
The network layer is what a VPN addresses: which IP address destination servers see, whether your ISP can observe traffic destinations, whether a passive network observer can read unencrypted payloads. A competent VPN solves all of these adequately.
The browser layer is orthogonal: it concerns what JavaScript running in the page can extract about your device through browser APIs — canvas rendering output, WebGL renderer strings, AudioContext timing, installed font enumeration, screen dimensions, hardware concurrency, device memory, navigator.userAgent, and several dozen more signals. A VPN has zero effect on any of these. The browser reports them directly; the tunnel routing is irrelevant.
Understanding this split is the prerequisite for building effective privacy. Conflating them leads to the common mistake of thinking a VPN subscription constitutes a comprehensive privacy posture. It handles one layer. The other requires separate tooling.
Our browser fingerprinting state of the art 2026 covers the full taxonomy of fingerprinting vectors and entropy measurements. This article focuses on the intersection: what a VPN adds (and fails to add) to a browser privacy stack, and which VPN is best suited to complement active fingerprint resistance.
What a VPN conceals in a browser context
When you route browser traffic through a VPN, three things change concretely:
1. Your IP address at the destination server. HTTP servers log the connecting IP. Without a VPN, this is your real public IP — a residential IP tied to your ISP account, or a mobile carrier IP with rough location precision. With a VPN, the server sees a shared VPN exit node IP used by potentially thousands of simultaneous users. This reduces IP-based geolocation to city level at best and eliminates direct ISP correlation.
2. Your IP address at the DNS resolver. If your VPN routes DNS inside the tunnel (all three providers reviewed here do this correctly), your real IP is not visible to the resolver. For most users whose DNS resolves against their ISP's default resolver, this removes a significant data point. Note: if the browser performs DNS-over-HTTPS (DoH) to an external resolver outside the tunnel, the resolver still sees your real IP. Configure DoH through your VPN's resolver or disable it to let the OS resolver (inside the tunnel) handle it.
3. Traffic destinations from your ISP. Your ISP can see that you are sending encrypted traffic to a VPN server. It cannot see which sites you are visiting, how long you spend on them, or the volume breakdown per destination. For ISP-level data brokering — a real threat in the US under current FCC rules — a VPN is a legitimate mitigation.
These are meaningful protections. They are not fingerprint protections.
What a VPN does not touch: the fingerprint surface
The fingerprint surface is the set of attributes JavaScript can extract from browser APIs without elevated permissions. A detailed breakdown is available in our fingerprinting guide. The high-entropy signals that dominate real-world fingerprinting are:
Canvas rendering hash. The browser draws a hidden canvas with a specified string and image, then reads back the pixel array. Variations in GPU pipeline, font renderer, AA mode, and driver version produce a consistent per-device hash. VPN routing does not affect GPU hardware, font rendering, or driver behavior. The canvas hash is identical with or without VPN active.
WebGL renderer and vendor strings. gl.getParameter(gl.RENDERER) returns a string that identifies your GPU model and driver version. On Chrome/Chromium, this is typically not obfuscated. On Firefox, it can be overridden. VPN: no effect.
AudioContext fingerprint. An oscillator node is created, processed through a gain node, and the accumulated floating-point values are hashed. The variation comes from differences in audio processing hardware and driver implementation. No network routing involved.
Screen geometry and device pixel ratio. window.screen.width, window.screen.height, window.devicePixelRatio. These depend on your monitor and display settings. A 4K monitor with 2x DPR reports consistent values regardless of network path.
Navigator fields. navigator.hardwareConcurrency (CPU core count), navigator.deviceMemory (RAM bucket), navigator.platform, navigator.language. These are hardware and OS properties.
Font enumeration. CSS-based font probing (measuring rendered text dimensions with specific fonts) or the older document.fonts approach can detect which fonts are installed. Your font set is a function of your OS, language packs, and installed applications. Not a network property.
The combined entropy of these signals is high enough that most real-world browser sessions are uniquely identifiable across VPN sessions, incognito mode, and even IP address changes. A 2025 EFF analysis found that canvas + WebGL + AudioContext alone yielded >18 bits of entropy in a panel of 50,000 sessions — more than enough to re-identify most browsers over time.
WebRTC: the IP leak that bypasses your tunnel
WebRTC (Web Real-Time Communication) is the browser API that powers in-browser video calls, P2P file transfer, and real-time games. Its ICE (Interactive Connectivity Establishment) mechanism works by gathering all available network interfaces to find the optimal connection path. This includes your VPN's virtual interface but also your LAN IP and, critically, your real public IP via STUN reflection.
The behavior that constitutes a privacy leak: a page with an active WebRTC peer connection can collect ICE candidates that contain your real IP address. This happens inside the JavaScript sandbox, without elevated permissions, even with a VPN active. The STUN request routes outside the VPN tunnel through the OS network stack.
The practical scope of this leak is contested. It requires an active peer connection, which means the attacking page needs either a legitimate WebRTC feature or a JavaScript fingerprinting script specifically crafting a peer connection for surveillance purposes. The latter exists. Our network leak detection guide includes a procedure for testing whether your specific browser/VPN combination is vulnerable.
Mitigation options ranked by effectiveness:
- Mullvad Browser: disables WebRTC by default. Zero attack surface.
- Firefox (with
media.peerconnection.enabled = false): disables WebRTC globally. Breaks video call sites unless temporarily re-enabled. - Firefox (with
media.peerconnection.ice.default_address_only = true): restricts ICE to a single interface, typically the VPN. Allows WebRTC to function while preventing multi-interface enumeration. - Chrome with an extension (uBlock Origin's WebRTC policy, or dedicated WebRTC leak prevention extensions): policy-based restriction. Effectiveness varies by extension and Chrome version.
- Chrome without modification: vulnerable. The
--force-webrtc-ip-handling-policy=disable_non_proxied_udpflag exists but requires process restart and command-line configuration.
DNS: the second leakage vector
Even with a VPN active, DNS can leak your real IP if the configuration is incorrect. The three failure modes:
1. System DNS bypass. Some VPN clients fail to redirect all DNS traffic through the tunnel on specific OS configurations. The browser's DNS requests reach the system resolver, which may be your ISP's or a public resolver like 8.8.8.8, from your real IP. Test: run tcpdump -n port 53 while browsing with the VPN connected. Any packets showing your real interface as source are a leak.
2. DNS-over-HTTPS outside the tunnel. Browsers with DoH enabled (Firefox's "Trusted Recursive Resolver", Chrome's "Secure DNS") bypass the OS resolver and send DoH queries directly to Cloudflare (1.1.1.1) or Google (8.8.8.8). If the DoH provider's IP is not routed through the VPN tunnel, these queries leave from your real IP. The VPN's DNS-over-tunnel is circumvented.
3. IPv6 fallback. If your network has IPv6 connectivity and the VPN provides IPv4-only tunneling, IPv6 DNS requests and direct connections can bypass the tunnel entirely. ProtonVPN, Mullvad, and IVPN all support IPv6 tunneling on their current clients, but IPv6 kill switch behavior varies by OS and client version.
To eliminate DNS leakage: disable DoH in the browser (let the VPN's resolver handle it), verify your VPN client has IPv6 leak protection enabled, and audit with a controlled resolver test as described in our network leak detection guide.
Which VPN complements browser hardening best
Not all VPNs are equal in how well they integrate with a browser privacy stack. The differentiating factors for this specific use case:
DNS resolver quality. Does the VPN operate a no-log, non-filtering resolver? Mullvad operates its own DNS infrastructure with optional content-blocking; the resolver itself does not log. ProtonVPN's resolver integrates with its Netshield malware/tracker blocking feature, with the caveat that DNS is processed through Proton's infrastructure. IVPN's resolver is similar to Mullvad's with optional blocklist tiers.
WebRTC handling. The VPN itself cannot directly affect browser WebRTC behavior — that is a browser-side configuration. However, Mullvad provides the Mullvad Browser as a companion product specifically designed to eliminate the browser-layer leaks a VPN cannot address. This makes the Mullvad network + Mullvad Browser combination the most architecturally coherent stack available.
Kill switch reliability. A dropped VPN tunnel that reconnects over 5 seconds produces a window during which your real IP is exposed in HTTP requests. An OS-level kill switch with a default-on configuration (Mullvad's model) closes this gap.
IPv6 leak protection. All three providers support IPv6 tunneling. Mullvad's client enforces IPv6-only-through-tunnel by default. ProtonVPN requires verifying this in client settings.
ProtonVPN: pragmatic choice, honest limitations
Within the VPN landscape relevant to browser privacy, ProtonVPN is a reasonable recommendation with specific trade-offs stated plainly.
What it does well for browser privacy: Reliable DNS-in-tunnel across all platforms. Netshield DNS-level tracker and malware blocking (optional). A large server fleet (9,200+ servers) with good geographic coverage for exit node diversity. The free tier with no bandwidth cap makes it accessible for users testing their setup before committing to a subscription.
What it does not provide: Browser-layer fingerprint resistance — this is not a criticism specific to Proton, no VPN provides this. No hardened companion browser in the Proton ecosystem. Payment anonymity is weaker than Mullvad or IVPN (BitPay-mediated Bitcoin only, no Monero, no cash).
Where it fits: Users who want a trustworthy network-layer privacy foundation, particularly those already using the Proton ecosystem (ProtonMail, ProtonDrive), and who are managing browser privacy separately through browser choice and configuration. The Swiss jurisdiction, the Cure53 infrastructure audit (April 2025), and the free plan make it a low-friction entry point.
Disclosure: the link below is an affiliate link. We earn a commission if you subscribe through it, at no extra cost to you. We only recommend tools we would recommend without this arrangement.
Try ProtonVPN → ProtonVPN (free plan available — no bandwidth cap)
Building the complete stack
A privacy setup that addresses both the network layer and the browser layer requires combining tools. A practical configuration for a technically-aware user in 2026:
Network layer: ProtonVPN (pragmatic, free entry point) or Mullvad (strongest architecture if payment anonymity matters). Kill switch on. DNS-in-tunnel verified. IPv6 leak protection enabled.
Browser layer:
- Mullvad Browser for general browsing — canvas noise, letterboxing, WebRTC disabled, consistent font set. Does not require Mullvad VPN.
- Firefox with
media.peerconnection.ice.default_address_only = truefor sites requiring WebRTC. Confirm DoH routes through your VPN's resolver or disable it. - Tor Browser for sessions where IP unlinkability matters beyond what a VPN provides.
Verification:
- After configuring your VPN and browser, check with an external DNS leak test that queries come from VPN IP.
- Open a WebRTC test page and confirm no local/real IPs appear in ICE candidates.
- Run a canvas fingerprint test before and after configuration changes to verify noise injection is active.
- Verify IPv6 connectivity is tunneled, not native.
The network layer and browser layer are complementary, not substitutes. A VPN without browser hardening leaves the high-entropy fingerprint surface fully exposed. Browser hardening without a VPN still reveals your real IP in server logs. The stack needs both, configured correctly and verified.
For the full fingerprint taxonomy and entropy analysis, see Browser fingerprinting state of the art 2026. For browser-side configuration, the privacy browsers comparison covers Tor, Mullvad Browser, Brave, and LibreWolf against a common threat model matrix.