JA3 vs JA4 comparison

Good Carder

Professional
Messages
261
Reaction score
239
Points
43
JA3 vs JA4 represents the evolution of TLS client fingerprinting techniques used in cybersecurity to identify clients (browsers, scripts, bots, malware, proxies, automated tools) during the initial TLS handshake (ClientHello message). Both methods analyze cryptographic negotiation parameters passively — without decrypting the encrypted traffic payload — to generate identifiers that help anti-bot systems, WAFs, fraud detection tools (e.g., IPQS), CDNs, and threat hunters distinguish legitimate traffic from suspicious or automated activity.

JA3 (released in 2017 by Salesforce) was groundbreaking but has become less reliable in modern environments. JA4 (released in September 2023 by FoxIO, with the broader JA4+ suite) was developed specifically to address JA3’s shortcomings and has seen widespread adoption by 2026 in platforms like Cloudflare, AWS WAF, Akamai, VirusTotal, and others.

Core Purpose and Context​

TLS fingerprinting occurs early in the connection, before JavaScript or application data is exchanged. It helps detect:
  • Bots, scrapers, and automation tools (e.g., Python requests, curl, headless browsers).
  • Proxy/VPN/tunnel usage (when combined with other signals like IP reputation or latency).
  • Malware C2 infrastructure or anomalous clients.
  • In the context of residential proxies (as discussed in your prior questions), fingerprint mismatches can flag even "clean" IPs if the underlying TLS stack or behavior doesn't match real browsers.

In 2026, systems combine JA4 (and JA4+) with behavioral analysis, IP fraud scores (e.g., IPQS thresholds), JA4+ extensions (latency, TCP stack), and inter-request signals for higher accuracy and fewer false positives.

Detailed Side-by-Side Comparison​

Here is a comprehensive comparison based on technical specifications, adoption trends, and real-world performance as of early 2026:
AspectJA3 (Salesforce, 2017)JA4 (FoxIO, 2023) and JA4+ Suite (2023–2026)
FormatSingle 32-character MD5 hash (opaque, e.g., de350869b8c85de67a350c8d186f11e6).Structured, human- and machine-readable string in a_b_c format (e.g., t13d1516h2_8daaf6152771_b186095e22b6). Uses truncated SHA256 (first 12 hex chars) for hashed parts.
Calculation MethodConcatenates fields in exact appearance order: TLS version, cipher suites, extensions, elliptic curves, point formats. Ignores GREASE.Part A (metadata): Protocol (t/q/d), TLS version (13/12), SNI type (d/i), cipher count, extension count, ALPN (e.g., h2/h3). Part B: Sorted cipher suites hash. Part C: Sorted extensions + signature algorithms hash. Strips GREASE and normalizes.
Sensitivity to OrderHighly sensitive. Randomization of extensions (common in Chrome/Firefox since ~2023–2024) or shuffling produces vastly different hashes for the same client.Order-insensitive: Ciphers and extensions are sorted before hashing. Much more stable.
Human Readability & GranularityLow — opaque hash. Requires external lookup tables to interpret. No built-in context.High — Part A is directly readable (e.g., t13d = TLS 1.3 over TCP with domain SNI). Allows partial analysis (e.g., only ciphers or ALPN). More contextual data.
Additional ContextLimited to basic TLS fields. No native ALPN, SNI type distinction, or counts.Richer: Includes ALPN preference, SNI (domain vs. IP), cipher/extension counts. Native support for QUIC/HTTP/3 (q prefix).
Resilience to Modern TLS FeaturesPoor against extension randomization (Chrome 110+ and later changes produced billions of possible hashes for one client) and GREASE variations.Strong: Systematic handling of randomization and GREASE. More stable for real browsers (one consistent fingerprint vs. billions).
ExtensibilityLimited — primarily TLS client (JA3S for server exists but less prominent).Highly extensible as JA4+ suite: JA4S (server/session), JA4H (HTTP), JA4L/JA4LS (latency/light distance), JA4T/JA4TS (TCP stack), JA4X (X.509 certificates), JA4SSH (SSH), JA4D (DHCP), and more in development.
Hash Algorithm & Collision RiskMD5 (higher theoretical collision risk; single hash).Truncated SHA256 for parts B/C (better resistance while compact).
Maintenance & Adoption (2026)No longer actively maintained by Salesforce. Still supported for legacy but considered brittle/obsolete in many contexts. Large but fragmented databases.Actively evolving. JA4 core under BSD 3-Clause (easy migration from JA3). Other JA4+ components under FoxIO License. Widely adopted by Cloudflare (Bot Management/WAF), AWS WAF, Akamai, VirusTotal, Zeek, ntop, and others.
Evasion DifficultyEasier: Shuffling, minor changes, or custom TLS stacks can fragment or spoof hashes.Harder: Requires deeper changes to the underlying TLS library/stack. Still evadable with advanced tools (uTLS, perfect emulation), but raises the bar significantly.
Use in Proxy/Anti-Bot DetectionUseful in legacy rules but less effective alone due to instability. Often combined with other signals.Preferred in modern systems. Correlates well with IP reputation, behavioral signals, and JA4+ components (e.g., mismatched JA4 + residential IP + latency anomalies flags proxies/bots).

