Audio fingerprinting generates audio signals and measures tiny differences in how your hardware processes sound.
Audio fingerprinting exploits the Web Audio API to create unique identifiers based on hardware and software audio processing differences. This technique:
Audio fingerprinting was discovered as a tracking technique around 2014 when researchers found that the Web Audio API, designed for audio games and music applications, could be exploited for device identification.
Audio output varies based on:
async function generateAudioFingerprint() {
const audioContext = new (window.AudioContext || window.webkitAudioContext)();
// Create oscillator
const oscillator = audioContext.createOscillator();
oscillator.type = 'triangle';
oscillator.frequency.value = 10000;
// Add compressor for more variation
const compressor = audioContext.createDynamicsCompressor();
compressor.threshold.value = -50;
compressor.knee.value = 40;
compressor.ratio.value = 12;
compressor.attack.value = 0;
compressor.release.value = 0.25;
// Connect nodes
oscillator.connect(compressor);
compressor.connect(audioContext.destination);
// Start and capture
oscillator.start(0);
const analyser = audioContext.createAnalyser();
compressor.connect(analyser);
// Extract frequency data
const dataArray = new Float32Array(analyser.frequencyBinCount);
analyser.getFloatFrequencyData(dataArray);
// Hash the audio data
return hashArray(dataArray);
}| Factor | How It Affects Fingerprint |
|---|---|
| Audio Chipset | Realtek, Intel HDA, Creative, etc. have different DSP implementations |
| Browser Engine | Chrome (Blink), Firefox (Gecko), Safari (WebKit) process audio differently |
| Operating System | Windows, macOS, Linux use different audio APIs and precision |
| CPU/FPU | Floating-point calculation precision varies between Intel, AMD, ARM |
| Driver Version | Audio driver updates can change processing characteristics |
| Audio Enhancements | Dolby, DTS, equalizers alter audio processing |
Uses WASAPI or DirectSound. Realtek HD Audio is extremely common. Windows audio enhancements (spatial sound, loudness equalization) affect fingerprint.
Uses CoreAudio. More consistent across devices due to Apple's hardware control, but still distinguishable from Windows/Linux.
Uses ALSA, PulseAudio, or PipeWire. High variability due to diverse distributions and audio configurations.
Using USB DACs, audio interfaces, or Bluetooth audio creates different fingerprints than built-in audio.
Audio fingerprinting creates a highly unique, persistent identifier based on your hardware that cannot be easily changed without replacing components.
Unlike software-based identifiers, audio fingerprints reflect your physical hardware. Changing this requires replacing sound cards or motherboards—impractical for most users.
Audio fingerprinting produces no sound and leaves no trace. Users have no indication it's happening. No permissions are required.
While browser differences exist, audio fingerprints are similar enough across browsers on the same device to enable cross-browser tracking.
Major ad networks use audio fingerprinting as part of device identification to track users across websites and build advertising profiles.
If you use the same device for anonymous and identified accounts, audio fingerprinting can link them together.
Combined with other data, audio fingerprints can help identify when different people use the same device (shared computers, internet cafes).
Unlike cookies or IP addresses, audio fingerprints are extremely difficult to change:
Method: Blocks or returns standardized audio data
Effectiveness: Very High - prevents audio fingerprinting
Tradeoff: Web audio applications may not function
Method: Adds random noise to audio output (farbling)
Effectiveness: High - makes fingerprint unstable
Tradeoff: Minimal impact on legitimate audio applications
Method: Reduces precision of audio data
Enable: about:config → privacy.resistFingerprinting = true
Effectiveness: Moderate - reduces but doesn't eliminate uniqueness
privacy.resistFingerprinting.