JA3 Fingerprint
What is JA3 Fingerprint?
JA3 FingerprintA TLS client fingerprinting method by John Althouse, Jeff Atkinson, and Josh Atkins (Salesforce, 2017) that hashes the ordered TLS ClientHello parameters into a 32-character MD5 — used to identify and group TLS clients without inspecting payload.
JA3 is a TLS client fingerprinting technique published by John Althouse, Jeff Atkinson, and Josh Atkins of Salesforce in 2017. It hashes a deterministic, ordered string of the TLS ClientHello's negotiation parameters — TLS version, accepted ciphers, extensions, elliptic curves, and elliptic-curve point formats — into a 32-character MD5 string. Because most clients (browsers, libraries, malware C2 implants) produce a stable, library-specific ClientHello, JA3 hashes group traffic by client implementation regardless of destination, certificate, or SNI. A companion JA3S hashes the server's ServerHello. JA3 has been used widely to detect malware C2 channels whose Go/curl/Python TLS libraries produce distinctive hashes that differ from typical browsers, to fingerprint scanners and tools (Nmap, Burp, Cobalt Strike default profiles), and to enable TLS inventory without packet decryption. Modern weaknesses are well known: attackers can mimic browser ClientHellos with libraries such as utls; JA3 hashes can collide across genuinely different clients. JA4 (2023) and its variants address several JA3 limitations.
● Examples
- 01
A SOC sees a JA3 hash matching a known Cobalt Strike default malleable profile on an internal endpoint, kicking off an IR investigation.
- 02
A passive TLS inventory groups traffic by JA3 to estimate the share of corporate traffic still using outdated OpenSSL versions.
● Frequently asked questions
What is JA3 Fingerprint?
A TLS client fingerprinting method by John Althouse, Jeff Atkinson, and Josh Atkins (Salesforce, 2017) that hashes the ordered TLS ClientHello parameters into a 32-character MD5 — used to identify and group TLS clients without inspecting payload. It belongs to the Network Security category of cybersecurity.
What does JA3 Fingerprint mean?
A TLS client fingerprinting method by John Althouse, Jeff Atkinson, and Josh Atkins (Salesforce, 2017) that hashes the ordered TLS ClientHello parameters into a 32-character MD5 — used to identify and group TLS clients without inspecting payload.
How does JA3 Fingerprint work?
JA3 is a TLS client fingerprinting technique published by John Althouse, Jeff Atkinson, and Josh Atkins of Salesforce in 2017. It hashes a deterministic, ordered string of the TLS ClientHello's negotiation parameters — TLS version, accepted ciphers, extensions, elliptic curves, and elliptic-curve point formats — into a 32-character MD5 string. Because most clients (browsers, libraries, malware C2 implants) produce a stable, library-specific ClientHello, JA3 hashes group traffic by client implementation regardless of destination, certificate, or SNI. A companion JA3S hashes the server's ServerHello. JA3 has been used widely to detect malware C2 channels whose Go/curl/Python TLS libraries produce distinctive hashes that differ from typical browsers, to fingerprint scanners and tools (Nmap, Burp, Cobalt Strike default profiles), and to enable TLS inventory without packet decryption. Modern weaknesses are well known: attackers can mimic browser ClientHellos with libraries such as utls; JA3 hashes can collide across genuinely different clients. JA4 (2023) and its variants address several JA3 limitations.
How do you defend against JA3 Fingerprint?
Defences for JA3 Fingerprint typically combine technical controls and operational practices, as detailed in the full definition above.
What are other names for JA3 Fingerprint?
Common alternative names include: JA3, JA3 hash.
● Related terms
- network-security№ 629
JA4 Fingerprint
A 2023 successor to JA3, published by John Althouse at FoxIO, that produces structured, human-readable TLS, HTTP, SSH, and TCP fingerprints designed to remain robust as TLS clients evolve and to be paired across protocols.
- network-security№ 1280
TLS Handshake
The initial protocol exchange in Transport Layer Security that authenticates the server (and optionally the client) and derives the symmetric keys used to encrypt the rest of the session.
- network-security№ 1279
TLS (Transport Layer Security)
The IETF-standardized cryptographic protocol that provides confidentiality, integrity, and authentication for traffic between two networked applications.
- cryptography№ 190
Cipher Suite
A named combination of cryptographic algorithms — key exchange, authentication, bulk encryption, and integrity — negotiated by protocols such as TLS for a given session.
- defense-ops№ 338
Detection Engineering
The discipline of designing, testing, deploying, and maintaining security detections as code, with measurable coverage of adversary techniques.
- network-security№ 326
Deep Packet Inspection (DPI)
An inspection technique that examines the full payload of network packets — not just headers — to identify applications, content, and threats.