ما هو Color Depth Fingerprinting؟ عمق الألوان وبصمة المتصفح
المتصفح والجهاز

ما هو Color Depth Fingerprinting؟ عمق الألوان وبصمة المتصفح

تعرّف على كيفية استخدام screen.colorDepth وHDR وعمق الألوان كإشارات في بصمة المتصفح لتمييز الأجهزة.

7 دقائق قراءة·

يقرأ Color depth fingerprinting (بصمة عمق الألوان) قيمتَي screen.colorDepth وscreen.pixelDepth — وهما خاصيتان في المتصفح تكشفان عن عدد البتات لكل بكسل في شاشتك — ثم يدمجهما في ملف تعريف المتصفح الفريد الخاص بك. يكفي سطر واحد من JavaScript، ولا تتطلب أي أذونات، وتعمل في كل متصفح منذ عام 2015. يمكنك رؤية ما يكشفه متصفحك الآن على whatsmy.fyi.

ملخص سريع

تُعيد screen.colorDepth عددًا صحيحًا — تقريبًا دائمًا 24 أو 32 — يصف عدد البتات التي تستخدمها شاشتك لتمثيل لون كل بكسل. منفردةً تحمل قدرًا متواضعًا من المعلومات (~0.87 بت)، لكن عند دمجها مع دقة الشاشة ونسبة البكسل وتوافر المعالج والمنطقة الزمنية وبيانات GPU، فإنها تُسهم في بصمة تُحقق دقة تتجاوز 99% في تحديد الأجهزة الفردية عبر ملايين الملفات الشخصية. وعلى خلاف ملفات تعريف الارتباط، لا يمكن حذفها أو حجبها أو مسحها مع سجل المتصفح.

ما هو Color Depth Fingerprinting؟

بصمة عمق الألوان هي أحد أساليب بصمة المتصفح — وهي جمع خصائص المتصفح والأجهزة للتعرف على الجهاز دون تخزين أي شيء عليه. يكشف كل متصفح عن خاصيتين مرتبطتين ارتباطًا وثيقًا عبر واجهة Screen:

  • screen.colorDepth — عدد البتات المستخدمة لتمثيل قيمة لون واحدة في مخزن ألوان جهاز الإخراج (لوحة الشاشة نفسها).
  • screen.pixelDepth — عمق بت الشاشة. في جميع المتصفحات الحديثة، تُعيد القيمة ذاتها التي تُعيدها colorDepth وهما فعليًا متطابقتان.

كلتا الخاصيتين جزء من مواصفات CSSOM View Module ومتاحتان منذ يوليو 2015. وهما للقراءة فقط، ولا تتطلبان أي إيماءة من المستخدم أو موجه إذن، ويمكن الوصول إليهما في كل تحميل للصفحة. وعلى عكس canvas fingerprinting أو WebGL fingerprinting التي تتطلب عمليات رسم معقدة، فإن قراءة عمق الألوان تتم فورًا وتنجح دائمًا.

كيف تعمل بصمة عمق الألوان؟

يقرأ نص البصمة القيمة في سطر واحد، ثم يجمعها مع عشرات السمات الأخرى لبناء ملف تعريف مركب للجهاز.

// Reading color depth — one line, no permissions, always succeeds
const colorDepth = screen.colorDepth;   // e.g. 24 or 32
const pixelDepth = screen.pixelDepth;   // identical on modern browsers

// Common values returned across real devices
// 24 — standard True Color (16.7 million colors)
// 30 — Deep Color / HDR panels (1 billion colors)
// 32 — True Color + 8-bit alpha channel (common on Windows)

// How a fingerprinter combines it with other screen signals
const screenProfile = {
  colorDepth: screen.colorDepth,
  pixelDepth: screen.pixelDepth,
  width: screen.width,
  height: screen.height,
  availWidth: screen.availWidth,
  availHeight: screen.availHeight,
  devicePixelRatio: window.devicePixelRatio,
};
// This seven-value object produces millions of unique combinations
// across real-world device populations.

تحددها الأجهزة المادية لشاشتك وإعدادات نظام التشغيل. تُبلّغ شاشة 1080p العادية عن 24؛ ويُبلّغ جهاز Windows مع مشغل شاشة 32 بت عن 32؛ وقد تُبلّغ لوحة قادرة على HDR عن 30. ولأن هذه القيم مشتقة من الأجهزة، فهي ثابتة عبر كل جلسة متصفح وكل شبكة وكل نافذة خاصة على الجهاز نفسه.

لماذا colorDepth وpixelDepth متطابقتان تقريبًا دائمًا

