Una huella JA3 es un hash corto de los campos que un cliente envía en su apretón de manos TLS, como suites de cifrado, extensiones y su orden, que identifica el software que realiza la conexión independientemente de su IP address o encabezados. Los sistemas anti-bot utilizan JA3, y su sucesor JA4, para marcar el tráfico cuya huella TLS no coincide con lo que su User-Agent afirma, como una solicitud que dice ser Chrome pero que lleva el hash JA3 de una biblioteca HTTP de Python.

JA3 fue desarrollado por investigadores de Salesforce en 2017. Combina cinco campos del mensaje TLS ClientHello (la versión TLS, suites de cifrado aceptadas, lista de extensiones, curvas elípticas soportadas y formatos de puntos de curvas elípticas) y hash el resultado con MD5 en una huella de 32 caracteres. Un método complementario, JA3S, hace lo mismo para la respuesta del servidor.

La debilidad de JA3 es que un cambio en cualquier campo que hash, incluido el orden de las extensiones, produce un hash completamente diferente. Cuando Chrome comenzó a mezclar el orden de sus extensiones TLS a principios de 2023, el mismo navegador comenzó a producir diferentes valores JA3 de una conexión a otra. JA4, publicado por FoxIO en septiembre de 2023, ordena las extensiones antes de hacer el hash, lo que lo hace resistente a esa aleatorización, y proveedores como Cloudflare ahora utilizan huellas JA4 en su detección de bots.

Términos Relacionados