Analyse de trafic chiffré — JA3 Fingerprinting
Comprendre l’empreinte JA3 (TLS ClientHello) pour la détection : cas d’usage, collecte, limites (GREASE/TLS 1.3) et bonnes pratiques.
Pourquoi “analyser du chiffré” reste possible
Même quand le contenu applicatif est chiffré (TLS), la métadonnée (handshake, SNI, certificats, JA3, timings) fournit des signaux utiles pour la détection.
Qu’est-ce que JA3 ?
JA3 est une empreinte (“fingerprint”) dérivée du TLS ClientHello.
Elle se base notamment sur :
- Version TLS annoncée
- Liste des ciphersuites
- Extensions TLS
- Courbes elliptiques
- Formats de points
L’ensemble est concaténé puis haché (souvent MD5 dans l’implémentation historique) pour donner une signature stable dans certaines conditions.
Objectif : identifier des familles de clients TLS (navigateurs, libs, malwares) même sans déchiffrer.
Cas d’usage défensifs
- Détecter des clients TLS atypiques sur un segment (ex : serveur qui se comporte comme un bot).
- Regrouper des flux par “famille” de clients et investiguer les outliers.
- Repérer un outil interne qui fuit sur Internet (empreinte constante + destinations).
- Enrichir des alertes SIEM : “JA3 rare + domaine nouveau + poste sensible”.
Où collecter JA3 (approche)
- Capteurs réseau (IDS/NSM) sur points de passage : egress, inter-DC.
- Proxies TLS/HTTP (si présents) — sans déchiffrement obligatoire.
- Logs d’outils de visibilité réseau qui exposent JA3/JA3S.
Dans tous les cas : valider la conformité (privacy, RGPD, politique interne), surtout si vous collectez des métadonnées utilisateur.
Limitations et pièges
TLS 1.3, GREASE, et variabilité
- Certaines stacks introduisent de la variabilité (GREASE) pour éviter le fingerprinting.
- Les proxies, middleboxes et terminators peuvent modifier le handshake.
- Les navigateurs “modernes” évoluent rapidement (empreintes changent).
JA3 n’est pas une preuve
- Une empreinte peut être imitée.
- L’empreinte ne dit rien du contenu et peut être partagée par plusieurs applications.
Bonnes pratiques de détection
- Utiliser JA3 comme signal parmi d’autres (pas comme verdict).
- Surveiller la rareté (empreintes nouvelles / rares) plutôt que des listes figées.
- Corréler avec : hôte, utilisateur, destination, heure, volume, DNS, EDR.
Exemple de logique (pseudo)
ALERTE si
JA3 ∈ {rare/nouveau} ET
destination ∈ {domaine nouveau, IP non-réputée} ET
host ∈ {poste admin, serveur critique}