يُرسل كاشطك ترويسات Chrome مثالية، ويعمل خلف عنوان IP سكني نظيف، ومع ذلك يحصل على رمز 403 في أول طلب على الإطلاق. لا كابتشا، ولا صفحة تحدٍّ، ولا شيء يُحَلّ. فقد عرّفك الموقع قبل تبادل بايت واحد من HTTP — أثناء مصافحة TLS.
يشرح هذا المقال كيف تعمل بصمة JA3 وJA4 فعلًا، ولماذا هي حصان العمل الصامت في كل نظام رئيسي لمكافحة الروبوتات في 2026، وكيف ترى بصمتك الخاصة في عشر ثوانٍ. إن أردت أدوات التجاوز أولًا، فقد غطّيناها في تجاوز بصمة TLS باستخدام curl_cffi وtls-client — وهذا هو الجزء المرافق عن كيفية عمل جانب الكشف.
قبل النظرية، انظر إلى مصافحتك الخاصة. افتح فاحص JA3/JA4 المجاني لدينا — فهو يردّ صدى بصمة TLS التي قدّمها عميلك للتو ويخبرك بما تطابقه:
# 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 ينتجان بصمتين مختلفتين تمامًا، أيًّا كانت ترويسة User-Agent التي تضبطها.
يبدأ كل اتصال HTTPS برسالة ClientHello، تُرسَل بنص صريح قبل أن يبدأ أي تشفير. وفيها، يُعلن عميلك عن:
وها هي رؤية الكشف: هذه القوائم وترتيبها الدقيق مدمجة في مكتبة TLS التي جُمِّع عليها عميلك. تُعلن BoringSSL في Chrome عن توليفة محددة واحدة. وتُعلن OpenSSL في Python عن توليفة مختلفة. وتُعلن crypto/tls في Go عن توليفة ثالثة. لا يمكنك تغيير هذا بالترويسات — فهو يُتفاوَض عليه أسفل طبقة HTTP، من قِبل المكتبة نفسها.
تجمع JA3 (من Salesforce، 2017) خمسة حقول من ClientHello — إصدار TLS، ومجموعات التشفير، والامتدادات، والمنحنيات، وصيغ النقاط — في سلسلة وتجزّئها بـ MD5:
771,4865-4866-4867-49195-49199,0-23-65281-10-11-35-16,29-23-24,0
|
v MD5
cd08e31494f9531f560d64c695473da9
تجزئة واحدة لكل مكدّس TLS. كل نسخة من Chrome 137 على Windows تنتج (تقريبًا) JA3 نفسها؛ وكل python-requests على OpenSSL 3.x ينتج JA3 المختلفة نفسها. يحتفظ المدافعون بجداول بحث: تجزئة X = Chrome، تجزئة Y = requests، تجزئة Z = روبوت Go. فإن قالت ترويسة User-Agent لديك Chrome لكن JA3 لديك قالت OpenSSL، فأنت محظور — فورًا، بصمت، وبثمن زهيد.
كان لـ JA3 مشكلات: بدأ Chrome في عشوَأة ترتيب الامتدادات في 2023 (مما كسر JA3 الساذجة)، وMD5 غير مهيكلة — فالتجزئة الواحدة لا تخبرك بشيء عن سبب اختلاف عميلين. أصلحت 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 عن JA3/JA4 مباشرة في قواعد إدارة الروبوتات لديها؛ ويغذّيها DataDome وPerimeterX في تسجيلهما على طبقة الشبكة (انظر دليل DataDome/PerimeterX)؛ وقد شغّلت Akamai بصمة TLS أطول من أي أحد. وهي شائعة لأنها مجانية الحساب، ويستحيل تزييفها من طبقة HTTP، وتمسك 90% من الأتمتة الساذجة — كل سكربت requests/httpx/axios/Go-http كُتب يومًا — قبل أن تحتاج أي JavaScript إلى التشغيل.
هذا يفاجئ الناس: البروكسي يغيّر عنوان IP، لكن مصافحة TLS لديك تمرّ دون تغيير. فنفق CONNECT (أو دفق SOCKS5) يحمل بايتات ClientHello حرفيًا إلى الهدف. عنوان IP سكني + JA3 لمكتبة requests = "روبوت يعمل على عنوان IP سكني." أفضل من عنوان IP لمركز بيانات، لكنه روبوت رغم ذلك.
عنوان IP وبصمة TLS هما إشارتان مستقلتان وتحتاج كليهما نظيفًا:
| عنوان IP | بصمة TLS | الحكم في 2026 |
|---|---|---|
| مركز بيانات | مكتبة (requests/Go) | محظور في كل مكان يهتمّ |
| سكني | مكتبة | محظور على المواقع التي تفحص JA4 |
| مركز بيانات | منتحِل لمتصفّح | محظور على سمعة IP |
| سكني | منتحِل لمتصفّح | يجتاز فحوص طبقة الشبكة |
مساران، حسب الأدوات:
عملاء HTTP — استخدم مكتبة انتحال تعيد تنفيذ 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، ووكلاء المتصفّح، ومتصفحات مكافحة الكشف) — لا شيء تفعله على طبقة TLS؛ فالبصمة هي بصمة Chrome فعلًا. مخاطرتك تكمن في مكان آخر: سمعة IP وكشف CDP.
ثم تحقّق، لا تفترض. الإصدارات تنجرف — فمكتبة انتحال مثبّتة على مصافحة Chrome 120 تُقرأ كـ"متصفّح قديم بشكل مريب" في 2026. أعِد الاختبار بعد كل تحديث للاعتماديات:
اقرن TLS المنتحَل لديك بعناوين IP سكنية — 500 ميجابايت رصيد مجاني، بلا حاجة إلى بطاقة.
ابدأ التجربة المجانيةيحصل المستخدمون الجدد على 500MB عند التسجيل، بالإضافة إلى مكافأة على أول عملية شحن. العرض لفترة محدودة.