Ipinaliwanag ang JA3 at JA4 TLS Fingerprinting (At Paano I-test ang Iyo)

Na-publish noong 4 Hunyo 2026 · ≈9 min na pagbasa

Nagpapadala ang iyong scraper ng perpektong Chrome headers, tumatakbo sa likod ng malinis na residential IP, at nakakakuha pa rin ng 403 sa pinakaunang request. Walang captcha, walang challenge page, walang lulutasin. Natukoy ka ng site bago pa man napalitan ang isang byte ng HTTP — habang nasa TLS handshake.

Ipinapaliwanag ng artikulong ito kung paano talaga gumagana ang JA3 at JA4 fingerprinting, kung bakit sila ang tahimik na workhorse ng bawat malaking anti-bot system sa 2026, at paano makita ang sarili mong fingerprint sa loob ng sampung segundo. Kung gusto mo muna ang bypass tooling, sinaklaw namin iyon sa Bypass TLS Fingerprinting with curl_cffi & tls-client — ito ang kasamang piyesa kung paano gumagana ang detection side.

Ang Ten-Second Test

Bago ang teorya, tingnan ang sarili mong handshake. Buksan ang aming libreng JA3/JA4 checker — ini-echo nito pabalik ang TLS fingerprint na kapapakita lang ng iyong client at sinasabi sa iyo kung ano ang tumutugma nito:

# From a terminal - see what curl's TLS looks like:
curl https://www.jibaoproxy.com/tools/fingerprint.html

# Then open the same URL in Chrome and compare.

Patakbuhin ang dalawa at makikita mo ang punto ng buong artikulong ito: gumagawa ang curl at Chrome ng ganap na magkaibang fingerprint, anuman ang User-Agent header na itakda mo.

Ano ang Nangyayari sa Isang TLS Handshake

Bawat HTTPS connection ay nagsisimula sa isang ClientHello message, na ipinapadala sa cleartext bago magsimula ang anumang encryption. Dito, ipinapahayag ng iyong client:

Heto ang detection insight: ang mga listahang ito at ang kanilang eksaktong pagkakasunod-sunod ay nakatanim sa TLS library na pinag-compile-an ng iyong client. Inihahayag ng BoringSSL ng Chrome ang isang partikular na kombinasyon. Inihahayag ng OpenSSL ng Python ang ibang isa. Ang crypto/tls ng Go ang pangatlo. Hindi mo ito mababago gamit ang headers — ninenegosasyon ito sa ilalim ng HTTP layer, ng library mismo.

JA3: Pag-hash ng Handshake

Pinagdurugtong ng JA3 (Salesforce, 2017) ang limang ClientHello field — TLS version, ciphers, extensions, curves, point formats — sa isang string at ini-MD5-hash ito:

771,4865-4866-4867-49195-49199,0-23-65281-10-11-35-16,29-23-24,0
              |
              v  MD5
        cd08e31494f9531f560d64c695473da9

Isang hash kada TLS stack. Bawat kopya ng Chrome 137 sa Windows ay gumagawa ng (halos) parehong JA3; bawat python-requests sa OpenSSL 3.x ay gumagawa ng parehong ibang JA3. Nagpapanatili ang mga defender ng lookup table: hash X = Chrome, hash Y = requests, hash Z = Go bot. Kung sinasabi ng iyong User-Agent na Chrome pero sinasabi ng iyong JA3 na OpenSSL, na-block ka — agad, tahimik, mura.

JA4: Ang 2026 na Pamantayan

May mga problema ang JA3: nagsimulang i-randomize ng Chrome ang extension order noong 2023 (sinisira ang naive JA3), at hindi nakaayos ang MD5 — walang sinasabi sa iyo ang isang hash tungkol sa bakit magkaiba ang dalawang client. Inayos ng JA4 (FoxIO, 2023) ang pareho at ito ang pinapatakbo ng mga seryosong vendor ngayon:

