Volver al blog

¿Qué es la huella digital TLS? Explicación de JA3 y JA4.

Sophia Martinez
Sophia Martinez

Specialist in Anti-Bot Strategies

14-Jul-2026

Resumen:

  • La huella digital TLS identifica el software del cliente a partir del apretón de manos TLS, antes de que se envíe un solo byte de HTTP. Un servidor lee el ClientHello: las versiones de TLS, los conjuntos de cifrado y las extensiones que ofrece tu cliente, y deriva un hash que dice "esto es Chrome" o "esto es un script de Python."
  • JA3 fue el método original; JA4 es su reemplazo moderno. JA3 (de Salesforce) hashó los campos ClientHello en bruto en orden, por lo que cuando Chrome comenzó a randomizar el orden de sus extensiones TLS, los hashes JA3 se volvieron inestables. JA4 clasifica primero los cifrados y las extensiones, por lo que la huella digital permanece estable.
  • JA4 es legible para humanos, no un solo hash opaco. Su formato a_b_c codifica la versión de TLS, la presencia de SNI, los conteos de cifrados y extensiones, y ALPN de antemano, luego hashá las listas de cifrados y extensiones ordenadas — así que puedes hacer coincidir partes de ella, no solo el todo.
  • Un cliente HTTP personalizado tiene una huella digital no de navegador. requests, curl o una biblioteca parcheada envían un conjunto de cifrados/extensiones que ningún Chrome real enviaría, por lo que su JA4 se destaca incluso detrás de una IP limpia.
  • Un navegador real es la respuesta confiable. El Navegador de Raspado Sin Rastro es Chromium genuino, así que su ClientHello — y por lo tanto su JA3/JA4 — es el de un Chrome real, indistinguible del de un visitante ordinario.
  • Gratis para comenzar. Las nuevas cuentas de Scrapeless incluyen un tiempo de ejecución gratuito del Navegador de Raspado — regístrate en app.scrapeless.com.

Introducción: el apretón de manos te delata antes que HTTP

La huella digital TLS identifica el software detrás de una conexión a partir de la forma en que abre una sesión TLS, no de nada que envíe después. Cada conexión HTTPS comienza con un mensaje ClientHello en el que el cliente anuncia las versiones de TLS que soporta, los conjuntos de cifrado que prefiere y una lista de extensiones. Esas elecciones difieren entre un Chrome real, un programa en Go y un script en Python, y un servidor puede hasharlas en un identificador compacto que sobrevive incluso cuando la IP, el agente de usuario y las cookies parecen perfectamente normales.

Por eso un scraper puede rotar proxies residenciales, suplantar un agente de usuario de Chrome, y aún así ser bloqueado: el apretón de manos TLS 1.3 que envía nunca se pareció a Chrome en primer lugar. Esta guía explica qué es una huella digital TLS, cómo JA3 y JA4 calculan una, y por qué ejecutar un navegador real es la forma duradera de presentar una huella que pertenezca.


De qué está hecha una huella digital TLS

Una huella digital TLS es un hash de los campos en el ClientHello, el primer mensaje que un cliente envía cuando abre una conexión TLS. Las entradas son propiedades estables de la biblioteca y configuración TLS del cliente:

  • La versión de TLS ofrecida (por ejemplo, TLS 1.2 o 1.3).
  • Los conjuntos de cifrado que el cliente soporta, en el orden en que los lista.
  • Las extensiones que el cliente incluye (SNI, ALPN, grupos soportados, algoritmos de firma, y más).
  • Las curvas elípticas y formatos de punto que anuncia.

El stack TLS de un navegador produce una combinación específica y consistente de estos valores; una biblioteca de scripts produce una diferente. Dado que la huella digital se deriva de la capa de transporte, es independiente de los encabezados y cookies; cambiar tu agente de usuario no le hace nada.

JA3: la huella digital TLS original, y por qué se rompió

JA3 fue la primera huella digital TLS ampliamente adoptada, publicada por ingenieros de Salesforce en 2017. Concatena cinco campos de ClientHello — versión TLS, conjuntos de cifrado, extensiones, curvas elípticas, y formatos de punto de curva elíptica — en el orden en que aparecen, luego toma el MD5 de esa cadena, ignorando los valores GREASE reservados por la especificación TLS.

