JA3 اور JA4 TLS fingerprinting کی وضاحت (اور اپنا کیسے ٹیسٹ کریں)

شائع کردہ 4 جون 2026 · ≈9 منٹ کا مطالعہ

آپ کا اسکریپر بہترین Chrome ہیڈرز بھیجتا ہے، ایک صاف رہائشی IP کے پیچھے چلتا ہے، اور پھر بھی پہلی ہی درخواست پر 403 ملتا ہے۔ کوئی کیپچا نہیں، کوئی چیلنج صفحہ نہیں، حل کرنے کو کچھ نہیں۔ سائٹ نے آپ کو HTTP کا ایک بائٹ بھی منتقل ہونے سے پہلے پہچان لیا — TLS handshake کے دوران۔

یہ مضمون وضاحت کرتا ہے کہ JA3 اور JA4 fingerprinting دراصل کیسے کام کرتے ہیں، 2026 میں یہ ہر بڑے anti-bot سسٹم کا خاموش بنیادی ستون کیوں ہیں، اور دس سیکنڈ میں آپ اپنا fingerprint کیسے دیکھ سکتے ہیں۔ اگر آپ کو پہلے bypass ٹولنگ چاہیے، تو ہم نے اسے curl_cffi اور tls-client کے ساتھ TLS Fingerprinting کو Bypass کرنا میں بیان کیا ہے — یہ ساتھی مضمون اس بارے میں ہے کہ detection کا پہلو کیسے کام کرتا ہے۔

دس سیکنڈ کا ٹیسٹ

نظریے سے پہلے، اپنا handshake دیکھیں۔ ہمارا مفت JA3/JA4 چیکر کھولیں — یہ وہ TLS fingerprint واپس دکھاتا ہے جو آپ کے کلائنٹ نے ابھی پیش کیا اور بتاتا ہے کہ یہ کس سے میل کھاتا ہے:

# 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.

دونوں چلائیں اور آپ کو اس پورے مضمون کا نکتہ نظر آ جائے گا: curl اور Chrome مکمل طور پر مختلف fingerprints پیدا کرتے ہیں، چاہے آپ کوئی بھی User-Agent ہیڈر مقرر کریں۔

TLS Handshake میں کیا ہوتا ہے

ہر HTTPS کنکشن ایک ClientHello پیغام سے شروع ہوتا ہے، جو کوئی بھی encryption شروع ہونے سے پہلے سادہ متن میں بھیجا جاتا ہے۔ اس میں، آپ کا کلائنٹ اعلان کرتا ہے:

یہاں detection کی بصیرت ہے: یہ فہرستیں اور ان کی عین ترتیب اس TLS لائبریری میں طے شدہ ہوتی ہیں جس کے خلاف آپ کا کلائنٹ کمپائل ہوا تھا۔ Chrome کا BoringSSL ایک مخصوص امتزاج کا اعلان کرتا ہے۔ Python کا OpenSSL ایک مختلف امتزاج کا اعلان کرتا ہے۔ Go کا crypto/tls ایک تیسرا۔ آپ اسے ہیڈرز کے ساتھ تبدیل نہیں کر سکتے — یہ HTTP پرت کے نیچے، خود لائبریری کے ذریعے طے ہوتا ہے۔

JA3: Handshake کو Hash کرنا

JA3 (Salesforce، 2017) پانچ ClientHello فیلڈز — TLS ورژن، ciphers، extensions، curves، point formats — کو ایک سٹرنگ میں جوڑتا ہے اور اسے MD5 سے hash کرتا ہے:

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

ہر TLS اسٹیک کے لیے ایک hash۔ Windows پر Chrome 137 کی ہر کاپی (تقریباً) ایک ہی JA3 پیدا کرتی ہے؛ OpenSSL 3.x پر ہر python-requests ایک ہی مختلف JA3 پیدا کرتا ہے۔ دفاع کنندگان lookup ٹیبلز برقرار رکھتے ہیں: hash X = Chrome، hash Y = requests، hash Z = Go bot۔ اگر آپ کا User-Agent کہتا ہے Chrome لیکن آپ کا JA3 کہتا ہے OpenSSL، تو آپ بلاک ہو جاتے ہیں — فوری، خاموشی سے، سستے میں۔

JA4: 2026 کا معیار

JA3 میں مسائل تھے: Chrome نے 2023 میں extension ترتیب کو بے ترتیب کرنا شروع کر دیا (سادہ JA3 کو توڑتے ہوئے)، اور MD5 غیر ساختہ ہے — ایک hash آپ کو اس بارے میں کچھ نہیں بتاتا کہ دو کلائنٹس کیوں مختلف ہیں۔ JA4 (FoxIO، 2023) نے دونوں کو ٹھیک کیا اور آج سنجیدہ وینڈرز یہی چلاتے ہیں:

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

آپ کے خلاف اسے کون استعمال کرتا ہے

