Un empreinte JA3 est un court hachage des champs qu'un client envoie dans sa poignée de main TLS, tels que les suites de chiffrement, les extensions et leur ordre, qui identifie le logiciel établissant la connexion, indépendamment de son adresse IP ou des en-têtes. Les systèmes anti-bot utilisent JA3, et son successeur JA4, pour signaler le trafic dont l'empreinte TLS ne correspond pas à ce que son User-Agent prétend, comme une requête prétendant être Chrome mais portant le hachage JA3 d'une bibliothèque HTTP Python.

JA3 a été développé par des chercheurs de Salesforce en 2017. Il combine cinq champs du message TLS ClientHello (la version TLS, les suites de chiffrement acceptées, la liste des extensions, les courbes elliptiques prises en charge et les formats de points de courbes elliptiques) et hache le résultat avec MD5 en une empreinte de 32 caractères. Une méthode complémentaire, JA3S, fait de même pour la réponse du serveur.

La faiblesse de JA3 est qu'un changement dans n'importe quel champ qu'il hache, y compris l'ordre des extensions, produit un hachage complètement différent. Lorsque Chrome a commencé à mélanger l'ordre de ses extensions TLS début 2023, le même navigateur a commencé à produire des valeurs JA3 différentes d'une connexion à l'autre. JA4, publié par FoxIO en septembre 2023, trie les extensions avant de les hacher, ce qui le rend résistant à cette randomisation, et des fournisseurs tels que Cloudflare utilisent désormais des empreintes JA4 dans leur détection de bots.

Termes Associés