Search code examples
browserwebglfingerprint

how unique is WebGL fingerprint


Recently I am researching some unique Id for browser and i came across https://panopticlick.eff.org/ realize there is a "Hash of WebGL fingerprint" but I don't know what is the key will affect the value I have tested using 2 difference resolution screen (same PC) to run and update my browser minor version and it return me the same value for the key.

Does anyone can help me to understand how the Hash of WebGL fingerprint generated?


Solution

  • Does anyone can help me to understand how the Hash of WebGL fingerprint generated?

    The WebGl fingerprint hash is generated by rendering a pattern (or low high entropy image (Image that does not compress well)) and then creating a hash from the resulting rendered pixels.

    That image is rendered to a frame buffer with a fixed size so changing screen resolution will not effect the resulting hash.

    The vertex and (particularly the) fragment shaders will be written such as to exaggerate known GPU processing differences. What these are will depend on the finger printer's code.

    As WebGL does not allow pre compiled shaders thus with a little effort you can gain access to the shaders source code by stepping through the code until you find the webGL context shaderSource call. The hash is generated by JavaScript, and again will depend on the finger printer's preferred method.