Expliqué
Lorsque votre client ouvre une connexion TLS, les tout premiers octets constituent un paquet ClientHello décrivant les suites de chiffrement, les versions TLS, les extensions, les courbes elliptiques et les valeurs ALPN que votre client prend en charge. La liste exacte et l'ordre de ces attributs sont spécifiques à l'implémentation — le ClientHello de Chrome est différent de celui de Firefox, qui est différent de celui de curl, qui est différent de celui de la bibliothèque `requests` de Python, etc.
JA3 (et son successeur JA4) est un format de hachage qui transforme la structure du ClientHello en un identifiant court. Les fournisseurs anti-bot calculent ce hachage pour chaque connexion TLS entrante et le comparent aux signatures connues. Si votre scraper utilise `requests` Python, votre empreinte TLS correspond à la valeur par défaut d'OpenSSL et est instantanément identifiable comme 'pas un vrai navigateur' — même avant l'envoi d'un seul octet HTTP.
C'est pourquoi tant de scrapers échouent sur Cloudflare, Akamai et des infrastructures similaires même lorsque l'IP et le User-Agent semblent corrects. La couche TLS révèle que la requête ne provient pas de Chrome. Les bibliothèques furtives modernes (comme `curl_cffi`, `tls-client`, Playwright avec les bons paramètres de lancement) imitent les empreintes TLS de vrais navigateurs pour éviter cela.
Comment ça fonctionne
JA3 construit l'empreinte à partir de cinq champs du ClientHello : la version TLS, les suites de chiffrement prises en charge, les extensions prises en charge, les courbes elliptiques prises en charge et les formats de points de courbe elliptique pris en charge. Il les assemble, hache le résultat en MD5 et produit une signature de 32 caractères.
JA4 (le remplacement moderne) étend cela avec ALPN, la version, la présence de SNI, la gestion de GREASE, et ordonne les extensions de manière stable et résistante à la randomisation. JA4 dispose également de variantes pour QUIC (JA4Q), HTTP (JA4H) et la session SSL (JA4S). Les serveurs calculent l'empreinte et la comparent à des listes d'autorisation/refus ou l'intègrent dans un modèle de notation du risque avec d'autres signaux.