Skip to content
EN
Get Started

TLS Fingerprinting

TLS fingerprinting identifies client software from patterns in its TLS handshake, helping websites distinguish browsers, apps and automated tools.

Table of Contents (8 sections)

How TLS fingerprinting works

A client starts an HTTPS connection by sending a ClientHello message. Before any page content is exchanged, this message advertises the client’s SSL/TLS capabilities, including:

  • Protocol versions: the TLS versions the client supports.
  • Cipher suites: the offered encryption options and their order.
  • Extensions: items such as SNI, supported groups and signature algorithms.
  • Application protocols: ALPN values such as h2 and http/1.1.

A fingerprinting system selects and normalizes these fields, then often turns them into a short hash. Browser versions, operating systems and networking libraries can produce different patterns. A software update may change the fingerprint, while many clients can share the same one, so it isn’t a unique identity.

TLS vs browser fingerprinting

TLS fingerprinting Browser fingerprinting
Observed from TLS handshake Browser APIs and page behavior
Common signals Ciphers, extensions and ALPN Canvas, fonts, screen and WebGL
JavaScript needed No Usually
Typical result Client or library classification More detailed browser profile

Browser fingerprinting happens after the secure connection is established. Sites often combine both methods rather than treating either result as proof by itself.

Why it matters with proxies

A proxy changes the source IP a website sees, but it doesn’t necessarily change the TLS fingerprint. With an HTTP CONNECT or SOCKS tunnel, your client usually creates the TLS connection through the tunnel. The destination therefore sees the fingerprint produced by your browser, scraper or HTTP library.

If an intermediary terminates TLS and starts a new connection to the destination, the destination sees that intermediary’s fingerprint instead. A CDN or web application firewall may compare it with the User-Agent, HTTP/2 settings, cookies, IP reputation and request behavior as part of bot detection. A browser-like User-Agent paired with a non-browser TLS pattern can look inconsistent.

Working with it responsibly

  • Use maintained clients. Current browsers and HTTP libraries have current TLS settings and security fixes.
  • Keep signals consistent. Don’t claim an unrelated browser version in your headers.
  • Preserve session context. Keep cookies, client settings and the proxy session stable during a related sequence of requests.
  • Respect site limits. Follow terms and robots.txt, reduce concurrency when challenged and honor rate limiting.

FAQ

Can TLS fingerprinting identify a person?

No. It usually identifies a client family, version or TLS library rather than a specific person. Sites need other signals to distinguish users who share the same fingerprint.

Does using a proxy change my TLS fingerprint?

Usually not. A tunneling proxy changes your visible IP while your client still creates the destination’s TLS handshake. A proxy that terminates and recreates TLS can change what the destination observes.

Is JA3 the same as TLS fingerprinting?

No. JA3 is one TLS fingerprinting method that hashes selected ClientHello fields. TLS fingerprinting is the broader category and includes other formats, fields and matching methods.

Related Terms

View All Terms