# Fingerprint TLS passivo JA3 / JA3N

> Cole uma string JA3 e ela recomputa o hash JA3, computa o JA3N estável a permutação, decodifica os campos, e sinaliza valores GREASE.

- Tool: https://ronutz.com/pt-BR/tools/ja3-tls-fingerprint
- Family: Segurança e WAF

---

## O que faz

Esta ferramenta computa um fingerprint TLS passivo JA3. Cole uma string JA3 - os cinco campos do ClientHello (versão TLS, cipher suites, extensões, curvas elípticas, e point formats de curva elíptica), vírgulas entre campos e traços entre valores - e ela recomputa o hash MD5 do JA3, computa a variante JA3N com as extensões ordenadas, decodifica cada campo com uma contagem, e sinaliza quaisquer valores GREASE. Roda inteiramente no seu navegador.

## JA3, e por que o hash é o que é

O JA3 foi criado pela Salesforce como um identificador compacto e compartilhável para um cliente TLS. Os cinco campos que ele usa são preenchidos na maior parte pela biblioteca TLS do cliente e não pela aplicação, então o mesmo build de navegador ou ferramenta tende a produzir o mesmo JA3 - o que o torna útil para identificar scripts, bots, e bibliotecas incomuns antes de uma aplicação ter qualquer outro contexto. A ferramenta segue a construção original exatamente: ela remove os valores GREASE (os placeholders reservados de 0x0a0a a 0xfafa que a RFC 8701 faz os navegadores inserirem), reconstrói a string canônica, e faz o hash MD5. Dois dos próprios exemplos publicados da Salesforce estão fixados como testes, então o hash que você obtém aqui é o JA3 que o ecossistema espera.

## GREASE e o problema do churn

Duas coisas tornam um JA3 bruto menos estável do que parece, e a ferramenta expõe ambas. Valores GREASE são placeholders aleatórios que mudam a cada conexão; se não são removidos, o mesmo cliente produz um hash diferente a cada vez, então o JA3 os exclui - e a ferramenta te diz quais ela encontrou e removeu. O problema maior é a permutação de extensões: desde por volta de 2024, o Chrome e o Firefox randomizam a ordem das extensões TLS a cada conexão, e como o JA3 faz o hash das extensões em ordem, um único navegador agora produz milhares de hashes JA3 diferentes. A ferramenta marca se suas extensões estavam em ordem e mostra o JA3N ao lado do JA3.

## JA3N e JA4

O JA3N é a correção simples: ordene a lista de extensões antes do hash, e a permutação não importa mais. A ferramenta o computa para você, então se sua entrada veio de um navegador que permuta, o JA3N é o valor que permanece constante. O JA3N é um paliativo, no entanto. O sucessor moderno é o JA4, que ordena nativamente, usa SHA256, adiciona um prefixo legível por humanos, e se estende para HTTP, SSH, QUIC, e TCP. Se você está escolhendo um fingerprint para construir detecção hoje, o JA4 é o alvo melhor; o JA3 aqui é para ler e casar os fingerprints que ferramentas mais antigas e inteligência de ameaças ainda falam.

## O que um fingerprint é e não é

Um JA3 identifica uma implementação TLS, não uma pessoa e não uma intenção. É um sinal forte quando combinado com comportamento de requisição, inteligência de proxy, e histórico de conta, e um fraco por si só: colisões de MD5 são possíveis, e dois clientes diferentes podem compartilhar um hash. Trate-o como uma entrada para uma decisão - uma forma de notar que uma conexão parece um bot conhecido ou uma biblioteca inesperada - em vez de prova de qualquer coisa por si só.

## Standards and references

- [Salesforce Engineering: Open Sourcing JA3 (field order, delimiters, empty fields, MD5; published string->hash examples)](https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967/) - the authoritative JA3 construction: SSLVersion,Ciphers,Extensions,EllipticCurves,EllipticCurvePointFormats, commas between fields and dashes within, empty fields left empty, MD5 to 32 hex; the two example hashes pinned as golden vectors
- [RFC 8701: Applying GREASE to TLS Extensibility (the reserved 0x?a?a values excluded from JA3)](https://www.rfc-editor.org/rfc/rfc8701) - the GREASE values (0x0a0a ... 0xfafa) that modern browsers insert and that JA3 strips before hashing for stability
- [TLS extension permutation and JA3N (Chrome/Firefox randomize extension order; JA3N sorts extensions for a stable hash; JA4 is the successor)](https://www.systemshardening.com/articles/network/tls-fingerprinting-ja3-ja4/) - why JA3 churns (extension-order randomization) and how JA3N (sorted extensions) restores stability; context for preferring JA4

## Related reading

- [Fingerprinting TLS Passivo: JA3, GREASE, e o Churn que Levou ao JA4](https://ronutz.com/pt-BR/learn/passive-tls-fingerprinting-ja3.md): Um ClientHello anuncia o cliente às claras, e a combinação de versões, ciphers, e extensões é característica do software que o enviou. Isto cobre como o JA3 transforma isso em um hash, por que o GREASE precisa ser removido, como a randomização da ordem das extensões quebrou o JA3 (o churn), como o JA3N e o JA4 restauram a estabilidade, e onde um fingerprint TLS se encaixa como sinal para secure web gateways e autenticação adaptativa.
- [Tor: como o roteamento em cebola realmente funciona, e o que ele não protege](https://ronutz.com/pt-BR/learn/tor-and-onion-routing.md): O roteamento em cebola foi inventado num laboratório da Marinha dos EUA, e esse paradoxo é a chave para entendê-lo: anonimato só funciona se a multidão for diversa. Como um circuito de três saltos é construído, o que são de fato os serviços onion, o modelo de ameaças que o Tor admite abertamente perder, e por que a maior parte do tráfego Tor nunca toca a dark web.
