PowerScan
AR

بصمة canvas موضّحة: لماذا يرسم متصفحان متطابقان بكسلات مختلفة

بصمات المتصفح · القراءة: 6 دقيقة · بقلم PowerScan

الصورة: Unsplash

بصمة canvas هي التقنية التي سمع بها معظم الناس ويستطيع شرحها أقلهم. الفكرة بسيطة: اطلب من المتصفح أن يرسم شيئًا، واقرأ البكسلات، واحسب لها تجزئة. الجزء المثير هو لماذا تختلف البكسلات بين الأجهزة أصلًا.

الرسم

ينشئ نص البصمة البرمجي عنصر <canvas> خارج الشاشة، ويحصل على سياق ثنائي الأبعاد، ويرسم تسلسلًا قصيرًا: مستطيلًا مملوءًا، وبعض النص بخط مسمّى، وربما تدرجًا ومنحنى ورمزًا تعبيريًا. ثم يستدعي toDataURL() أو getImageData() لقراءة النتيجة، ويمرّر البايتات عبر دالة تجزئة. الناتج سلسلة قصيرة مثل 71ae464e. هذه السلسلة هي «تجزئة canvas».

لا شيء في الرسم سري، ولا شيء يُرسل إلى وحدة الرسوميات مما لا تستطيع الصفحة وصفه أصلًا. المعلومة في التصيير لا في التعليمات.

لماذا تختلف البكسلات

النص هو المصدر الرئيسي للتفاوت. تصيير الحرف يشمل ملف الخط الذي اختير فعلًا (تختلف الخطوط البديلة بين أنظمة التشغيل)، واستراتيجية التلميح وتنعيم الحواف (رمادي أو بكسل فرعي، وبأي ترتيب للبكسل الفرعي)، والراستر (FreeType أو DirectWrite أو CoreText أو راستر المتصفح نفسه)، وهل أجرت وحدة الرسوميات أم المعالج عملية التركيب. كل واحد من هذه ينتج بكسلات حواف مختلفة قليلًا. بكسل رمادي فاتح واحد عند حافة حرف «e» يكفي لتغيير التجزئة كليًا.

تضيف التدرجات والمنحنيات المزيد: تقرّب برامج تشغيل الرسوميات المختلفة ومسارات تنعيم الحواف المختلفة القيم الوسيطة بطرق مختلفة. والنتيجة أن جهازين بإصدار المتصفح نفسه لكن بوحدات رسوميات أو برامج تشغيل أو أنظمة تشغيل مختلفة ينتجان عادةً تجزئتين مختلفتين، بينما ينتج الجهاز نفسه التجزئة ذاتها في كل مرة. مستقرة ومتنوعة، وهذا بالضبط ما يريده المتتبّع.

ماذا تخبر التجزئة الموقع

في حد ذاتها، لا شيء عن هويتك. تخبر الموقع أن هذا المتصفح يصيّر هذا الرسم بهذه الطريقة، وهو أمر صحيح عن مجموعة ما من الأجهزة. حجم تلك المجموعة هو المهم. حاسوب محمول شائع برسوميات مدمجة وخطوط افتراضية يتشارك تجزئته مع كثيرين. أما الإعداد غير المعتاد فقد يقترب من الفرادة. ومع حجم الشاشة وقائمة اللغات ونص المصيِّر، تصبح حتى التجزئة الشائعة جزءًا من تركيبة نادرة.

ماذا تفعل المتصفحات حيال ذلك

يعيد Firefox، مع تفعيل مقاومة البصمة، canvas فارغًا أو عشوائيًا وقد يطلب إذنًا للوصول إلى canvas. يضيف Brave اضطرابات عشوائية صغيرة لقراءات canvas فتتغير التجزئة بين المواقع والجلسات. يحدّ Safari من الخطوط المرئية ويقيّد بعض عمليات القراءة. أما Chromium نفسه فلا يضيف ضوضاء إلى canvas؛ والمتصفحات المبنية عليه والتي تهدف إلى التحكم بالبصمات تفعل ذلك بترقيعاتها الخاصة، وتتفاوت جودة هذه الترقيعات.

التشويش ليس مجانيًا. تجزئة canvas تتغير في كل زيارة هي بحد ذاتها إشارة، لأن المتصفحات الحقيقية لا تفعل ذلك. الاستراتيجية الأفضل لملف تعريف متصفح معزول هي تجزئة معقولة ومتسقة، فتبدو كجهاز عادي واحد لا كجهاز مختلف كل ساعة.

ماذا يُظهر التشخيص

يرسم PowerScan صورته الصغيرة الخاصة ويعرض لك التجزئة. ولا يرفعها أبدًا؛ فالقيمة موجودة في تبويبك فقط. أعد التحميل وينبغي أن تكون التجزئة متطابقة. إن لم تكن، فثمة شيء في المتصفح يحقن تشويشًا، وهذا يستحق المعرفة قبل أن تعتمد على ذلك الملف.

جميع المقالات · شغّل الفحص