In questo articolo Indice dei contenuti 3 sezioni
Basta aprire la homepage di AliExpress in Firefox o in Chrome perché un paio di cuffie Bluetooth multipoint smetta di comportarsi come dovrebbe, e dietro questo effetto collaterale si nasconde una tecnica di fingerprinting basata sulle Web Audio API. La scoperta arriva da un ricercatore indipendente che ha provato a capire perché la musica in riproduzione sullo smartphone si interrompesse ogni volta che sul computer veniva caricata una pagina del marketplace. Chiudendo la scheda, tutto tornava a posto. Un dettaglio piccolo, apparentemente insignificante, che però ha portato a galla parecchie cose interessanti.
Il funzionamento delle cuffie multipoint è noto: collegate insieme a PC e telefono, danno priorità al computer e lasciano passare l’audio del telefono solo quando dal PC non arriva nulla. Il punto è che AliExpress, in teoria, non riproduce alcun suono. Eppure il canale audio del browser risulta occupato.
Due AudioContext creati in silenzio
Analizzando ciò che accade nel browser durante il caricamento della pagina, il ricercatore ha escluso subito le ipotesi banali. Nessun video nascosto, nessun elemento multimediale HTML. Entrano invece in funzione due istanze di AudioContext, l’oggetto attraverso cui JavaScript accede alle Web Audio API. Intercettando la loro creazione e le chiamate che collegano tra loro i nodi audio, è stato possibile risalire agli script responsabili: il primo AudioContext nasce da collina.js, il secondo da fireyejs.js, entrambi distribuiti tramite l’infrastruttura AWSC di Alibaba.
I due file sono pesantemente offuscati, ma osservarli mentre girano basta a capire cosa combinano. Costruiscono un grafo audio e lo collegano a AudioContext.destination, cioè al punto che rappresenta l’uscita audio del browser. Ed è esattamente questo il motivo per cui le cuffie si comportano in modo strano.
Uno degli script crea un OscillatorNode, un generatore di forme d’onda sintetiche. Nessun file da scaricare, il segnale se lo calcola il browser da solo. Poi lo fa passare attraverso un AnalyserNode, che legge informazioni su forma d’onda e contenuto in frequenza, e attraverso uno ScriptProcessorNode, vecchia interfaccia ormai accantonata ma ancora supportata. In fondo alla catena c’è un GainNode con guadagno impostato a zero. Tradotto: il segnale viene prodotto ed elaborato, ma nessuno lo sente. Il PC tiene aperto il percorso di riproduzione anche se alle cuffie non arriva niente di percepibile.
Perché generare un suono che nessuno ascolta
La risposta plausibile è il browser fingerprinting. Le Web Audio API permettono di ricavare caratteristiche del dispositivo sfruttando le minime differenze con cui ogni macchina elabora un segnale sintetico: implementazioni DSP, precisione dei calcoli in virgola mobile, resampling. Lo script genera un segnale di cui conosce ogni parametro, lo fa masticare al browser e misura cosa ne esce. Interessano i numeri, non il suono.
E l’audio è solo una parte del quadro. Nei due script compaiono anche controlli su Canvas e WebGL, dimensioni dello schermo, viewport, devicePixelRatio, numero di processori logici, memoria dichiarata, codec supportati e varie proprietà del browser. Più verifiche riconducibili al rilevamento di bot e automazione, con segnali raccolti dall’interazione: mouse, touch, focus, scorrimento. Presi uno per uno dicono poco. Messi insieme costruiscono un profilo tecnico del client piuttosto dettagliato.
La prova con uBlock Origin e il nodo del consenso
Il test finale è stato semplice. Bloccando collina.js e fireyejs.js con filtri specifici di uBlock Origin, gli AudioContext spariscono e con loro, su quella configurazione, anche l’anomalia delle cuffie. Bloccarli in pianta stabile però ha un costo: se fanno parte dei sistemi di valutazione del rischio di Alibaba, il sito potrebbe rispondere con CAPTCHA in più, richieste di verifica o intoppi durante login e pagamento.
Sul fronte normativo la questione tocca il GDPR. L’EDPB ha chiarito che l’articolo 5(3) della direttiva ePrivacy non riguarda solo i cookie e che il device fingerprinting rientra nel suo ambito quando comporta l’accesso a informazioni presenti nel terminale, con il consenso come regola generale salvo eccezioni. Se poi i dati raccolti permettono di distinguere o seguire una persona fisica, servono base giuridica, informativa adeguata e rispetto dei principi di necessità, proporzionalità e minimizzazione. Il solo esame del JavaScript dimostra la raccolta di numerosi segnali tecnici, ma non dice quale base giuridica venga invocata, quanto a lungo il fingerprint venga conservato o come venga usato lato server.










