
8/12/2024 · Alex Bocharov, Adam Martinetti
What this post added
This post introduces JA4, a successor to JA3, for more robust TLS client fingerprinting. It details the JA4 fingerprint structure, its advantages over JA3 (resistance to extension randomization, inclusion of ALPN), and the development of a new Rust-based parser, `client-hello-parser`, to efficiently parse TLS ClientHello messages and generate JA4 hashes. The parser emphasizes optimized memory usage (amortized zero heap allocations), memory safety, ultra-low latency through SIMD and iterators, and a robust testing suite including fuzzing and compatibility checks with legacy C parsers and Wireshark plugins. This enables better integration of JA4 fingerprints across Cloudflare's firewall rules, Workers, and analytics systems.