تاريخيًا، كانت colorDepth تشير إلى مكون اللون فقط (قنوات الأحمر والأخضر والأزرق)، بينما كانت pixelDepth تشمل أي بتات إضافية كقناة ألفا. من الناحية العملية، تقاربت جميع تطبيقات المتصفحات الرئيسية على إعادة العدد الصحيح ذاته لكليهما. تسمح مواصفة CSSOM رسميًا بأي قيمة unsigned long، لكن التطبيقات الحقيقية تُعيد 24 أو 32 للغالبية العظمى من شاشات سطح المكتب و24 للأجهزة المحمولة.

ظاهرة توحيد المتصفحات

يُعيد كل من Firefox وSafari 24 بصرف النظر عن عمق الأجهزة الفعلي، حتى على الشاشات القادرة على Deep Color بعمق 30 بت. بينما يُبلّغ Chrome عن القيمة الحقيقية للأجهزة. هذا يعني أن مستخدم Chrome على شاشة Windows بعمق 32 بت ومستخدم Firefox على أجهزة متطابقة يُبلّغان عن قيم مختلفة — وهو فارق خفي يدوّنه نظام البصمة جنبًا إلى جنب مع سلسلة وكيل المستخدم للمتصفح.

إحصاءات إشارة عمق الألوان والانتروبيا

عمق الألوان إشارة بصمة "ضعيفة" بمفردها — نطاق القيم المحتملة ضيق ومعظم المستخدمين يشتركون في القيمة ذاتها. قوتها تكمن في التركيب.

الإشارة / النتيجةالقيمةالمصدر
الانتروبيا الفردية لـ screen.colorDepth~0.87 بتبحث Fingerprint.com
القيمة السائدة عبر الأجهزة الحديثة24 بت (True Color)بيانات توافق CSSOM / المتصفح، 2025
تفرد البصمة المجمعة (33+ إشارة تشمل عمق الألوان)> 99%بحث Fingerprint.com
المتصفحات ذات البصمات الفريدة (مجموعة بيانات EFF، أكثر من مليون عينة)83.6%EFF Cover Your Tracks
القيمة المُبلَّغ عنها في Firefox / Safari (بصرف النظر عن الأجهزة)دائمًا 24بيانات توافق MDN للمتصفح، 2025
القيمة المُبلَّغ عنها في Chrome على مشغلات شاشة Windows 32 بت32BrowserLeaks

الانتروبيا الفردية المنخفضة هي سبب عدم اعتماد نصوص البصمة على عمق الألوان وحده. بدلًا من ذلك، تُطبق منصات مثل Fingerprint.com طبقات من دقة الشاشة ونسبة بكسل الجهاز وتوافر المعالج (أنوية CPU) وذاكرة الجهاز والمنطقة الزمنية وقائمة اللغات والخطوط المثبتة وهاش canvas وبيانات WebGL GPU — ما يُنتج معرّفًا مركبًا فريدًا عمليًا عبر مجتمعات من عشرات الملايين من الأجهزة.

من يستخدم بيانات عمق الألوان في الواقع؟

منصات البصمة التجارية

Fingerprint.com (المعروفة سابقًا بـ FingerprintJS) هي أوسع منصة بصمة تجارية انتشارًا. توثيقها العام يُدرج صراحةً screen.colorDepth ضمن أكثر من 33 إشارة تُجمع في كل بصمة. تُستخدم في كشف الاحتيال ومنع الاستيلاء على الحسابات وكشف الروبوتات وأمان المدفوعات من قِبل آلاف مواقع التجارة الإلكترونية والبنوك.

أدوات أبحاث الخصوصية

تشمل Cover Your Tracks من EFF دقة الشاشة وعمق الألوان كأحد أبعاد البصمة المقاسة. بعد اختبار أكثر من مليون متصفح، خلص EFF إلى أن 83.6% من المتصفحات تحمل بصمة فريدة تمامًا — وهو رقم يعتمد جزئيًا على تنوع عمق الألوان عبر مجموعة البيانات. BrowserLeaks كذلك يشمل عمق الألوان في اختبار البصمة الشامل المؤلف من أكثر من 40 إشارة.

تقنية الإعلانات والتتبع عبر المواقع

تستخدم شبكات الإعلانات البصمات متعددة الإشارات — بما فيها عمق الألوان — لإعادة تحديد هوية المستخدمين بعد حذف ملفات تعريف الارتباط، عبر جلسات التصفح الخاص، وعبر متصفحات مختلفة على الجهاز ذاته. أصبح هذا الأسلوب أكثر قيمةً مع إيقاف المتصفحات الكبرى لملفات تعريف الارتباط من طرف ثالث: يمكن لبصمة تشمل عمق الألوان ودقة الشاشة وبيانات GPU أن تستمر عبر إعادة تعيين ملفات تعريف الارتباط.

