🖼️ WebGL Fingerprint

GPU-Based Browser Fingerprinting

WebGL fingerprinting uses the WebGL API to identify your device based on graphics card information and rendering capabilities. It's one of the most revealing fingerprinting techniques.

💡 Key Point: WebGL exposes detailed GPU information including vendor, renderer, and supported extensions - creating a highly unique device signature.

🔬 How WebGL Fingerprinting Works

1. Renderer & Vendor Information

WebGL exposes your GPU details through the WEBGL_debug_renderer_info extension:

const gl = canvas.getContext('webgl');
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');

// Get GPU vendor (e.g., "NVIDIA Corporation")
const vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);

// Get GPU renderer (e.g., "NVIDIA GeForce RTX 3080")
const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);

2. Supported Extensions

The list of supported WebGL extensions varies by GPU and driver:

const extensions = gl.getSupportedExtensions();
// Returns array like: ["ANGLE_instanced_arrays", "EXT_blend_minmax", ...]

3. WebGL Parameters

Various WebGL parameters reveal hardware capabilities:

4. Shader Precision

Shader precision formats vary by GPU:

const highpFloat = gl.getShaderPrecisionFormat(
    gl.FRAGMENT_SHADER, gl.HIGH_FLOAT
);
// Returns precision, rangeMin, rangeMax

📊 WebGL Fingerprint Components

Component Example Value Entropy
Renderer NVIDIA GeForce RTX 3080 High
Vendor NVIDIA Corporation Medium
Extensions 37 extensions High
Max Texture Size 16384 Low
Shader Precision highp: 23, 127, 127 Medium

🛡️ How Antidetect Browsers Spoof WebGL

Renderer/Vendor Spoofing

Antidetect browsers intercept WebGL calls and return fake GPU information that matches common hardware configurations.

Parameter Modification

WebGL parameters are modified to match the spoofed GPU model, ensuring consistency.

Extension Filtering

The list of supported extensions is adjusted to match what the spoofed GPU would support.

⚠️ Consistency is Key: WebGL fingerprint must be consistent with other fingerprints (canvas, hardware). Mismatches are easily detected.

🔍 WebGL2 Considerations

WebGL2 provides additional fingerprinting vectors:

❓ Frequently Asked Questions

Can I disable WebGL?

Yes, but disabling WebGL breaks many websites and is easily detected. It's better to use spoofed values that appear legitimate.

Why does WebGL reveal my GPU?

WebGL was designed for 3D graphics in browsers. The debug info extension was added to help developers optimize for specific GPUs, but it also enables fingerprinting.

Is WebGL fingerprinting more accurate than canvas?

WebGL provides more explicit hardware information (exact GPU model), while canvas fingerprinting captures rendering differences. Both are highly effective and often used together.

🔗 Related Terms

Canvas Fingerprint GPU ID Hardware Concurrency Fingerprint Spoofing
Start Trial