La dependencia del orden se convirtió en la debilidad de JA3. En 2023, Chrome comenzó a randomizar el orden de sus extensiones TLS en cada conexión, por lo que una sola instalación de Chrome producía un hash JA3 diferente de una solicitud a la siguiente. Una huella digital que cambia en cada conexión es inútil para identificar a un cliente, por lo que los proveedores de detección necesitaban un método que no dependiera del orden.

JA4: el reemplazo moderno y estable en orden

JA4 es la huella digital del cliente TLS en JA4+, un conjunto de métodos de huella digital de red creado por John Althouse en FoxIO. Su movimiento definitorio es clasificar los cifrados y extensiones antes de hasharlos, lo que hace que la huella digital sea estable incluso contra la randomización del orden de extensiones de Chrome. También es legible para humanos: la huella digital se organiza en tres secciones en un formato a_b_c, por lo que los analistas pueden hacer coincidir cualquier sección en lugar de un único hash opaco.

Toma el ejemplo de huella digital JA4=t13d1516h2_8daaf6152771_02713d6af862:

  • La sección at13d1516h2 es metadata legible. t es el transporte (t para TLS sobre TCP, q para QUIC, d para DTLS); 13 es la versión de TLS (1.3); d significa que hay un dominio SNI presente (i significaría que no hay SNI o una IP); 15 es el número de cipher-suites y 16 el número de extensiones, ambos sin incluir GREASE; y h2 es el primer y último carácter del primer valor ALPN.
  • La sección b8daaf6152771 es un SHA-256 truncado de 12 caracteres de las cipher suites, convertido a hex y ordenado.
  • La sección c es un SHA-256 truncado de 12 caracteres de las extensiones ordenadas por valor hex, seguido de los algoritmos de firma. Las extensiones SNI y ALPN se eliminan de este cálculo, por lo que el mismo cliente mantiene la misma sección c ya sea que se conecte a un dominio o a una IP.

Ordenar es lo que derrota la aleatorización que rompió JA3: reorganiza las extensiones de Chrome todo lo que quieras, y la lista ordenada — y por lo tanto el JA4 — es idéntica.

La suite JA4+ es más que TLS

JA4 identifica el cliente TLS, pero es un miembro de una familia más grande. La suite de identificación JA4+ abarca varias capas de una conexión, incluyendo:

Huella digital Nombre corto Lo que identifica
JA4 JA4 Cliente TLS
JA4Server JA4S Respuesta del servidor TLS
JA4HTTP JA4H Cliente HTTP
JA4X509 JA4X Certificado TLS X.509
JA4SSH JA4SSH Tráfico SSH
JA4TCP JA4T Cliente TCP
JA4Latency JA4L Latencia del cliente al servidor

El método de cliente TLS JA4 se publica bajo una licencia BSD de 3 cláusulas; el resto de los métodos JA4+ están bajo la Licencia FoxIO 1.1 y están en espera de patente. Para un scraper, JA4 (TLS) y JA4H (HTTP) son los dos que más a menudo deciden si una solicitud se trata como un navegador o un bot.

Por qué la identificación TLS bloquea scrapers

La identificación TLS bloquea un scraper porque la solicitud nunca presentó la huella digital de un navegador para empezar. Un cliente HTTP como requests, httpx, curl, o una biblioteca modificada de manera oculta negocia TLS con el conjunto de cipher y extensiones de su propia biblioteca — uno que ningún Chrome o Firefox real produce. El JA4 resultante recae en un valor no correspondiente a un navegador conocido, y el servidor puede rechazar o desafiar la conexión sin importar cuán convincentes sean los encabezados.

Esta es la capa que la suplantación de user-agent y la rotación de proxies no pueden alcanzar. Puedes enviar Mozilla/5.0 (… Chrome/126 …) desde una IP residencial y aún así ser marcado, porque el apretón de manos TLS subyacente fue generado por OpenSSL o el crypto/tls de Go, no por Chrome. Igualar el JA4 de un navegador a mano significa reproducir su orden de cipher exacto, conjunto de extensiones y ALPN — y luego mantenerse al día a medida que el navegador los cambia.

Cómo presentar una huella digital TLS auténtica

