Detectando el navegador utilizado sin hacer uso del UserAgent

Sí, es posible detectar el navegador real de un usuario ignorando el «User-Agent». Esto se logra mediante técnicas de «Browser Fingerprinting» (Huella digital del navegador). Métodos modernos como Canvas Fingerprinting, análisis de parámetros TLS (JA3) y Client Hints permiten identificar el software y hardware del visitante basándose en cómo procesa gráficos, criptografía y código, haciendo inútil la falsificación del User-Agent.

Durante décadas, la web confió en una cadena de texto llamada User-Agent para saber quién visitaba un sitio. Sin embargo, esta cadena es fácil de manipular. Si te preguntas cómo sitios avanzados (como bancos o sistemas antifraude) saben que estás usando Chrome aunque tu navegador diga que es un iPhone, la respuesta está en el análisis de comportamiento y características intrínsecas del navegador.

El Problema del User-Agent: Una «Mentira» Común

El UserAgent es el nombre que identifica cada navegador y que se envía en la cabecera HTTP cuando realiza una petición a un sitio web. El problema de seguridad radica en que este valor es declarado por el cliente, y por tanto, puede ser cambiado fácilmente.

Herramientas manuales o plugins clásicos como el User Agent Switcher permiten a un usuario hacerse pasar por otro navegador, un bot de Google o un dispositivo móvil con un solo clic.

Por ejemplo, si encontramos un sitio web diseñado solo para iPhone, bastaría con cambiar el identificador en nuestro navegador de escritorio por:

«Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1»

Con esto, podríamos entrar al sitio «solo para iPhone» sin tener uno. Por esta razón, la industria de la seguridad ha desarrollado métodos que ignoran esta etiqueta.

La Evolución: Del «Web Browsing Fingerprinting» a la Huella Digital Moderna

Hace años, expertos como Chema Alonso popularizaron el concepto de Web Browsing Fingerprinting. Esta técnica pionera se basaba en la respuesta brindada por el navegador ante una petición específica de JavaScript o CSS. Como cada motor de renderizado (Gecko, WebKit, Trident) interpretaba el código de forma ligeramente distinta, se podía identificar el navegador real.

Hoy en día, esta técnica ha evolucionado hacia métodos mucho más sofisticados y difíciles de evadir. A continuación, analizamos los estándares actuales.

1. Canvas y WebGL Fingerprinting

Esta es una de las técnicas más potentes en la actualidad. El servidor pide al navegador que «dibuje» una imagen invisible o un texto 3D en un elemento <canvas> oculto.

  • Debido a diferencias en la tarjeta gráfica, los drivers instalados y el sistema operativo, cada dispositivo renderiza la imagen con diferencias microscópicas en los píxeles.
  • Al convertir esa imagen a un hash, se obtiene una «huella» única que identifica al dispositivo y navegador real, independientemente de lo que diga el User-Agent.

2. Client Hints (La Alternativa Oficial)

Google y otros gigantes han impulsado los Client Hints (Pistas de Cliente) como el reemplazo seguro del User-Agent. En lugar de enviar una cadena larga y falsificable, el navegador envía cabeceras específicas solo si el servidor las pide:

Sec-CH-UA: "Google Chrome"; v="120", "Not=A?Brand"; v="99"
Sec-CH-UA-Platform: "Windows"
Sec-CH-UA-Mobile: ?0

Esto hace que la detección sea más estructurada y difícil de falsificar accidentalmente, ya que requiere modificar múltiples cabeceras complejas.

3. TLS Fingerprinting (JA3)

Esta es una «Gema» de seguridad avanzada. Antes de que el navegador cargue la página web, debe establecer una conexión segura (HTTPS). Durante el saludo inicial (SSL Handshake), el navegador envía una lista de algoritmos de cifrado que soporta.

  • Chrome, Firefox y Safari soportan cifrados diferentes y los envían en orden distinto.
  • Analizando este «orden de cifrado» (JA3 hash), un servidor puede saber que el cliente es realmente un script de Python o un navegador Chrome, incluso si el User-Agent dice lo contrario.

Herramientas para Probar tu Huella Digital

Si quieres ver qué tanta información revela tu navegador más allá del User-Agent, existen proyectos de código abierto excelentes:

Herramienta Descripción
FingerprintJS La librería estándar de código abierto para detección de navegador. Utiliza cientos de señales (fuentes instaladas, resolución, audio, canvas) para crear un ID único.
AmIUnique Un proyecto de investigación que te muestra cuán «única» es tu configuración de navegador en comparación con millones de usuarios.
Cover Your Tracks (EFF) Herramienta de la Electronic Frontier Foundation para ver cómo los rastreadores te ven.

Conclusión

La detección del navegador ha pasado de ser un truco de «adivinar errores de CSS» a una ciencia forense digital. Si bien el User-Agent sigue existiendo por compatibilidad, confiar en él para la seguridad es un error.

Tecnologías como Canvas Fingerprinting y JA3 permiten una identificación precisa que ayuda a combatir el fraude y mejorar la experiencia de usuario, haciendo que la mentira del User-Agent sea irrelevante.

Más Información Histórica y Técnica: