How Tor Browser Blocks Audio Fingerprinting
Audio context fingerprinting is a tracking technique that identifies users by measuring subtle differences in how their devices process sound. Tor Browser defends against this fingerprinting method primarily by introducing mathematical noise into the Web Audio API, standardizing audio parameters across all users, and reducing timer precision to prevent precise hardware measurements. These combined techniques ensure that a user’s browser environment appears identical to that of every other Tor Browser user without completely breaking web audio functionality.
Understanding Audio Context Fingerprinting
Audio context fingerprinting relies on the HTML5 Web Audio API. A website sends a signal through an audio processing graph—using components like oscillators, compressors, and filters—and renders the result to an audio buffer without playing sound through the speakers.
Because of minute variations in audio hardware, digital signal processors (DSPs), operating system algorithms, and browser rendering engines, the resulting numerical values of the audio waveform vary slightly from machine to machine. Converting this processed waveform into a cryptographic hash creates a unique identifier for that specific machine.
Injecting Noise into Audio Buffers
Tor Browser’s primary defense against this technique is derived from
Firefox’s built-in Fingerprinting Resistance
(privacy.resistFingerprinting) engine. Instead of returning
raw, hardware-processed audio data, Tor Browser introduces controlled,
pseudo-random noise into the output of audio processing methods.
When a tracking script queries audio data through functions like
AudioBuffer.getChannelData() or
AnalyserNode.getFloatFrequencyData(), the browser alters
the floating-point values slightly. This noise makes the output
inconsistent across different browsing sessions and distinct from the
raw hardware output, effectively invalidating the static signature
needed to track a user over time.
Standardizing Audio Engine Parameters
Trackers also gather information from static properties exposed by the Web Audio API. Tor Browser standardizes these parameters so that all users present the exact same audio configuration to web servers.
These standardized parameters include: * Sample Rate: Forcing a uniform sample rate (typically 44,100 Hz) to hide the specific native sample rates of high-end or non-standard audio interfaces. * Channel Counts: Reporting generic channel configurations rather than revealing multi-speaker or surround-sound setups. * Latency Clamping: Masking the exact hardware latency values that could reveal specific audio drivers or hardware capabilities.
Reducing Timer Precision
Audio fingerprinting often relies on measuring the micro-timing of
audio rendering pipelines to identify processor characteristics. Tor
Browser reduces the precision of high-resolution timing APIs, such as
performance.now(), and clamps them to coarser intervals
(such as 100 milliseconds). This prevents scripts from accurately
benchmarking how fast a device’s CPU or DSP processes audio
operations.
Security Levels and Script Restrictions
For users who require maximum privacy, Tor Browser offers customizable Security Levels. Switching to the “Safer” or “Safest” levels restricts or disables JavaScript capabilities, including advanced HTML5 media and Web Audio features via the built-in NoScript extension. This prevents fingerprinting scripts from executing any audio-processing code in the first place.