JA4 = t13d1516h2_8daaf6152771_b0da82dd1658
       |            |             |
       a: protocol  b: ciphers    c: extensions
       (TLS 1.3, 16 ciphers,      (sorted, truncated
        h2 ALPN, domain SNI)       SHA256)

Sino ang Gumagamit Nito Laban sa Iyo

Bawat system na mahalaga: inilalantad ng Cloudflare ang JA3/JA4 nang direkta sa mga bot-management rule nito; pinapakain ito ng DataDome at PerimeterX sa kanilang network-layer scoring (tingnan ang aming DataDome/PerimeterX guide); pinakamatagal nang nagpapatakbo ang Akamai ng TLS fingerprinting kaysa kaninuman. Sikat ito dahil libreng kalkulahin, imposibleng pekein mula sa HTTP layer, at nahuhuli ang 90% ng naive automation — bawat requests/httpx/axios/Go-http script na nasulat na — bago kailanganing tumakbo ang anumang JavaScript.

Bakit Hindi Makakatulong ang Proxy Lang

Nakakagulat ito sa mga tao: binabago ng proxy ang iyong IP, pero dumadaan ang iyong TLS handshake nang hindi nagbabago. Dinadala ng CONNECT tunnel (o SOCKS5 stream) ang iyong ClientHello bytes nang verbatim sa target. Residential IP + requests-library JA3 = "isang bot na tumatakbo sa residential IP." Mas maganda kaysa sa datacenter IP, isa pa ring bot.

Ang IP at ang TLS fingerprint ay magkahiwalay na signal at kailangan mong malinis ang pareho:

IPTLS fingerprintHatol sa 2026
DatacenterLibrary (requests/Go)Naka-block saanman na may pakialam
ResidentialLibraryNaka-block sa mga JA4-checking site
DatacenterBrowser-impersonatedNaka-block dahil sa IP reputation
ResidentialBrowser-impersonatedPumapasa sa network-layer checks

Pagpapatugma ng Iyong Fingerprint sa Iyong Kuwento

Dalawang landas, ayon sa tooling:

HTTP clients — gumamit ng impersonation library na muling nag-implement ng eksaktong ClientHello ng browser: curl_cffi (Python), tls-client (Python/Go), got-scraping (Node). Buong gumaganang code sa the curl_cffi guide:

from curl_cffi import requests

r = requests.get(
    "https://target.example",
    impersonate="chrome",
    proxies={"https": "socks5h://USERNAME:[email protected]:913"},
)

Mga totoong browser (Playwright, browser agents, anti-detect browsers) — walang gagawin sa TLS layer; tunay na sa Chrome ang fingerprint. Nasa ibang lugar ang iyong panganib: IP reputation at CDP detection.

Pagkatapos, i-verify, huwag ipagpalagay. Naglalayo ang mga bersyon — ang impersonation library na naka-pin sa handshake ng Chrome 120 ay nababasa bilang "kahina-hinalang lumang browser" sa 2026. I-test muli pagkatapos ng bawat dependency update:

Free tool · no signup

Tingnan ang iyong JA3 / JA4 ngayon

Ini-echo ng aming checker ang TLS fingerprint na ipinapakita ng iyong client, tinutukoy kung aling stack ang tumutugma nito (Chrome / Firefox / OpenSSL / Go), at fina-flag ang mga UA-vs-TLS mismatch — ang eksaktong check na pinapatakbo ng mga anti-bot system.

Test my TLS fingerprint →

Malinis ang fingerprint pero na-block pa rin? Ang kabilang kalahati ay IP reputation — subukan ang residential IPs na may 500MB free traffic →

Buod

Malinis na Fingerprint, Malinis na IP

Ipares ang iyong impersonated TLS sa residential IPs — 500MB free traffic, walang card na kailangan.

Start Free Trial

Para sa lahat ng IP products · napakalaking pool ng nodes na available anumang oras

Magrehistro ngayon at makakuha ng hanggang 100% na rebate sa iyong recharge

Ang mga bagong user ay makakatanggap ng 500MB sa pagrehistro, kasama ang bonus sa unang recharge. Limitadong oras lang ang alok.