La forma confiable de presentar el JA4 de un navegador es ser realmente un navegador. El Navegador para Scraping Sin Rastro es un Chromium real, desarrollado de manera interna, por lo que negocia TLS con el propio stack de Chrome. Su ClientHello — y por lo tanto su JA3 y JA4 — es el de un Chrome genuino, que es exactamente lo que un servidor de identificación espera de un visitante ordinario. Para scrapers específicamente, proporciona:

  • Un stack TLS de Chromium real — los conjuntos de cipher, extensiones y ALPN provienen de Chrome, por lo que el JA4 coincide con un navegador real en lugar de una biblioteca de scripting.
  • Una huella digital consistente por sesión a través de las capas de TLS y navegador, sin un indicio de navigator.webdriver que la contradiga.
  • Salida residencial en 195 países, por lo que la reputación de la IP coincide con la huella digital del navegador en lugar de exponer una dirección de centro de datos.

Obtén tu clave API en el plan gratuito en app.scrapeless.com.

Obtén tu clave API en el plan gratuito: app.scrapeless.com

Conclusión: la huella digital tiene que pertenecer, no solo parecer correcta

La identificación por huella digital TLS lee al cliente de su apretón de manos, así que la única respuesta duradera es un apretón de manos que realmente pertenezca a un navegador. JA3 hashó el ClientHello en bruto y se rompió cuando Chrome aleatorizó el orden de sus extensiones; JA4 ordena los cifrados y las extensiones y se mantiene estable, razón por la cual ahora es la huella digital que encuentran los scrapers. Un cliente HTTP parcheado puede falsificar encabezados y rotar IPs y aún así fallar en la capa TLS. Ejecutar Chromium real — con una pila TLS de Chrome, una huella digital consistente y salida residencial — presenta un JA4 que coincide con un visitante ordinario. Este fragmento permanece en el mecanismo: para el flujo de trabajo operativo de enrutar una pila de scraping a través de ese navegador, consulte la guía para limpiar las verificaciones de huella digital TLS; para una capa relacionada de anti-detección, consulte la guía del scraper de producción de Scrapling, y compare planes en la página de precios de Scrapeless.


Únete a nuestra comunidad para reclamar un plan gratuito y conectarte con desarrolladores que trabajan en torno a la detección basada en huellas digitales: Discord · Telegram.

Regístrate en app.scrapeless.com para obtener un tiempo de ejecución gratuito del navegador de scraping y deja que Chromium real presente la huella digital TLS que esperan tus objetivos.


FAQ

P: ¿Cuál es la diferencia entre JA3 y JA4?
JA3 es un hash MD5 de los campos ClientHello en su orden original; JA4 ordena las suites de cifrado y extensiones antes de hasharlas y añade un prefijo de metadatos legible. El ordenamiento hace que JA4 sea estable contra la aleatorización del orden de extensiones TLS que hizo que los hashes JA3 cambiaran de conexión a conexión.

P: ¿Puedo cambiar mi huella digital TLS cambiando mi agente de usuario?
No. El agente de usuario es un encabezado HTTP enviado después del apretón de manos TLS; la huella digital TLS se deriva del apretón de manos en sí. Son capas independientes, por lo que un agente de usuario falsificado no hace nada a tu JA3 o JA4.

P: ¿Por qué mi scraper es bloqueado incluso con proxies residenciales?
Una IP residencial fija la capa de red, pero si tu cliente HTTP negocia TLS con un conjunto de cifrados y extensiones no de navegador, su JA4 aún lo identifica como un script. La huella digital y la IP deben coincidir.

P: ¿El navegador de scraping de Scrapeless cambia mi JA4 a un Chrome falso?
No finge nada: es Chromium real, por lo que negocia TLS con la pila real de Chrome. La JA3/JA4 que presenta es genuina de Chrome porque el apretón de manos realmente provino de Chrome.

P: ¿La identificación por huella digital TLS es lo mismo que la huella digital del navegador?
No. La identificación por huella digital TLS lee el apretón de manos de transporte (cifrados, extensiones, ALPN); la identificación por huella digital del navegador lee propiedades dentro de la página (canvas, fuentes, valores de navigator). Una sesión convincente necesita ambas para parecer un navegador real.

En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.

Artículos más populares

Catalogar