تطبيق حواجز الدفع والوصول المحسوب

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

عمق الألوان مقابل إشارات الشاشة المرتبطة

عمق الألوان لا يوجد في عزلة — يجمعه أصحاب البصمة مع مجموعة من إشارات الشاشة المرتبطة. فهم الفوارق يُوضح سبب إسهام كل منها في الانتروبيا:

  • screen.colorDepth / screen.pixelDepth: بتات لكل بكسل على الشاشة المادية. مشتق من الأجهزة، ثابت، تقريبًا دائمًا 24 أو 32.
  • screen.width / screen.height: أبعاد البكسل المادية للشاشة. عند دمجهما مع عمق الألوان، تُنشئان فئة جهاز أضيق. راجع دليل بصمة الشاشة.
  • window.devicePixelRatio: نسبة بكسلات CSS إلى البكسلات المادية. تُعيد شاشات High-DPI (Retina) 2 أو 3، مما يضيف بُعدًا مميزًا آخر.
  • رسم Canvas: يؤثر عمق ألوان الشاشة على كيفية رسم عناصر canvas للتدرجات والظلال، لذا يمكن أن يُسهم تباين عمق الألوان في تباين بصمة canvas. راجع بصمة canvas.

كيف تحمي نفسك من بصمة عمق الألوان

لأن عمق الألوان خاصية أجهزة تُقرأ مباشرة عبر browser API، تتطلب الحماية إما انتحال استجابة API أو توحيدها عبر جميع المستخدمين. هذه الخيارات مرتبة من الأكثر فاعلية إلى الأكثر عملية للاستخدام اليومي:

  • Firefox مع privacy.resistFingerprinting (الأقوى): عند تعيين هذه الخاصية على true في about:config، يُبلّغ Firefox دائمًا عن 24 لكل من colorDepth وpixelDepth، بصرف النظر عن الأجهزة الفعلية. هذا يجعل متصفحك لا يمكن تمييزه عن كل مستخدم Firefox آخر بالإعداد ذاته — الهدف هو "الاختباء في الحشد". قد تتصرف بعض المواقع التي تعتمد على رسم خاص بالشاشة بشكل غير متوقع.
  • متصفح Tor (أقصى إخفاء للهوية): يبني متصفح Tor على مقاومة بصمة Firefox ويوحّد جميع قيم الشاشة — بما فيها عمق الألوان — بحيث يبدو كل مستخدم Tor متطابقًا. هذه أقوى حماية متاحة لكنها تأتي بمفاضلات في السرعة من شبكة Tor.
  • متصفح Brave (موصى به للاستخدام اليومي): لا يُعشوش نظام Farbling في Brave عمقَ الألوان (وهو عدد صحيح منخفض الانتروبيا)، لكنه يُعشوش بعدوانية الإشارات الأعلى انتروبيا كمخرجات canvas وWebGL، مما يُقلل بشكل كبير من دقة البصمة الإجمالية حتى لو ظل عمق الألوان دقيقًا.
  • إضافات المتصفح المركزة على الخصوصية: يمكن تهيئة إضافات كـ CanvasBlocker لاعتراض استدعاءات Screen API وإعادة قيم مزيّفة، لكن هذا قد يخلق تناقضات قابلة للكشف — على سبيل المثال، الإبلاغ عن عمق ألوان 24 بت على شاشة يُشفّر مخرجها على canvas معلومات ألوان 32 بت.
  • فهم حدود التدابير الجزئية: إخفاء عمق الألوان وحده له تأثير خصوصية ضئيل لأن القيمة منخفضة الانتروبيا ويشترك فيها كثيرون. الحماية الفعّالة تتطلب تغطية المجموعة الكاملة من إشارات البصمة في وقت واحد — لا مجرد خصائص فردية. تحقق من مدى قابلية متصفحك الحالي للتعرف على whatsmy.fyi.

الأسئلة الشائعة

ما القيم التي تُعيدها screen.colorDepth؟

من الناحية العملية، القيم التي ستراها عبر الأجهزة الحقيقية هي 24 (True Color — المعيار الشامل منذ أواخر التسعينيات، يدعم 16.7 مليون لون)، 32 (True Color مع قناة ألفا 8 بت، شائعة على Windows مع مشغلات شاشة معينة)، وأحيانًا 30 (Deep Color / لوحات HDR تدعم 1.07 مليار لون). قيم 8 أو 16 بت أصبحت فعليًا مهجورة على الأجهزة الحديثة.

