Huella digital de audio sin micrófono

«Huella digital de audio» suena a algo grabado con un micrófono. No lo es. Es un número derivado de cómo tu equipo procesa un sonido sintético que nunca se reproduce, nunca se captura y nunca sale de la pestaña.
Cómo se crea
El script crea un OfflineAudioContext, que renderiza audio en un búfer en memoria en lugar de enviarlo a los altavoces. Conecta un oscilador, normalmente una onda triangular de frecuencia fija, a través de un compresor de dinámica hasta el destino, y empieza a renderizar. Cuando el búfer está listo, lee un fragmento de las muestras, a menudo unos cientos de valores, y les aplica un hash. El resultado es una cadena corta como d4f50eb9.
Toda la operación tarda unas decenas de milisegundos y no requiere permiso, porque no se captura nada. El OfflineAudioContext se cierra cuando el script termina.
Por qué difiere entre equipos
El compresor y el oscilador se implementan con aritmética de coma flotante dentro del motor de audio del navegador, y la salida exacta depende de la versión del motor, de la biblioteca matemática del sistema operativo, del comportamiento de coma flotante de la CPU y, en algunas configuraciones, de la frecuencia de muestreo del hardware de audio. Las diferencias son minúsculas, unos pocos bits en las últimas cifras decimales, pero el hash amplifica las diferencias minúsculas hasta cadenas totalmente distintas. Como el hash de canvas, es estable en un mismo equipo y varía entre equipos.
Su diversidad es menor que la del canvas: muchos equipos con la misma versión de navegador y sistema operativo producen el mismo hash de audio. Es útil sobre todo como señal de confirmación y para detectar navegadores que aleatorizan su salida.
Qué hacen los navegadores
Brave añade ruido a las lecturas de audio del mismo modo que lo hace con el canvas. Firefox con resist-fingerprinting desactiva partes de la Web Audio API o devuelve valores constantes. Chromium no altera la salida. Un navegador que aleatoriza el hash produce un valor distinto en cada recarga, algo que un diagnóstico hace visible con solo dejarte recargar y comparar.
Privacidad, con precisión
No se graba ningún sonido. No se abre ningún micrófono. El búfer existe en memoria mientras dura el cálculo y se descarta. Lo único que podría salir de la pestaña es el hash, y solo si la página decide enviarlo. Un diagnóstico que calcula el hash en local y te lo muestra lee exactamente lo que leería un rastreador, y luego no hace nada con ello.
Cómo leer el valor
Vale la pena comprobar dos cosas. Primero, que el hash exista: «No disponible» significa que la API está bloqueada, algo que algunos sitios tratan como una señal en sí. Segundo, que sea estable: recarga y el valor no debería cambiar. Un hash que cambia entre cargas te indica que el navegador inyecta ruido, lo que protege del rastreo entre sitios pero también marca al navegador como uno que lo hace.


