Outil gratuit

Décodeur JA4 fingerprint

Collez un JA4 ou un JA4_r et lisez ce que le client a proposé dans sa poignée de main TLS.

Une poignée de main, trois parties

t13d1516h2_8daaf6152771_e5627efa2ab1

  • tTCP
  • 13TLS 1.3
  • dNom de serveur
  • 15Suites de chiffrement
  • 16Extensions
  • h2HTTP/2
  • Hash des suites
  • Hash des extensions

Décoder une empreinte

Essayer

Tout se passe dans votre navigateur. Rien de ce que vous collez n'est envoyé.

Format

Trois parties, une poignée de main

  1. t13d1516h2

    Lisible : protocole, version, SNI, nombre de suites, nombre d'extensions, première valeur ALPN.

  2. 8daaf6152771

    Suites de chiffrement triées, puis SHA-256 tronqué à 12 caractères.

  3. e5627efa2ab1

    Extensions triées, sans SNI ni ALPN, puis les algorithmes de signature dans leur ordre, hashés de la même façon.

JA3 vs JA4

Pourquoi JA4 a remplacé JA3

CritèreJA3JA4
HashUn seul MD5 de tous les champsPréfixe lisible et deux hashes SHA-256 courts
Ordre des extensionsHashé tel qu'envoyé : l'ordre mélangé de Chrome donne un nouveau JA3 à chaque connexionTrié d'abord, l'ordre ne compte pas
Lisible sans base de donnéesNonProtocole, version, SNI, nombres, ALPN
QUICAucune marqueCommence par q
LicenceBSD 3-ClauseBSD 3-Clause (JA4 seul)

D'où il vient

Obtenir le JA4 d'une requête

Seul celui qui termine TLS voit le ClientHello. Un script dans la page, jamais.

  • Cloudflare

    Bot Management le fournit dans cf.bot_management.ja4 pour les règles et dans request.cf.botManagement.ja4 dans les Workers.

  • AWS WAF

    Les règles peuvent filtrer sur l'empreinte JA4, et les journaux du WAF l'enregistrent.

  • Votre propre proxy

    Tout ce qui termine TLS peut le calculer et le transmettre dans un en-tête comme X-JA4.

  • Wireshark

    Le plugin de FoxIO ajoute des colonnes JA4 aux captures de paquets.

Agentscan

Le JA4 à côté de chaque verdict

Envoyez le JA4 avec chaque vérification Agentscan. Il est stocké avec le verdict, l'adresse et le réseau, et le journal montre quel client TLS se trouvait derrière chaque requête.

  • Derrière Cloudflare Bot Management, notre Worker le lit et l'envoie pour vous.
  • Ailleurs, placez-le dans le champ ja4 ou dans un en-tête X-JA4.
  • Pas d'edge, pas de JA4 : le journal l'indique au lieu d'en inventer un.
Vérification Agentscan avec un JA4
curl -X POST https://ipscanner.io/v1/agentscan/check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ip": "203.0.113.7",
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36",
    "ja4": "t13d1516h2_8daaf6152771_e5627efa2ab1"
  }'

FAQ

Les empreintes JA4 en questions

Qu'est-ce qu'une empreinte JA4 ?

Une courte chaîne qui décrit un ClientHello TLS : le protocole et la version proposés par le client, s'il a envoyé un nom de serveur, combien de suites de chiffrement et d'extensions il a listées et sa première valeur ALPN, suivis de deux hashes de ces listes. FoxIO l'a publiée en 2023 pour succéder à JA3.

Que signifie t13d1516h2 ?

TLS sur TCP, version 1.3, un nom de domaine dans le SNI, 15 suites de chiffrement, 16 extensions et HTTP/2 comme première valeur ALPN. Chaque JA4 commence par une partie de ce type, la seule lisible sans base de données.

Quelle différence entre JA4 et JA3 ?

JA3 est un seul MD5 des champs de la poignée de main, dans l'ordre d'envoi. Chrome mélange l'ordre de ses extensions depuis 2023, ce qui donne au même navigateur un nouveau JA3 à chaque connexion. JA4 trie d'abord les listes, reste donc stable et garde un préfixe lisible.

Peut-on falsifier un JA4 ?

Oui. Des outils comme curl-impersonate et uTLS copient le ClientHello d'un navigateur : un JA4 de navigateur ne prouve donc pas à lui seul la présence d'un navigateur. Il sert surtout quand il contredit autre chose, par exemple un user agent Chrome arrivé avec une poignée de main Python.

Peut-on inverser les hashes d'un JA4 ?

Non. Les parties b et c sont des hashes SHA-256 tronqués à 12 caractères. Pour voir les suites de chiffrement et les extensions derrière, journalisez le JA4_r, qui garde les listes en clair.

Où obtenir le JA4 d'une requête ?

Auprès de ce qui termine TLS : votre CDN, votre load balancer ou votre reverse proxy. Le JavaScript de la page ne peut pas le lire, car la poignée de main est terminée avant qu'un script ne s'exécute.

JA4 est-il libre d'utilisation ?

JA4, l'empreinte du client TLS, est sous licence BSD 3-Clause. Les autres méthodes JA4+ (JA4S, JA4H, JA4X, JA4T et les suivantes) relèvent de la FoxIO License 1.1, qui pose des conditions à l'usage commercial : lisez-la avant de les intégrer à un produit.