Audio Fingerprinting Not Blocked - Matches Firefox

audio fingerprinting is equivalency of platform architecture, which cannot be spoofed/hidden

you can use TZP to check, scroll down to the audio section.

There are 20 audioContext keys - 16 are hardcoded the same for all gecko browsers - and the other four are controlled with RFP - to make everyone the same (except for ac-outputLatency which is equivalency of platform i.e windows/linux/mac/android - which cannot be spoofed/hidden)

For audio tests involving waves etc - entropy comes from 2 places

  • One is from ac-sampleRate which is an audioContext key protected by RFP - RFP always reports and uses 44100
  • The other source of entropy is Math - floating point differences: the math library can differ between platforms and architectures. Audio uses a subset of Math functions and a limited range. The floating point entropy in audio is therefore equivalency, or a subset if you like, of Math
    • RFP forces all audio In gecko, all audio (it’s not a RFP thing) now uses the same math library across all platform architectures reducing differences to what cannot be spoofed/hidden (i.e equivalency) - see below, RFP audio only returns one of three possible results
    • That’s great, but because audio math is equivalency of Math (JS API), we need to patch that as well, and RFP does do that

tl;dr - there is no entropy in audio with RFP, only equivalency of platform architecture which cannot be hidden or spoofed (i.e there are two too many ways to determine this and lying about it just causes problems) x86_64/amd_64 vs ARM64/aarch64 vs x86/i686/ARMv7

1 Like