أي الإشارات تصمد أمام تحديثات المتصفح؟ تحليل للثبات
حللنا ثبات الإشارات عبر 50 تحديثًا لمتصفحات Chrome وFirefox وSafari. إليك أكثر إشارات البصمة ثباتًا وأقلها.
تحديثات المتصفح هي العدو الطبيعي لبصمة الجهاز. فكل 4 إلى 6 أسابيع، تطرح Chrome وFirefox وSafari إصدارات جديدة قد تغيّر قيم الإشارات — تغيير سلاسل وكيل المستخدم، وتعديل سلوك العرض (rendering)، وإضافة واجهات برمجية (APIs) أو إزالتها. وكما ورد في إرشادات W3C بشأن البصمة، تعمل المتصفحات بنشاط على تقليص المساحة القابلة لأخذ البصمة. وبالنسبة لأنظمة البصمة التي تعامل جميع الإشارات على قدم المساواة، فإن كل تحديث هو كسر محتمَل للهوية لدى ملايين الزوّار.
أجرينا تحليلًا شاملًا للثبات عبر 50 تحديث متصفح للإجابة عن السؤال الجوهري: أي الإشارات يمكنك الاعتماد عليها، وأيها سيخذلك؟
المنهجية
جهّزنا 200 جهازًا ماديًا عبر 5 أنظمة تشغيل (Windows 10 وWindows 11 وmacOS Ventura وmacOS Sonoma وUbuntu 22.04) و3 متصفحات (Chrome وFirefox وSafari). وجمع كل جهاز الإشارات آليًا يوميًا على مدى 14 شهرًا، مغطيًا 50 تحديثًا رئيسيًا لإصدارات المتصفحات: 24 إصدار Chrome و16 إصدار Firefox و10 إصدارات Safari.
بالنسبة لكل إشارة، تتبّعنا: عدد مرات تغيّر القيمة، وما إذا كان التغيّر مرتبطًا بتحديث متصفح أو بعامل خارجي (تحديث تعريف، ترقيع نظام التشغيل)، ومقدار التغيّر (استبدال كامل للقيمة مقابل تباين طفيف).
مستويات الثبات
المستوى 1: صلب كالصخر (ثبات 99.5%+)
هذه الإشارات لم تتغيّر إلا عند تغيّر العتاد المادي أو تحديث التعريفات — ولم تتغيّر قط بسبب تحديثات المتصفح وحدها.
تزامن العتاد (navigator.hardwareConcurrency): ثابت بنسبة 99.97%. تغيّر على جهاز واحد فقط تلقّى تحديث BIOS أثّر في الترابط الفائق (hyperthreading). ذاكرة الجهاز (navigator.deviceMemory): ثابتة بنسبة 99.98%. رُقّي جهاز واحد من 8 غيغابايت إلى 16 غيغابايت خلال الدراسة. دقة الشاشة وعمق الألوان: ثابت بنسبة 99.92%. ارتبطت التغيّرات بتبديل الشاشات وأحداث محطة الإرساء (docking station). أقصى حجم نسيج في WebGL (WebGL Max Texture Size): ثابت بنسبة 99.99%. صفر تغيّرات متعلقة بالمتصفح. تغيّر مرة واحدة على جهاز تلقّى تحديث تعريف NVIDIA. معدل أخذ عينات الصوت (Audio Sample Rate): ثابت بنسبة 100%. صفر تغيّرات عبر جميع الأجهزة الـ200 والتحديثات الـ50. هذه هي الإشارة الأكثر ثباتًا على الإطلاق بين ما نتتبعه.
المستوى 2: ثابت في الغالب (95-99.5%)
هذه الإشارات تتغيّر أحيانًا مع تحديثات المتصفح لكنها تبقى ثابتة عبر معظم الإصدارات.
بصمة Canvas ثنائية الأبعاد (Canvas 2D): ثابتة بنسبة 97.8%. حدثت تغيّرات في Chrome 118 (تحديث محرك عرض الخطوط)، وChrome 122 (تغيير في التنعيم على مستوى البكسل الفرعي)، وFirefox 121 (تحديث تشكيل النصوص). أثّر كل تغيّر في جميع الأجهزة على ذلك المتصفح في آنٍ واحد — وهو نمط قابل للكشف نعالجه بمطابقة واعية بإصدار المتصفح. سلسلة عارض WebGL (WebGL Renderer String): ثابتة بنسبة 98.1%. يعيد Chrome أحيانًا تنسيق سلسلة غلاف ANGLE. تبقى معلومات وحدة معالجة الرسوميات الأساسية دون تغيير، لكن التمثيل النصي يتبدّل. نحن نحلّل طراز وحدة معالجة الرسوميات من السلسلة بدلًا من تجزئة السلسلة مباشرة. قائمة الخطوط (Font List): ثابتة بنسبة 96.4%. تضيف تحديثات نظام التشغيل أحيانًا خطوط النظام أو تزيلها. نادرًا ما تؤثر تحديثات المتصفح في تعداد الخطوط، لكن Chrome 120 غيّر ترتيب الإبلاغ عن الخطوط، مما كسر البصمة القائمة على التجزئة للخطوط. نحن نستخدم المقارنة القائمة على المجموعات (تشابه المجموعات) بدلًا من التجزئة المرتَّبة.
المستوى 3: ثبات معتدل (80-95%)
هذه الإشارات تتغيّر بتواتر ملحوظ لكنها لا تزال توفّر قيمة تعريف مفيدة بين التغيّرات.
الإضافات المثبَّتة (Installed Plugins): ثابتة بنسبة 89.2%. أدى استمرار Chrome في تقليص مصفوفة الإضافات (navigator.plugins) إلى إزالة رؤية الإضافات كليًا في بعض السياقات. حافظ Firefox على تعداد الإضافات. وقيّده Safari بمجموعة قياسية. كشف خصائص CSS (CSS Feature Detection): ثابت بنسبة 91.7%. تُضاف خصائص CSS جديدة مع كل إصدار متصفح، مما يغيّر مجموعة الخصائص التي يكشفها فحص CSS لدينا. نحن نمنح الخصائص الجديدة وزنًا أقل من الراسخة للحدّ من الأثر. دعم اللمس (Touch Support): ثابت بنسبة 93.1%. تغيّر متصفحات سطح المكتب أحيانًا دعم اللمس المُبلَّغ عنه عندما يضبط Chrome كشف محاكاة الأجهزة لديه.
المستوى 4: متقلبة (<80%)
هذه الإشارات تتغيّر بتواتر ولا ينبغي أن تكون أبدًا مرتكزات تعريف أساسية.
سلسلة وكيل المستخدم (User Agent String): ثابتة بنسبة 42.3%. غيّرت مبادرة Chrome لتقليص وكيل المستخدم تنسيق السلسلة عدة مرات. ويحدّث Firefox رقم الإصدار مع كل إصدار. ويعدّل Safari سلسلة إصدار WebKit بانتظام. كانت هذه العمود الفقري لأنظمة البصمة البسيطة — وتلك الأنظمة معطّلة الآن. نوع الاتصال (navigator.connection): ثابت بنسبة 68.4%. يتغيّر مع تبديل الشبكة (من WiFi إلى الخلوي، أو شبكات WiFi مختلفة). واجهة البطارية (Battery API): ثابتة بنسبة 71.2%. تتباين حسب حالة الشحن وتوافر واجهة المتصفح البرمجية. قيّد Chrome الوصول إلى واجهة البطارية في بعض السياقات. مساحة الشاشة المتاحة (Available Screen Area): ثابتة بنسبة 76.8%. تتغيّر مع ظهور شريط المهام وإدارة النوافذ وتعديلات تحجيم العرض.
مقارنة بين المتصفحات
Chrome هو المتصفح الأكثر تقلبًا من حيث ثبات البصمة. تعمل Google بنشاط على تقليل قابلية أخذ البصمة، مما يعني أن تحديثات Chrome تكسر إشارات أكثر من تحديثات Firefox أو Safari. على مدى فترة دراستنا:
تسبّب Chrome في تغيّرات الإشارات في 3.2% من جلسات الجمع. وتسبّب Firefox في تغيّرات الإشارات في 1.8% من جلسات الجمع. وتسبّب Safari في تغيّرات الإشارات في 1.1% من جلسات الجمع.
يعود التقلب الأدنى لدى Safari جزئيًا إلى أن Apple تطرح إصدارات أقل في السنة، وجزئيًا إلى أن التدابير المضادة للبصمة في Safari (منع التتبع الذكي، Intelligent Tracking Prevention) تعمل على مستوى الشبكة بدلًا من تغيير القيم التي تعيدها الواجهات البرمجية.
توصيات عملية
بناءً على هذا التحليل، نقدّم خمس توصيات لأنظمة البصمة الإنتاجية:
لا تستخدم أبدًا وكيل المستخدم مرتكزًا للتعريف. فهو أقل الإشارات المميِّزة ثباتًا. استخدمه لكشف المتصفح ولتقييم الثقة من المستوى 3 فقط.
افصل إشارات العتاد عن الإشارات البرمجية. إشارات العتاد (وحدة معالجة الرسوميات، الشاشة، الصوت) أكثر ثباتًا بمقدار 40 ضعفًا من الإشارات البرمجية (وكيل المستخدم، الإضافات، خصائص CSS). رجّحها وفقًا لذلك.
استخدم المقارنة القائمة على المجموعات للإشارات القابلة للتعداد. ينبغي مقارنة قوائم الخطوط وقوائم الإضافات ونتائج كشف الخصائص باستخدام تشابه المجموعات أو مقاييس مسافة المجموعات المماثلة، لا التجزئة المرتَّبة. فتغيّرات الترتيب شائعة؛ أما تغيّرات المحتوى فنادرة.
طبّق المطابقة الواعية بإصدار المتصفح. فعندما يغيّر Chrome 118 عرض canvas لجميع مستخدمي Chrome في آنٍ واحد، ينبغي لنظامك أن يدرك ذلك بوصفه تحديث متصفح، لا كسرًا جماعيًا للهوية. تتبّع إصدارات المتصفحات وطبّق تفاوتات مطابقة خاصة بكل إصدار.
راقب ثبات الإشارات باستمرار. تستند نسب الثبات لدينا إلى بيانات تاريخية. وقد تغيّر تحديثات المتصفح المستقبلية ملف الثبات لأي إشارة. نحن نجري مراقبة مستمرة ونعدّل أوزان الإشارات تلقائيًا عند تغيّر الثبات.
الأثر على tracio.ai
تعكس بنية التعريف متعددة المستويات V3 لدينا هذا التحليل للثبات بشكل مباشر. إشارات المستوى 1 (العتاد) تحمل وزنًا بنسبة 60%. إشارات المستوى 2 (العرض، الخطوط) تحمل وزنًا بنسبة 30%. إشارات المستوى 3 (بيانات المتصفح الوصفية، الاتصال) تحمل وزنًا بنسبة 10%. يضمن هذا الترجيح أن تقود الإشارات الأكثر ثباتًا عملية التعريف، بينما تسهم الإشارات المتقلبة في تقييم الثقة دون التسبب في كسر الهوية.
والنتيجة: ثبات في التعريف بنسبة 99.5% عبر 50 تحديث متصفح، مقابل 69% للأنظمة التي تستخدم البصمة المسطَّحة القائمة على التجزئة. والفارق ليس براعة خوارزمية — بل تحليلًا تجريبيًا للإشارات مطبّقًا على قرارات معمارية.