Hardware Fingerprint (Canvas) Introduction

Canvas is an HTML5 API for drawing 2D images and animations on web pages.
In addition to the above functions, Canvas can also act as additional entropy for browser fingerprinting. According to a study by Englehardt and Narayanan at Princeton University (2016), more than 5% of websites use Canvas for fingerprinting purposes.
In summary, Canvas fingerprinting works by asking the browser to draw a hidden Canvas image. On different machines, this drawn image is slightly different; but if the machine is the same, the image is the same. After the image is drawn, it is converted into a hash string which is further used as additional entropy in identification.

Noise modeA/B/C
When a website requests a Canvas function readout through the browser, the Canvas masking algorithm in noise mode intercepts it midway and adds a random but always consistent noise to the readout. To better understand how it works, we can compare it to a "voice modifier". When you use a voice modifier with a specific preset, it changes your voice, making it significantly different from your original voice but the change will remain consistent over time.
Since random noise is applied to the readout, if the website applies data analysis techniques, the fingerprints will be found to be 100% unique. 
Noise mode B and noise mode C are upgraded based on noise mode A, and the commonly used modes are B and C

此图片的alt属性为空;文件名为13-1.png

Off mode
After setting Canvas to off mode, the website will get the real Canvas fingerprint of your device.
Setting Canvas to "off mode" can be beneficial in certain situations, such as when a website has a poor response to 100% unique or blocked canvas readouts.
MuLogin provides three different operation modes to control Canvas fingerprinting of brower configuration files: noise mode, off mode, and blocking mode.
Note: In a real environment, the hash of the Canvas fingerprint is not unique because there are identical copies of your device all over the world. So by revealing your real Canvas fingerprint, you will only be grouped into the same segment of users who have the same hardware setup. In addition, by changing other fingerprints, you can increase the entropy by which websites will be able to see your browser profiles as separate identities.

Blocking mode
Blocking mode completely prevents websites from reading Canvas. When a website attempts to read a Canvas that has been set to blocking mode in the browser configuration file, the returned value will be empty.
How this situation is handled is entirely up to the website's own discretion. However, in the case of browser error occurs while retrieving Canvas object data, such events can also occur to users who are not intently trying to hide their Canvas fingerprints.
Open browser configuration files on multiple computers
Note: If you create a browser configuration file with Canvas set to noise mode, and open it on multiple devices with different hardware, websites will know that Canvas hash is not persistent across multiple launches. Although the added noise is persistent, it is added as a filter on top of the existing machine fingerprint. So, if the device changes, the readout will also change.
Below is a screenshot of an example. The same browser configuration file is opened on two different devices. Although the noise is persistent for this configuration file, the Canvas readout is still different.

If you need constant readout across multiple devices, here are a few workarounds you can try:
1. Run MuLogin on an identically configured virtual machine or virtual private server (VPS) with the hardware fingerprint set to noise mode. Since these devices are set up in the same way, the masked Canvas fingerprints will remain consistent on multiple machines.
2. Run MuLogin on identical PC models with the same hardware, driver and OS setup. Since these machines have the same hardware setup. Since these machines will be set up the same way, the masked Canvas fingerprints will remain consistent on multiple machines.