Saltar al contenido
Fundamentos·8 min de lectura

Fingerprinting TLS explicado

Cómo el fingerprinting TLS identifica bots por la forma de su handshake — JA3, JA4 y por qué atrapa scrapers que las verificaciones de user-agent no detectan.

¿Qué es el fingerprinting TLS?

El fingerprinting TLS identifica el software detrás de una conexión HTTPS inspeccionando el primer mensaje del handshake. Cuando un cliente abre una conexión TLS, envía un paquete Client Hello que revela la versión TLS, las cipher suites, las extensiones y su orden. Esa combinación es una firma a nivel de bytes de la biblioteca TLS subyacente.

El punto clave: el Client Hello es un detalle de implementación, no un header que el scraper elija. Puedes poner cualquier cosa en el User-Agent, pero no puedes cambiar fácilmente la lista de ciphers de tu biblioteca TLS. Un script de Python que dice ser Chrome queda expuesto en el handshake.

JA3 y JA4

Ingenieros de Salesforce publicaron JA3 en enero de 2019. Toma cinco campos del Client Hello y los hashea con MD5 en un fingerprint de 32 caracteres. Cada navegador y cada biblioteca HTTP produce una combinación distinta — la biblioteca requests de Python tiene un hash JA3, curl otro, Firefox el suyo propio.

A principios de 2023, Chrome empezó a aleatorizar el orden de las extensiones TLS. Un solo cliente Chrome con 16 extensiones puede generar aproximadamente 20,9 billones de hashes JA3 distintos, lo que dejó a JA3 inservible como identificador de navegadores.

FoxIO publicó JA4 en septiembre de 2023. La solución: ordenar alfabéticamente las ciphers y extensiones antes del hashing. JA4 forma parte de una suite más amplia (JA4S, JA4H, JA4X, JA4T, JA4SSH) y, desde principios de 2025, Cloudflare y Fastly lo integran en su gestión de bots.

Qué revelan los fingerprints sobre los bots

Cloudflare analiza más de 15 millones de fingerprints JA4 únicos al día a partir de más de 500 millones de user-agents (Cloudflare, 2024). Las bibliotecas HTTP estándar como requests de Python, net/http de Go o axios de Node producen handshakes TLS que ningún navegador real envía. Según el Bad Bot Report 2025 de Imperva, el tráfico automatizado representó el 51% de todo el tráfico web en 2024 por primera vez en una década, con un 37% de bots maliciosos.

Cómo responden los bots

Los scrapers replican handshakes reales con bibliotecas como curl-impersonate, uTLS (Go), CycleTLS (Node.js) y curl_cffi (Python). Un estudio de UC Davis publicado en 2025 probó veinte servicios comerciales de bots y midió tasas de evasión promedio del 52,93% contra DataDome y del 44,56% contra BotD (Venugopalan et al., IMC 2025).

Por qué los fingerprints no bastan

Los propios ingenieros de Cloudflare lo dicen claro: "los fingerprints se pueden falsificar fácilmente." Un hash JA4 te dice qué software hizo la conexión, no qué está haciendo ese software. La detección moderna es por capas: fingerprint TLS, reputación de IP, patrones de petición, consistencia de headers y coincidencia con base de datos de crawlers.

Qué significa para la defensa contra crawlers de IA

Los crawlers de IA usan las mismas herramientas que cualquier otro scraper. Aproximadamente un tercio de las scrapes de IA ignoran robots.txt por completo — no puedes confiar en lo que un crawler dice sobre sí mismo. Centinel coteja cada petición contra 1.600+ fingerprints de crawlers combinando señales TLS, patrones de headers y heurísticas de comportamiento en el edge. El fingerprinting TLS establece la base; una base de datos de crawlers y la aplicación de reglas de comportamiento cierran el resto.

Mira qué está rastreando tu sitio ahora mismo

Ejecuta una auditoría gratuita y obtén un informe detallado de qué crawlers IA acceden a tu contenido.

Obtén tu auditoría gratis
Fingerprinting TLS explicado | Centinel Analytica