بصمة الجهاز بدون كوكيز: كيف تعمل
الكوكيز في طريقها إلى الزوال. إليك كيف توفّر بصمة الجهاز تعريفًا دائمًا يصمد أمام مسح الكوكيز، ووضع التصفح الخفي، وتحديثات المتصفح.
الكوكيز في طريقها إلى الزوال. تحدّ ميزة منع التتبّع الذكي (ITP) في Safari من عمر الكوكيز إلى 7 أيام. وتحجب الحماية المعزّزة من التتبّع في Firefox كوكيز الطرف الثالث بالكامل. وتعمل Privacy Sandbox في Chrome على إيقاف كوكيز الطرف الثالث تدريجيًا. كما تعني متطلبات الموافقة في لائحة GDPR أن المستخدمين يرفضون شرائط الكوكيز على نحو متزايد.
بالنسبة إلى منع الاحتيال، هذه مشكلة. فإذا لم تستطع تعريف الأجهزة بشكل دائم، فلن تتمكّن من تتبّع المخالفين المتكررين، أو كشف تعدّد الحسابات، أو ربط الجلسات المشبوهة معًا. تحلّ بصمة الجهاز هذه المشكلة عبر تعريف الأجهزة من خلال خصائصها التقنية لا من خلال أي شيء يُطلب من المتصفح تذكّره.
ولنكن دقيقين في ما يعنيه ذلك في حالتنا: لا تضبط Tracio أي كوكيز طرف ثالث ولا تخزّن شيئًا يعمل عبر المواقع. لكنها تضبط كوكي واحدًا من الطرف الأول، _vid_t، بصلاحية 365 يومًا، مع نسخة مطابقة للمعرّف غير الشفّاف نفسه في localStorage. هذا الكوكي مسار سريع لا آلية العمل — فحين يكون موجودًا تكون المطابقة فورية ومؤكدة، وحين يمسحه الزائر، أو يتصفّح في وضع التصفح الخفي، أو يحجب التخزين تمامًا، يُعاد بناء المعرّف من إشارات الجهاز نفسها بدرجة ثقة أدنى قليلًا. والفارق مهم: النظام الذي يعتمد على التخزين يفقد الزائر عند مسح التخزين، وهذا النظام لا يفقده.
فئات الإشارات
البصمة السلبية (لا تتطلّب JavaScript)
قبل تحميل صفحتك أصلًا، يكشف المتصفح معلومات من خلال إشارات على مستوى الشبكة:
بصمة TLS (JA4). تحتوي رسالة TLS Client Hello على مجموعات التشفير، والامتدادات، والمنحنيات الإهليلجية، وخوارزميات التوقيع. نستخدم تجزئة JA4 — بديل حديث لـ JA3 بدقّة تمييز أفضل.
تحليل حزمة TCP/IP. يتباين حجم نافذة TCP، وقيم TTL، وإعدادات MSS عبر أنظمة التشغيل. فلكلٍّ من Linux وWindows وmacOS تكوينات مميزة لحزمة TCP.
تحليل ترويسات HTTP. يختلف ترتيب الترويسات، وقيم Accept-Language، وتفضيلات الاتصال بين المتصفحات.
البصمة النشطة (JavaScript على جانب العميل)
بصمة Canvas. نرسم مشهدًا مصمَّمًا بعناية — نصًّا محدّدًا، وأشكالًا هندسية، وتدرّجات لونية. تُصيّر وحدات معالجة الرسوميات (GPU) المختلفة هذا المشهد باختلافات دقيقة على مستوى البكسل بسبب التنعيم (anti-aliasing)، والتصيير الفرعي للبكسل، وتباينات مزج الألوان. ثم نجزّئ بيانات البكسل.
بصمة WebGL. تكشف WebGL سلاسل المورّد/المصيّر لوحدة معالجة الرسوميات، والأحجام القصوى للنسيج (texture)، والامتدادات المدعومة، وقدرات المظلّلات (shaders). تُعرّف هذه البيانات بقوة طراز وحدة معالجة الرسوميات وإصدار برنامج التشغيل.
بصمة AudioContext. نولّد إشارة اختبارية ونحلّل كيفية معالجتها. ينتج العتاد الصوتي المختلف مخرجات مختلفة قابلة للقياس بسبب اختلافات دقّة الفاصلة العائمة.
تعداد الخطوط. تتباين خطوط النظام المتاحة بحسب نظام التشغيل، وحزمة اللغة، والبرامج المثبَّتة. نختبر نحو 300 خط تشخيصي باستخدام تقنيات قياس عبر canvas.
خصائص Navigator. أنوية المعالج، وذاكرة الجهاز، والمنصّة، واللغة، والمنطقة الزمنية، ودقّة الشاشة، وعمق الألوان، وقدرات المؤشّر واللمس.
تحليل العشوائية (Entropy)
لا تحمل جميع الإشارات وزنًا متساويًا. نقيس عشوائية كل إشارة:
| فئة الإشارة | العشوائية التقريبية |
|---|---|
| Canvas + WebGL معًا | ~18 بت |
| قائمة الخطوط | ~8 بت |
| AudioContext | ~5 بت |
| خصائص Navigator | ~7 بت |
| بصمة TLS | ~6 بت |
| الشاشة + العرض | ~4 بت |
| المنطقة الزمنية + اللغة | ~3 بت |
مجتمعةً، توفّر إشاراتنا التي يزيد عددها على 300 إشارة نحو 50+ بت من العشوائية — ما يكفي لتعريف أكثر من كوادريليون جهاز مميز بشكل فريد.
من الإشارات إلى تجزئة مستقرة
جمع الإشارات الخام ليس سوى نصف المشكلة. فتحديثات المتصفح تغيّر سلاسل user agent. وتحديثات برامج التشغيل تبدّل معطيات WebGL. وتثبيت الخطوط يغيّر قائمة الخطوط.
المطابقة التقريبية
بدلًا من اشتراط التطابق التام، نستخدم خوارزمية مطابقة تقريبية تُرجّح الإشارات بحسب استقرارها وعشوائيتها. فالإشارات المستقرة (canvas، طراز وحدة معالجة الرسوميات) تحمل وزنًا أكبر من الإشارات المتقلبة (user agent، دقّة الشاشة).
توليد المرشّحات يستخدم التجزئة الحساسة للموقع (LSH) على الإشارات الأكثر استقرارًا لتحديد المطابقات المحتملة. تسجيل التشابه يحسب درجة مرجّحة عبر جميع فئات الإشارات، معايَرة بحيث لا تُغيّر تغيّرات الجهاز الطبيعية معرّف الزائر بينما تُغيّره تغيّرات الجهاز الفعلية.
يحقّق هذا دقة 99.5% — بتعريف الزوار العائدين تعريفًا صحيحًا عبر تحديثات المتصفح، ومسح الكوكيز، ووضع التصفح الخفي، وتبديل المتصفحات.
بنية تحافظ على الخصوصية
المعالجة على جانب الخادم. تجري جميع عمليات حساب البصمة على خوادمنا. يجمع الوكيل على جانب العميل الإشارات الخام لكنه لا يحسب تجزئة البصمة ولا يخزّنها.
عدم تخزين البيانات الشخصية. نخزّن تجزئات البصمة، لا الإشارات الخام. والتجزئة دالة أحادية الاتجاه.
موطن البيانات. تُعالَج بيانات العملاء في الاتحاد الأوروبي وتُخزَّن في مراكز بيانات داخل الاتحاد الأوروبي. وتغطّي المادة 6(1)(و) من GDPR منع الاحتيال بوصفه مصلحة مشروعة.
التعريف عبر المتصفحات المختلفة
التحدّي الأصعب هو تعريف الجهاز نفسه عبر متصفحات مختلفة. نعتمد على إشارات مستقلّة عن المتصفح: عتاد وحدة معالجة الرسوميات، وخصائص الشاشة، والمنطقة الزمنية، وإعدادات اللغة، والخطوط المثبَّتة (على مستوى نظام التشغيل)، وخصائص حزمة TCP/IP.
تبلغ دقة الربط عبر المتصفحات نحو 94% — أقل من التعريف داخل المتصفح نفسه لكنها كافية لكشف تعدّد الحسابات عبر متصفحات مختلفة على الجهاز نفسه.
التكامل
لا تستغرق إضافة بصمة الجهاز سوى ثلاثة أسطر من الشيفرة. يُحمَّل الوكيل بشكل غير متزامن ويرسل الإشارات المجموعة إلى واجهتنا البرمجية (API)؛ ويتلقّى المتصفح معرّف الزائر وحكم البوت. أما الإثراء الكامل على جانب الخادم — أكثر من 35 إشارة من Smart Signals — فيصل إلى الواجهة الخلفية لديك عبر حمولة webhook وواجهة Data API، بحيث لا تمرّ صورة المخاطر التفصيلية عبر العميل حيث يمكن قراءتها أو العبث بها.