يُنشئ نظام التعريف في TRACIO معرّفًا مستقرًّا للزائر انطلاقًا من أكثر من 130 إشارة من المتصفح. ويبقى هذا المعرّف ثابتًا عبر الجلسات، ووضع التصفّح المتخفّي، وتغييرات VPN، ومسح ملفات تعريف الارتباط (cookies). تشرح هذه الصفحة خط أنابيب التعريف الكامل.
يجمع العميل أكثر من 130 إشارة متميّزة من المتصفح موزّعة على 10 فئات. وتفحص كل إشارة جانبًا مختلفًا من المتصفح والجهاز، بدءًا من خصائص العتاد وصولًا إلى سلوك العرض (rendering).
| المجموعة | الإشارات | الاستقرار | أمثلة |
|---|---|---|---|
| العتاد | 12 | مرتفع جدًا | دقة الشاشة، ذاكرة الجهاز، التوازي العتادي، دعم اللمس |
| العرض | 9 | مرتفع | بصمة Canvas (نص + هندسة)، عارض WebGL، معالجة الصوت |
| الخطوط | 5 | مرتفع | خطوط النظام المتاحة (اختُبرت 69 عائلة)، تفضيلات الخطوط، عرض MathML |
| المنصة | 25 | متوسط | User-Agent، خصائص navigator، المنطقة الزمنية، اللغة، المورّد |
| محرّك CSS | 10 | متوسط | استجابات استعلامات الوسائط (نظام الألوان، HDR، الحركة المخفّضة، الألوان المفروضة) |
| التخزين | 10 | متوسط | دعم ملفات تعريف الارتباط، localStorage، sessionStorage، حصة التخزين |
| WebGL | 9 | مرتفع | مورّد GPU، العارض (بدون قناع)، دقة المظلّل، دعم الإضافات |
| الشبكة | 3 | منخفض | زمن التنقّل RTT، فحص TURN، إصدار التطبيق |
| مؤشرات البوت | 15 | لا ينطبق | علم Webdriver، أطر الأتمتة، طول eval، علامات وضع الرأس المنعدم |
| مخصّص | 14 | متغيّر | بصمة الرياضيات، ميزات WASM، كشف البنية المعمارية |
ليست كل الإشارات متساوية في فائدتها للتعريف. تُصنَّف الإشارات حسب استقرارها:
المستوى 1 (مُجمّد): إشارات العتاد والعرض التي لا تتغيّر تقريبًا أبدًا. بصمة Canvas، عارض WebGL، بصمة الصوت، معطيات GPU، تعداد الخطوط، العمليات الرياضية، بايت البنية المعمارية.
المستوى 2 (شبه مستقر): إشارات تتغيّر مع تحديثات المتصفح أو تغييرات الإعدادات. User-Agent، Client Hints، الإضافات، استعلامات وسائط CSS، قدرات التخزين.
المستوى 3 (متقلّب): إشارات تتغيّر بتواتر. دقة الشاشة (تغيير الشاشة)، المنطقة الزمنية (السفر)، تفضيلات اللغة، خصائص الاتصال.
يُحسَب معرّف الزائر باستخدام نظام تجزئة ثلاثي المستويات يوازن بين الاستقرار وقابلية التوسّع:
Visitor ID = [Tier1Hash][Tier2Hash][Tier3Hash] 20 chars 10 chars 10 chars ──────── ──────── ──────── base62 base62 base62يستخدم المستوى 1 الإشارات المجمّدة فقط، وهي إشارات ملازمة للعتاد ومحرّك العرض. ولا تتغيّر هذه الإشارات إلا عندما ينتقل المستخدم إلى جهاز فيزيائي مختلف أو يُجري تغييرات عتادية كبيرة.
الإشارات المشمولة: تجزئة بصمة Canvas، عارض WebGL (بدون قناع)، مورّد WebGL (بدون قناع)، بصمة الصوت، تجزئة تعداد الخطوط، تجزئة معطيات WebGL، تجزئة العمليات الرياضية، بايت البنية المعمارية (ARM مقابل x86).
الخوارزمية:
key1=value1|key2=value2|... (المفاتيح مرتّبة أبجديًا)المستوى 1 مُجمّد عن قصد. ولا تُضاف إشارات جديدة إلى المستوى 1 أبدًا، بما يضمن بقاء نواة الهوية مستقرة عبر تحديثات الخادم.
يلتقط المستوى 2 بيئة المتصفح ونظام التشغيل. وتتغيّر هذه الإشارات عندما يُحدّث المستخدم متصفحه، أو يثبّت إضافات، أو يعدّل إعدادات النظام.
الإشارات المشمولة: بيانات User-Agent، Client Hints (العلامات، المنصة، البنية المعمارية)، خصائص navigator (المورّد، المنصة، اللغات)، قائمة الإضافات، عمق ألوان الشاشة، ذاكرة الجهاز، التوازي العتادي.
يلتقط المستوى 3 الإشارات المتقلّبة التي قد تتغيّر بين الجلسات. وتُستخدَم هذه الإشارات في تقييم الثقة والمطابقة التقريبية، لكنها لا تؤثّر في نواة الهوية.
الإشارات المشمولة: دقة الشاشة، المنطقة الزمنية، اللغة، حاصرات DOM، قدرات التخزين، استجابات استعلامات وسائط CSS، خصائص الاتصال.
تُجزّأ كل طبقة باستخدام MurmurHash3-x64-128، وهي دالة تجزئة سريعة وغير تشفيرية تُنتج مخرجًا بطول 128 بت. وتعمل الخوارزمية على النحو التالي:
توفّر MurmurHash3 توزيعًا ممتازًا (كل بت من المُدخل يؤثّر في كل بت من المخرج) وهي سريعة بما يكفي للحساب في الزمن الحقيقي. وهي ليست آمنة تشفيريًا، لكن ذلك غير مطلوب لتجزئة البصمات.
Input: "canvas=abc123|webgl_renderer=ANGLE|audio=0.04852" ↓ MurmurHash3-x64-128Output: 0x7f4a8c2d1e3b5f6a 0x9d8c7b6a5e4f3d2c ↓ base62 encodeResult: "X7fh2Hg9LkMn3pQr5tBv"تُمثّل درجة الثقة (من 0.0 إلى 1.0) مدى تيقّن النظام من تعريف الزائر:
عندما يطابق ملف تعريف الارتباط _vid_t زائرًا معروفًا، تُضبط الثقة على 1.0. يحمل ملف تعريف الارتباط معرّف UID الخاص بالزائر، والذي يتحقّق منه الخادم مقابل سجلّاته. وهذا هو مسار التعريف الأسرع والأكثر موثوقية.
يحصل الزوّار الجدد الذين لا سجلّ سابق لهم على درجة ثقة قدرها 0.90. ولا يوجد خطر مطابقة خاطئة إذ لا توجد سجلّات قائمة للمقارنة بها.
بالنسبة إلى الزوّار العائدين بلا مطابقة لملف تعريف الارتباط، يحسب النظام الثقة انطلاقًا مما يلي:
الترجيح حسب تواتر الإشارة (IDF): الإشارات الأكثر تفرّدًا عبر السكّان العالميين تحصل على وزن أعلى. فعارض WebGL النادر أكثر دلالة على الهوية من دقة شاشة شائعة.
المطابقة التقريبية: يقارن النظام البصمة الحالية بالبصمات المخزَّنة باستخدام مسافة هامينغ على مستوى البتات. وتُجمّع الإشارات حسب المستوى، وتُرجَّح درجة مطابقة كل مستوى على نحو مستقل.
الاتساق التاريخي: إذا كانت إشارات الزائر مستقرة عبر زيارات متعدّدة، ترتفع الثقة. أما إذا تذبذبت الإشارات بتواتر، فتنخفض الثقة.
| السيناريو | الدرجة النموذجية | التفسير |
|---|---|---|
| مطابقة ملف تعريف الارتباط | 1.000 | تم التحقّق من UID الخاص بملف _vid_t على الخادم |
| الزيارة الأولى | 0.900 | لا توجد سجلّات سابقة للمقارنة |
| مطابقة بصمة قوية | 0.990-0.999 | تتطابق كل إشارات المستوى 1، ومعظم إشارات المستوى 2 |
| مطابقة جزئية (تحديث المتصفح) | 0.950-0.989 | يتطابق المستوى 1، وتغيّر المستوى 2 (UA جديد) |
| مطابقة ضعيفة (تغييرات كبيرة) | 0.850-0.949 | تغيّرت بعض إشارات المستوى 1 |
| غامضة | 0.500-0.849 | عدة مطابقات محتملة في قاعدة البيانات |
يستخدم TRACIO ملف تعريف ارتباط من الطرف الأول (_vid_t) للحفاظ على هوية الزائر عبر الجلسات:
_vid_tSameSite=Lax، وSecure على HTTPS (وليس HttpOnly — إذ يقرؤه الوكيل من جهة العميل)يُصدَر ملف تعريف الارتباط من جهة الخادم (عبر ترويسة الاستجابة Set-Cookie) ومن جهة العميل عبر الوكيل معًا، كما يُنسَخ معرّف UID أيضًا إلى localStorage كخيار احتياطي عند حظر ملفات تعريف الارتباط.
يحاول الخادم ضبط ملف تعريف الارتباط على نطاقات ذات مدى متزايد الاتساع:
app.example.com → example.com → comيُستخدَم أوسع نطاق يمكن ضبط ملف تعريف الارتباط عليه بنجاح. وهذا يضمن بقاء ملف تعريف الارتباط عبر النطاقات الفرعية.
يستطيع TRACIO التعرّف على الشخص نفسه عبر متصفحات مختلفة على الجهاز نفسه عندما تُنتج إشارات المستوى 1 تجزئات متطابقة. وبما أن المستوى 1 يعتمد على خصائص العتاد والعرض (Canvas وWebGL والصوت والخطوط)، فإن هذه الإشارات غالبًا ما تكون متطابقة عبر المتصفحات القائمة على Chromium على الجهاز نفسه، وتتدهور عبر المحرّكات المختلفة (Chromium مقابل Firefox مقابل Safari). أما مطابقة زائر سطح مكتب بزائر جوّال فليست متوقّعة — إذ تختلف واجهات العتاد والعرض.
المطابقة عبر المتصفحات هي بطبيعتها عملية ذات ثقة أدنى، وتُعامَل على هذا الأساس في التقييم.