v1.10.90-0e025b8
Skip to main content
← Back to Glossary

TLS Handshake

Security

Definition

A TLS handshake is the process by which a client and server establish an encrypted connection, negotiating protocol version, cipher suite, and exchanging cryptographic keys.

What is a TLS Handshake?

A TLS handshake is the process by which a client and server establish an encrypted connection, negotiating the protocol version, cipher suite, and exchanging cryptographic keys. In proxy contexts, the TLS handshake fingerprint can reveal the client type and potentially identify automated tools.

ClientHello Fingerprinting and JA3/JA4 Hashing

The TLS handshake begins with the client sending a ClientHello message listing supported protocol versions, cipher suites, and extensions. The server responds with a ServerHello selecting the parameters, followed by its certificate. The client verifies the certificate and both parties compute shared secret keys. Modern anti-bot systems fingerprint the ClientHello message (known as JA3 or JA4 fingerprinting) by hashing the specific cipher suites, extensions, and their order. Each browser version produces a distinctive fingerprint, and automation tools often have recognizable TLS signatures.

When your request passes through gate.hexproxies.com:8080, the TLS handshake occurs between your client and the target server (through the proxy tunnel). The proxy does not modify this handshake, so the target sees your HTTP library's TLS fingerprint directly. A Python requests library has a completely different JA3 hash than Chrome 120, and sophisticated targets use this to flag automated traffic.

TLS Fingerprinting as an Advanced Detection Vector

TLS fingerprinting has become a sophisticated anti-bot technique that goes beyond IP and header analysis. Even with a clean residential IP and perfect headers, an unusual TLS fingerprint can flag traffic as automated. Hex Proxies infrastructure supports modern TLS versions and cipher suites, but users running custom scrapers should ensure their HTTP client library produces realistic TLS fingerprints matching common browsers.

Why It Matters for Proxy Users

TLS fingerprinting is the most advanced detection layer and the hardest to counter. Unlike IP addresses and HTTP headers that the proxy can manage, the TLS fingerprint originates from your client software and passes through the proxy tunnel unmodified. This means proxy quality alone cannot solve TLS-based detection. Users must ensure their HTTP client produces a realistic TLS fingerprint that matches the user agent they claim to be.

**Practical example:** A data team using Python's requests library through Hex Proxies residential IPs gets blocked on a major social media platform despite perfect IPs, headers, and cookies. JA3 fingerprint analysis reveals that the Python requests library produces a TLS fingerprint that no real browser generates, immediately identifying the traffic as automated. After switching to a library that impersonates Chrome's TLS stack, such as curl_cffi or tls-client, the JA3 hash matches real Chrome traffic and the platform's TLS-based detection no longer flags the requests. Success rates jump from 40 percent to 95 percent with no other changes.

Put Your Knowledge Into Practice

Explore proxy plans optimized for your workflow.