Cómputo matemático del navegador revela el sistema operativo: el último bit delata a los sistemas anti-bot

Fuentes: Your Browser Does Math Differently on Every OS, and Anti-Bot Systems Read the Bits

El navegador ejecuta funciones matemáticas aparentemente idénticas, pero los últimos bits de cada resultado varían según el sistema operativo, lo que ofrece a los sistemas anti-bot una huella técnica difícil de falsificar. El motor V8 de Chrome delega casi todas las funciones trigonométricas y logarítmicas en librerías propias, pero desde la versión 148 (Chrome 148, 149 y 150) Math.tanh se calcula mediante std::tanh del sistema, lo que devuelve bits distintos en Linux (glibc), macOS (libsystem_m) y Windows (UCRT). En una sola entrada de prueba como Math.tanh(0.8) los tres sistemas producen tres resultados diferentes: 0.6640367702678491, 0.664036770267849 y 0.6640367702678489.

El artículo detalla el mapa completo de fugas. En CSS, las siete funciones trigonométricas (sin, cos, tan, asin, acos, atan, atan2) son,计算adas por Blink llamando directamente a la librería del sistema, por lo que también filtran el sistema operativo. En Web Audio, la situación se complica porque macOS emplea dos librerías distintas: libsystem_m para las operaciones escalares del compresor y el framework Accelerate para la FFT y las etapas vectoriales.

Reimplementar las funciones de Apple plantea cuatro problemas: solo Math.tanh filtra entre las funciones de V8, JavaScript y CSS usan rutas diferentes, Apple Silicon dispone de dos librerías incompatibles entre sí y la arquitectura (ARM frente a x86) altera el redondeo por la operación fused-multiply-add. WASM queda al margen porque carece de opcodes trascendentes y solo expone diferencias menores en la canonicalización de NaN. El texto cierra con un mapa exhaustivo que indica qué superficie (Math.tanh, CSS trig o Web Audio) filtra información y qué estrategia seguir para reproducir bit a bit la matemática del navegador original.