Feature Request: Audiocontext Fingerprint Protection
#3,155 opened on Jan 20, 2025
Repository metrics
- Stars
- (18,674 stars)
- PR merge metrics
- (Avg merge 3d) (8 merged PRs in 30d)
Description
Description
Audiocontext Fingerprint Protection
Who's implementing?
- I'm willing to implement this feature myself
The problem
From the results of "https://coveryourtracks.eff.org/", there is a "Audiocontext Fingerprint" option that can be used to fingerprint users/browsers.
Safari has implemented some measures to protect from Audio Fingerprinting ("https://fingerprint.com/blog/bypassing-safari-17-audio-fingerprinting-protection/").
It would be wonderful if this could be implemented and added as an Ungoogled-Chromium feature/switch/flag option.
Possible solutions
On the linked fingerprint.com blog, this is the audio fingerprinting protection code implemented in Safari:
void applyNoise(float* values, size_t numberOfElementsToProcess, float magnitude)
{
WeakRandom generator;
for (size_t i = 0; i < numberOfElementsToProcess; ++i)
values[i] *= 1 + magnitude * (2 * generator.get() - 1);
}
The description says this:
- An audio signal produced with the Audio API is an array of numbers representing the signal amplitude at each moment of time (also called “audio samples”). When fingerprinting protection is on, Safari adds a random noise to every sample individually. A noised sample lies between sample*(1-magnitude) and sample*(1+magnitude), and the distribution is uniform(https://en.wikipedia.org/wiki/Continuous_uniform_distribution). This is how it’s implemented in Safari (https://github.com/WebKit/WebKit/blob/167dc5118a3f6228a19df40e673ea0a6d03b9bec/Source/WebCore/platform/audio/AudioUtilities.cpp#L80):
Alternatives
No response
Additional context
No response