Pregúntale a tu navegador en qué sistema operativo se ejecuta y no obtendrás una respuesta. Obtendrás cinco. La cadena User-Agent nombra un sistema operativo. También lo hace navigator.platform. Y la API Client Hints, la cabecera Sec-CH-UA-Platform que tu navegador adjunta a cada petición, y (en Firefox) la vieja propiedad navigator.oscpu.
En una máquina normal nadie se da cuenta, porque las cinco dicen lo mismo. En el momento en que cambias una de ellas y te olvidas de las demás, dejas de parecer un Mac o un PC con Windows y empiezas a parecer algo mucho más interesante: un navegador que miente.
El widget de esta página ejecuta ese mismo cotejo en tu navegador ahora mismo.
Los cinco lugares donde tu navegador nombra un sistema operativo
- La cadena User-Agent. El clásico.
Mozilla/5.0 (Windows NT 10.0; Win64; x64)...y todas las extensiones de falsificación del mundo la editan. navigator.platform. Una propiedad de JavaScript mucho más antigua que la mayoría de las herramientas de falsificación olvidan por completo.navigator.userAgentData.platform. La moderna API Client Hints en los navegadores Chromium. Cualquier script puede leerla, sin necesidad de permisos.- La cabecera
Sec-CH-UA-Platform. Los mismos datos de Client Hints, pero enviados por la red con cada petición. El servidor de un sitio web lee esto antes de que se ejecute una sola línea de tu JavaScript. navigator.oscpu. Solo en Firefox. Lo cual es en sí mismo información: un navegador “Chrome en Windows” que exponeoscpuya se ha delatado.
Estos no provienen de un único ajuste compartido. Editar el User-Agent no actualiza las cabeceras, y sobrescribir una propiedad de JavaScript no llega a la capa de red. Esa independencia es exactamente lo que hace que el cotejo funcione:
Es la misma trampa que atrapa la falsificación de versión, que tratamos en Tu User-Agent miente. Tu versión de Chromium no. El patrón se generaliza: cada señal que falsificas es una oportunidad más de contradecir las señales que no falsificaste.
Los navegadores reales también mienten, solo que de formas estándar
Aquí viene la parte que sorprende a la gente: un navegador honesto tampoco informa de tu sistema operativo con precisión.
- En Windows de 64 bits,
navigator.platformdiceWin32. Lo ha dicho desde los años noventa, y cambiarlo rompería sitios web antiguos. - En un Mac con Apple Silicon, dice
MacIntel. No hay ningún Intel dentro, pero la etiqueta sobrevivió a la transición de chip. - El User-Agent de todos los Mac modernos limita la versión de macOS que reporta, así que distintas versiones de macOS pueden presentar la misma cadena.
Los rastreadores se saben estas mentiras estándar de memoria, y eso funciona en ambos sentidos. Una falsificación que reporta Win64 porque suena más correcto es sospechosa al instante, porque ningún navegador real ha dicho jamás eso. Para pasar, una imitación tiene que mentir exactamente de la misma forma en que miente la real. La mayoría de las herramientas de falsificación no conocen el folclore.
Incluso las etiquetas perfectas filtran
Supón que lo haces bien: User-Agent, navigator.platform, Client Hints y las cabeceras, todo reescrito para coincidir en macOS. Consistente en todas partes. ¿Listo?
No del todo. Las etiquetas son solo la parte del sistema operativo que puedes renombrar. El resto del sistema operativo sigue comportándose como él mismo:
Las fuentes son la señal más ruidosa. Windows incluye Segoe UI y Calibri, macOS incluye Helvetica Neue y San Francisco, las distribuciones de Linux incluyen DejaVu. Un script puede sondear estas fuentes en milisegundos (nuestro artículo sobre fingerprinting de canvas muestra el truco de medición). La cadena del renderizador de WebGL es igual de rotunda: Direct3D significa Windows, Metal significa un Mac, sin excepciones.
Así que falsificar el sistema operativo no es un solo interruptor. Es un problema de etiquetas y un problema de comportamiento, y el problema de comportamiento es mucho más difícil.
Qué hacer en realidad
- Si no gestionas identidades de forma deliberada, no falsifiques tu sistema operativo. Te unirás a una multitud diminuta y extraña de navegadores que se autocontradicen, en lugar de a la enorme multitud de los normales. Mezclarse gana a esconderse.
- Nunca falsifiques a medias. Un conmutador de User-Agent que solo edita la cadena te hace más fácil de reconocer, no más difícil. Si no puedes cambiar todas las superficies, no cambies ninguna.
- Si de verdad necesitas identidades separadas, haz que toda la pila coincida. Etiquetas, cabeceras, fuentes, WebGL, todo. Ese es precisamente el trabajo para el que existen los navegadores anti-detección. Incogniton construye cada perfil de modo que la historia del sistema operativo se cuente de forma consistente, desde la capa de red hasta la lista de fuentes, en lugar de atornillar una nueva etiqueta a una máquina que no ha cambiado.
¿Quieres ver cómo aguanta tu propio navegador? El widget de esta página comprueba las señales de tu sistema operativo, y el escáner completo ejecuta junto a ella la comprobación de versión, el test de fugas de WebRTC y una docena más.