O que é a impressão digital TLS? JA3 vs JA4 explicado
Specialist in Anti-Bot Strategies
TL;DR:
- A impressão digital TLS identifica o software do cliente a partir do handshake TLS, antes de um único byte de HTTP ser enviado. Um servidor lê o
ClientHello— as versões TLS, conjuntos de cifras e extensões que seu cliente oferece — e deriva um hash que diz "isto é Chrome" ou "isto é um script Python." - JA3 foi o método original; JA4 é seu substituto moderno. JA3 (da Salesforce) fez hash dos campos brutos do
ClientHellona ordem, então quando o Chrome começou a randomizar a ordem de suas extensões TLS, os hashes JA3 se tornaram instáveis. JA4 classifica as cifras e extensões primeiro, para que a impressão digital permaneça estável. - JA4 é legível por humanos, não um único hash opaco. Seu formato
a_b_ccodifica a versão TLS, presença de SNI, contagens de cifras e extensões, e ALPN na frente, depois faz hash das listas de cifras e extensões classificadas — para que você possa combinar partes dela, não apenas o todo. - Um cliente HTTP personalizado tem uma impressão digital não de navegador.
requests,curlou uma biblioteca modificada enviam um conjunto de cifras/extensões que nenhum Chrome real enviaria, então seu JA4 se destaca mesmo por trás de um IP limpo. - Um navegador real é a resposta confiável. O Scrapeless Scraping Browser é um verdadeiro Chromium, então seu
ClientHello— e, portanto, seu JA3/JA4 — é o de um Chrome real, indistinguível do de um visitante comum. - Gratuito para começar. Novas contas Scrapeless incluem tempo de execução gratuito do Scraping Browser — inscreva-se em app.scrapeless.com.
Introdução: o handshake revela sua identidade antes do HTTP
A impressão digital TLS identifica o software por trás de uma conexão pela forma como ele abre uma sessão TLS, não por nada que ele envie depois. Cada conexão HTTPS começa com uma mensagem ClientHello na qual o cliente anuncia as versões TLS que suporta, os conjuntos de cifras que prefere e uma lista de extensões. Essas escolhas diferem entre um Chrome real, um programa Go e um script Python, e um servidor pode transformá-las em um identificador compacto que sobrevive mesmo quando o IP, o agente do usuário e os cookies parecem perfeitamente normais.
É por isso que um scraper pode rotacionar proxies residenciais, falsificar um agente de usuário do Chrome e ainda assim ser bloqueado: o handshake TLS 1.3 que ele envia nunca pareceu com o Chrome em primeiro lugar. Este guia explica o que é uma impressão digital TLS, como JA3 e JA4 calculam uma e por que executar um navegador real é a maneira duradoura de apresentar uma impressão digital que pertence.
Do que é composta uma impressão digital TLS
Uma impressão digital TLS é um hash dos campos no ClientHello, a primeira mensagem que um cliente envia quando abre uma conexão TLS. As entradas são propriedades estáveis da biblioteca TLS e configuração do cliente:
- A versão TLS oferecida (por exemplo, TLS 1.2 ou 1.3).
- Os conjuntos de cifras que o cliente suporta, na ordem em que os lista.
- As extensões que o cliente inclui (SNI, ALPN, grupos suportados, algoritmos de assinatura, e mais).
- As curvas elípticas e formatos de ponto que ele anuncia.
A pilha TLS de um navegador produz uma combinação específica e consistente desses valores; uma biblioteca de script produz uma diferente. Como a impressão digital é derivada da camada de transporte, ela é independente de cabeçalhos e cookies — mudar seu agente de usuário não faz nada para ela.
JA3: a impressão digital TLS original e por que ela quebrou
JA3 foi a primeira impressão digital TLS amplamente adotada, publicada por engenheiros da Salesforce em 2017. Ela concatena cinco campos do ClientHello — versão TLS, conjuntos de cifras, extensões, curvas elípticas e formatos de ponto de curva elíptica — na ordem em que aparecem, depois toma o MD5 daquela string, ignorando valores GREASE reservados pela especificação TLS.
A dependência da ordem se tornou a fraqueza do JA3. Em 2023, o Chrome começou a randomizar a ordem de suas extensões TLS em cada conexão, então uma única instalação do Chrome produzia um hash JA3 diferente de uma solicitação para a outra. Uma impressão digital que muda a cada conexão é inútil para identificar um cliente, então fornecedores de detecção precisavam de um método que não dependesse da ordenação.
JA4: o substituto moderno e estável em ordem
JA4 é a impressão digital do cliente TLS em JA4+, um conjunto de métodos de impressão digital de rede criados por John Althouse na FoxIO. Seu movimento definidor é classificar as cifras e extensões antes de hash, o que torna a impressão digital estável mesmo contra a randomização da ordem de extensões do Chrome. Também é legível por humanos: a impressão digital é disposta em três seções em um formato a_b_c, então analistas podem combinar qualquer seção em vez de um único hash opaco.
Pegue a impressão digital de exemplo JA4=t13d1516h2_8daaf6152771_02713d6af862:
- A seção
a—t13d1516h2é metadados legíveis.té o transporte (tpara TLS sobre TCP,qpara QUIC,dpara DTLS);13é a versão do TLS (1.3);dsignifica que um domínio SNI está presente (isignificaria sem SNI ou um IP);15é a contagem de cipher-suites e16a contagem de extensões, ambas excluindo GREASE; eh2é o primeiro e último caractere do primeiro valor ALPN. - A seção
b—8daaf6152771é um SHA-256 truncado de 12 caracteres dos cipher suites, convertido para hex e ordenado. - A seção
cé um SHA-256 truncado de 12 caracteres das extensões ordenadas por valor hex, seguido pelos algoritmos de assinatura. As extensões SNI e ALPN são removidas desse cálculo, portanto, o mesmo cliente mantém a mesma seçãocquer se conecte a um domínio ou a um IP.
A ordenação é o que derrota a aleatorização que quebrou o JA3: reorganize as extensões do Chrome como quiser, e a lista ordenada — e, portanto, o JA4 — é idêntica.
O suite JA4+ é mais do que TLS
JA4 identifica a impressão digital do cliente TLS, mas é um membro de uma família maior. O conjunto de impressão digital JA4+ mais abrangente cobre várias camadas de uma conexão, incluindo:
| Impressão digital | Nome curto | O que identifica |
|---|---|---|
| JA4 | JA4 | Cliente TLS |
| JA4Server | JA4S | Resposta do servidor TLS |
| JA4HTTP | JA4H | Cliente HTTP |
| JA4X509 | JA4X | Certificado TLS X.509 |
| JA4SSH | JA4SSH | Tráfego SSH |
| JA4TCP | JA4T | Cliente TCP |
| JA4Latency | JA4L | Latência do cliente para o servidor |
O método JA4 cliente TLS é lançado sob uma licença BSD de 3 cláusulas; o restante dos métodos JA4+ está sob a Licença FoxIO 1.1 e está com patente pendente. Para um scraper, JA4 (TLS) e JA4H (HTTP) são os dois que mais frequentemente decidem se uma solicitação é tratada como um navegador ou um bot.
Por que a impressão digital do TLS bloqueia scrapers
A impressão digital do TLS bloqueia um scraper porque a solicitação nunca apresentou a impressão digital de um navegador para começar. Um cliente HTTP como requests, httpx, curl, ou uma biblioteca com patch furtivo negocia TLS com seu próprio conjunto de cipher e extensões — um que nenhum Chrome ou Firefox real produz. O JA4 resultante cai em um valor conhecido não-navegador, e o servidor pode recusar ou desafiar a conexão, independentemente da persuasão dos cabeçalhos.
Esta é a camada que a falsificação do user-agent e a rotação de proxies não conseguem alcançar. Você pode enviar Mozilla/5.0 (… Chrome/126 …) de um IP residencial e ainda ser sinalizado, porque o handshake TLS por baixo foi gerado pelo OpenSSL ou pela biblioteca crypto/tls do Go, não pelo Chrome. Correspondendo ao JA4 de um navegador manualmente significa reproduzir sua exata ordem de cipher, conjunto de extensões e ALPN — e depois acompanhar conforme o navegador os muda.
Como apresentar uma impressão digital TLS autêntica
A maneira confiável de apresentar o JA4 de um navegador é realmente ser um navegador. O Navegador de Scraping Sem Raspagem é um Chromium real, auto-desenvolvido, então ele negocia TLS com a própria pilha do Chrome. Seu ClientHello — e, portanto, seu JA3 e JA4 — é genuinamente de um Chrome, que é exatamente o que um servidor de impressão digital espera de um visitante comum. Para scraping especificamente, ele traz:
- Uma pilha TLS Chromium real — os cipher suites, extensões e ALPN vêm do Chrome, então o JA4 corresponde a um navegador real em vez de uma biblioteca de script.
- Uma impressão digital consistente por sessão nas camadas TLS e do navegador, sem nenhum
navigator.webdriverque contradiga isso. - Egress residencial em 195 países, então a reputação do IP corresponde à impressão digital do navegador em vez de expor um endereço de datacenter.
Obtenha sua chave de API no plano gratuito em app.scrapeless.com.
Obtenha sua chave de API no plano gratuito: app.scrapeless.com
Conclusão: a impressão digital tem que pertencer, não apenas parecer correta
A impressão digital TLS lê o cliente a partir de seu handshake, então a única resposta duradoura é um handshake que realmente pertence a um navegador. JA3 fez hash do ClientHello bruto e quebrou quando o Chrome randomizou sua ordem de extensão; JA4 classifica os cifrões e extensões e se mantém estável, que é a razão pela qual agora é a impressão digital com a qual os raspadores se deparam. Um cliente HTTP corrigido pode falsificar cabeçalhos e alternar IPs e ainda falhar na camada TLS. Executar o Chromium real — com uma pilha TLS do Chrome, uma impressão digital consistente e saída residencial — apresenta um JA4 que corresponde a um visitante comum. Esta parte se concentra no mecanismo: para o fluxo de trabalho operacional de roteamento de uma pilha de raspagens através desse navegador, veja o guia para limpar verificações de impressão digital TLS; para uma camada relacionada de anti-detetação, veja o guia do raspador Scrapling, e compare planos na página de preços da Scrapeless.
Pronto para Apresentar uma Impressão Digital TLS de Qualidade de Navegador?
Junte-se à nossa comunidade para reivindicar um plano gratuito e conectar-se com desenvolvedores que trabalham em detecções baseadas em impressão digital: Discord · Telegram.
Inscreva-se em app.scrapeless.com para um tempo de execução gratuito do Navegador de Raspagem e deixe o Chromium real apresentar a impressão digital TLS que seus alvos esperam.
FAQ
Q: Qual é a diferença entre JA3 e JA4?
JA3 é um hash MD5 dos campos ClientHello em sua ordem original; JA4 classifica as suítes de cifras e extensões antes de fazer o hash e adiciona um prefixo de metadados legível. A classificação torna o JA4 estável contra a randomização da ordem das extensões TLS que fez os hashes JA3 mudarem de conexão para conexão.
Q: Posso mudar minha impressão digital TLS mudando meu agente do usuário?
Não. O agente do usuário é um cabeçalho HTTP enviado após o handshake TLS; a impressão digital TLS é derivada do próprio handshake. Eles são camadas independentes, razão pela qual um agente do usuário falsificado não altera seu JA3 ou JA4.
Q: Por que meu raspador é bloqueado mesmo com proxies residenciais?
Um IP residencial corrige a camada de rede, mas se seu cliente HTTP negocia TLS com um conjunto de cifras e extensões que não é de navegador, seu JA4 ainda o identifica como um script. A impressão digital e o IP devem concordar.
Q: O Navegador de Raspagem Scrapeless muda meu JA4 para um Chrome falso?
Ele não finge nada — é o Chromium real, então negocia TLS com a pilha real do Chrome. O JA3/JA4 que ele apresenta é genuíno do Chrome porque o handshake realmente veio do Chrome.
Q: A impressão digital TLS é a mesma que a impressão digital do navegador?
Não. A impressão digital TLS lê o handshake de transporte (cifras, extensões, ALPN); a impressão digital do navegador lê propriedades dentro da página (canvas, fontes, valores de navigator). Uma sessão convincente precisa de ambos para parecer um navegador real.
Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.