ہر وہ سسٹم جو اہمیت رکھتا ہے: Cloudflare اپنے bot-management قواعد میں JA3/JA4 کو براہِ راست ظاہر کرتا ہے؛ DataDome اور PerimeterX اسے اپنی نیٹ ورک پرت کی اسکورنگ میں فیڈ کرتے ہیں (ہماری DataDome/PerimeterX گائیڈ دیکھیں)؛ Akamai نے سب سے زیادہ عرصے سے TLS fingerprinting چلائی ہے۔ یہ مقبول ہے کیونکہ یہ حساب کرنے میں مفت ہے، HTTP پرت سے جعلی بنانا ناممکن ہے، اور 90% سادہ آٹومیشن کو پکڑ لیتا ہے — اب تک لکھا گیا ہر requests/httpx/axios/Go-http اسکرپٹ — کسی بھی JavaScript کو چلنے کی ضرورت سے پہلے۔

اکیلا پراکسی کیوں مدد نہیں کرتا

یہ لوگوں کو حیران کرتا ہے: ایک پراکسی آپ کا IP بدل دیتی ہے، لیکن آپ کا TLS handshake بغیر کسی تبدیلی کے گزر جاتا ہے۔ CONNECT ٹنل (یا SOCKS5 سٹریم) آپ کے ClientHello بائٹس کو ہو بہو ہدف تک لے جاتا ہے۔ رہائشی IP + requests-لائبریری JA3 = "ایک رہائشی IP پر چلنے والا bot۔" ڈیٹا سینٹر IP سے بہتر، پھر بھی ایک bot۔

IP اور TLS fingerprint آزاد سگنلز ہیں اور آپ کو دونوں صاف چاہئیں:

IPTLS fingerprint2026 میں فیصلہ
ڈیٹا سینٹرلائبریری (requests/Go)ہر اس جگہ بلاک جہاں اہمیت دی جاتی ہے
رہائشیلائبریریJA4 چیک کرنے والی سائٹس پر بلاک
ڈیٹا سینٹربراؤزر کی نقلIP ساکھ پر بلاک
رہائشیبراؤزر کی نقلنیٹ ورک پرت کی جانچ پاس کرتا ہے

اپنے Fingerprint کو اپنی کہانی سے میل کھلانا

دو راستے، ٹولنگ کے لحاظ سے:

HTTP کلائنٹس — ایک impersonation لائبریری استعمال کریں جو براؤزر کے عین ClientHello کو دوبارہ نافذ کرتی ہے: curl_cffi (Python)، tls-client (Python/Go)، got-scraping (Node)۔ مکمل کام کرنے والا کوڈ curl_cffi گائیڈ میں:

from curl_cffi import requests

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

حقیقی براؤزر (Playwright، براؤزر ایجنٹس، anti-detect براؤزر) — TLS پرت پر کچھ کرنے کو نہیں؛ fingerprint واقعی Chrome کا ہے۔ آپ کا خطرہ کہیں اور رہتا ہے: IP ساکھ اور CDP detection۔

پھر تصدیق کریں، فرض نہ کریں۔ ورژن بدلتے رہتے ہیں — Chrome 120 کے handshake پر pinned ایک impersonation لائبریری 2026 میں "مشکوک طور پر پرانے براؤزر" کے طور پر پڑھی جاتی ہے۔ ہر dependency اپ ڈیٹ کے بعد دوبارہ ٹیسٹ کریں:

Free tool · no signup

اپنا JA3 / JA4 ابھی دیکھیں

ہمارا چیکر وہ TLS fingerprint واپس دکھاتا ہے جو آپ کا کلائنٹ پیش کرتا ہے، پہچانتا ہے کہ یہ کس اسٹیک سے میل کھاتا ہے (Chrome / Firefox / OpenSSL / Go)، اور UA-بمقابلہ-TLS عدم مطابقتوں کو پرچم لگاتا ہے — وہی جانچ جو anti-bot سسٹم چلاتے ہیں۔

میرا TLS fingerprint ٹیسٹ کریں →

Fingerprint صاف ہے لیکن پھر بھی بلاک؟ دوسرا نصف IP ساکھ ہے — 500MB مفت ٹریفک کے ساتھ رہائشی IPs ٹیسٹ کریں →

خلاصہ

صاف Fingerprint، صاف IP

اپنے نقل شدہ TLS کو رہائشی IPs کے ساتھ جوڑیں — 500MB مفت ٹریفک، کسی کارڈ کی ضرورت نہیں۔

مفت ٹرائل شروع کریں

تمام IP پروڈکٹس کے لیے · ہر وقت دستیاب نوڈز کا وسیع پول

ابھی رجسٹر کریں اور ری چارج پر 100% تک کیش بیک حاصل کریں

نئے صارفین کو سائن اپ پر 500MB ملتے ہیں، اس کے علاوہ پہلے ری چارج پر بونس۔ پیشکش محدود وقت کے لیے ہے۔