TLS Fingerprinting: JA3 vs JA4 Explained

Recognize the client behind an encrypted connection

A TLS fingerprint identifies the client software behind an encrypted connection by looking at how it starts the TLS handshake.

It lets you recognize browsers, libraries, malware families and automation without decrypting traffic. The open source nDPI library extracts these fingerprints, and ntopng and nProbe report them per flow.

Ja4
JA3

and JA4

TCP

fingerprint too

LGPL

open source nDPI

Basics

JA3 and JA4 in a nutshell

Example

How to read a JA4 value

Take t13d1516h2_8daaf6152771_d8a2da3f94cd, a value commonly seen from modern browsers.

Ja4 1

Read more

Is JA4 obsolete? What comes next

Is JA4 now obsolete?

Where JA4 works and where it does not.

The nDPI TCP fingerprint

A stable, patent-free way to fingerprint TCP stacks.

Beyond the 5-tuple

Going further in network flow analysis.

In practice

Use fingerprints in your network

Get started

Products you need

nDPI

Deep packet inspection library

ntopng

Traffic analysis

nProbe

Flow probe and collector

FAQ

Frequently Asked Questions

What is JA3?

JA3 is a method to fingerprint a TLS client by hashing fields from the ClientHello (version, ciphers, extensions, curves and point formats). Similar clients produce the same hash.

Modern browsers randomize the order of TLS extensions, which makes JA3 hashes unstable. JA4 sorts those fields, so the same client produces a stable value, and it adds readable parts such as TLS version, SNI presence and ALPN.

Yes. nDPI extracts TLS fingerprints including JA4 and is used by ntopng and nProbe to report them per flow.

No. They are one signal. Combine them with destination reputation, behavior and flow risks. nDPI also provides newer traffic fingerprints that go beyond JA3 and JA4.

Get started

Detect fingerprints in your traffic

Download the free Community edition, compare editions and buy in the shop, or talk to the ntop team about your requirements.