هل screen.colorDepth مختلفة عن screen.pixelDepth؟

تقنيًا، تصف colorDepth عمق قناة إخراج الألوان بينما تشمل pixelDepth أي بتات إضافية (كألفا). في كل تطبيق متصفح حقيقي اليوم، مع ذلك، تُعيد كلتاهما العدد الصحيح ذاته. الفرق موجود فقط في مواصفة W3C؛ من الناحية العملية هما متطابقتان، وعادةً تقرأ نصوص البصمة كلتيهما للتأكد من الاتساق.

هل تعمل بصمة عمق الألوان في وضع التصفح الخاص / التخفي؟

نعم. يمنع التصفح الخاص حفظ ملفات تعريف الارتباط والتاريخ وبيانات النماذج على القرص — لكنه لا يُغير أجهزة شاشتك أو القيم التي تُعيدها خصائص Screen API. تكون screen.colorDepth الخاصة بك متطابقة في وضع التخفي وفي نافذة متصفح عادية. فقط المتصفحات ذات توحيد البصمة النشطة (Firefox مع privacy.resistFingerprinting، متصفح Tor) تُبلّغ عن قيمة مختلفة.

كم تُسهم عمق الألوان في تفرد البصمة؟

بمفردها، تُسهم عمق الألوان بحوالي 0.87 بت من الانتروبيا — إسهام متواضع، لأن معظم الأجهزة الحديثة تشترك في القيمة ذاتها 24 بت أو 32 بت. لكن التفرد ليس هدفًا للإشارات الضعيفة الفردية: تجمع أنظمة البصمة 33 إشارة أو أكثر، وكل إشارة ضعيفة إضافية تُضيّق مساحة التعرف. عمق الألوان أكثر فائدة كإشارة تمييز بين الأجهزة التي تشترك في الدقة والمنطقة الزمنية وGPU لكن تختلف في تهيئة الشاشة.

هل يُغير VPN بصمة عمق الألواني الخاصة بي؟

لا. يُغير VPN عنوان IP المرئي ويُوجّه حركة مرورك عبر نفق مشفر، لكن ليس له أي تأثير على ما يُبلّغ عنه متصفحك بخصوص screen.colorDepth. تُقرأ تلك القيمة مباشرة من تهيئة الرسومات لنظام تشغيلك، وهي غير مرتبطة بتوجيه الشبكة. تحقق مما يُخفيه VPN الخاص بك وما لا يُخفيه على whatsmy.fyi.

هل يمكن للمواقع اكتشاف ما إذا كنت أنتحل screen.colorDepth؟

يمكن لأنظمة البصمة المتطورة اكتشاف التناقضات. إذا أبلّغ متصفحك عن عمق ألوان 24 بت لكن بصمة canvas الخاصة بك تُشفّر أنماط ألوان متسقة مع أجهزة 32 بت، فإن التناقض نفسه يصبح إشارة — وهو ما يجعلك بشكل ساخر أكثر قابلية للتعرف مما لو أبلّغت عن القيمة الحقيقية. الانتحال الفعّال يتطلب قيمًا مزيّفة متسقة عبر جميع الإشارات المرتبطة في وقت واحد، وهذا هو سبب كون التوحيد على مستوى المتصفح (Tor، resistFingerprinting في Firefox) أكثر متانة من الترقيع المعتمد على الإضافات.

أي المتصفحات توحّد screen.colorDepth للخصوصية؟

يُبلّغ Firefox مع privacy.resistFingerprinting = true عن 24 بصرف النظر عن الأجهزة. متصفح Tor (المبني على Firefox) يفعل الشيء ذاته. يُبلّغ Safari أيضًا دائمًا عن 24 كأثر جانبي لتطبيقه، لا كإجراء خصوصية صريح. يُبلّغ Chrome عن قيمة الأجهزة الحقيقية. لا يُحدد Brave عمق الألوان على وجه الخصوص لكنه يطبق Farbling على الإشارات ذات الانتروبيا الأعلى في مجموعة حماية بصمته.

مقالات ذات صلة

تحقق من عنوان IP وموقعك ودرجة الخصوصية — فوراً.

صفر سجلات. صفر تتبع. صفر APIs خارجية.

ابدأ الفحص الآن →

مقالات ذات صلة

ما هو Color Depth Fingerprinting؟ عمق الألوان وبصمة المتصفح | whatsmy.fyi