Why JA3 Became Problematic​

Chrome (and later other browsers) introduced extension order randomization and other changes to improve TLS robustness and prevent ossification. This caused JA3 to generate an enormous number of unique hashes for the same legitimate client (e.g., one Chrome version could produce billions of variants). As a result, JA3 lost reliability for consistent client identification, increasing false positives/negatives in detection systems.

JA4 was explicitly designed to solve this by normalizing data (sorting) and adding context, making fingerprints stable while remaining interpretable.

JA4+ Suite: Beyond Basic JA4​

JA4 is the TLS client component, but the JA4+ suite (released progressively since 2023) extends fingerprinting modularly:
  • JA4S: TLS ServerHello / session fingerprinting.
  • JA4H: HTTP client fingerprinting (headers, cookies, etc.).
  • JA4L / JA4LS: Client-to-server or server-to-client latency ("light distance") — useful for detecting tunnels, VPNs, or proxies.
  • JA4T / JA4TS: TCP client/server stack fingerprinting (MSS, window size, options) — identifies OS, device, hosting, or tunneling artifacts.
  • JA4X: X.509 certificate fingerprinting (how certificates are generated).
  • JA4SSH: SSH traffic.
  • JA4D: DHCP (added later).
  • Others in development.

This modularity allows multi-layer correlation (e.g., JA4 + JA4L + JA4T + IPQS fraud score) for robust detection with lower false positives.

Practical Implications in 2026 (Especially for Residential Proxies)​

  • In Anti-Bot Systems: Cloudflare, Akamai, AWS WAF, and others prioritize JA4/JA4+ over JA3. They combine it with inter-request signals, behavioral biometrics, and IP reputation for better bot/proxy detection.
  • For Proxy Users Seeking Clean IPs: Residential proxies perform better when they produce consistent, real-browser-like JA4s (e.g., matching Chrome on the target OS). Mismatches (e.g., script-like JA4 from a "residential" IP) can trigger flags even with low IPQS scores. Sophisticated anti-detect tools aim to spoof JA4 and JA4+ components alongside headers and behavior.
  • Testing: Use online TLS fingerprint checkers, Wireshark/Zeek, or proxy testers that show JA3/JA4. Consistent, browser-like fingerprints + low fraud scores + natural behavior improve success rates on strict platforms.
  • Evasion Arms Race: JA4 raises the bar, but advanced emulation or agentic AI workflows continue to evolve. Quality proxy providers focus on stable TLS stacks and low-abuse pools.

Limitations of Both​

  • Fingerprint the TLS library/stack (and related layers in JA4+), not the full device/browser. Best when fused with canvas/WebGL/audio fingerprints, mouse/scroll patterns, and velocity checks.
  • Not 100% unique: Popular browsers share similar fingerprints; differentiation relies on combinations and context.
  • Advanced evasion (custom TLS libraries) is possible but often introduces detectable artifacts elsewhere.

Summary​

JA3 pioneered TLS fingerprinting but has aged poorly due to order sensitivity and lack of context, making it brittle in 2026.JA4 and JA4+ deliver a more stable, readable, extensible, and resilient alternative that better handles modern TLS behaviors while enabling richer threat hunting and detection.

In practice, forward-looking systems favor JA4/JA4+ (with JA3 for legacy support). For your residential proxy testing, prioritize setups that generate consistent, real-browser JA4s and test holistically against tools like IPQS, Scamalytics, and real anti-bot platforms.

If you'd like concrete examples of JA3/JA4 values for specific clients (Chrome, Firefox, curl, Python requests), code snippets for generating/analyzing them, deeper details on specific JA4+ components, or integration with proxy detection/IP fraud scoring, provide more details and I can expand further! The FoxIO GitHub repository remains the authoritative source for specs and implementations.
 
Top