کوکیها در حال مرگ هستند. Browser Fingerprinting جای آنها را میگیرد — و مسدود کردنش بسیار سختتر است.

کوکیهای شخص ثالث بالاخره در حال بازنشسته شدن هستند. پس از سالها تأخیر، Google در سال ۲۰۲۴ به عنوان بخشی از ابتکار Privacy Sandbox شروع به غیرفعال کردن کوکیهای شخص ثالث برای کاربران Chrome کرد. Safari و Firefox هم قبلاً به طور پیشفرض آنها را مسدود کرده بودند. صنعت تبلیغات که سالها از این اتفاق خبر داشت، در حال ساختن جایگزین آن است. کاندیدای اصلی نه یک جایگزین حفظ حریم خصوصی، بلکه Fingerprinting است — و این نگرانیهای جدی را در میان محققان حریم خصوصی و رگولاتورها ایجاد کرده است.
Browser Fingerprinting چیست؟
Browser Fingerprint یک شناسه احتمالی است که از دهها ویژگی قابل مشاهده برای هر وبسایتی که بازدید میکنید، بدون رضایت شما و بدون تنظیم هیچ کوکی، ساخته میشود. این ویژگیها عبارتند از:
- User Agent String: نام مرورگر، نسخه، سیستم عامل
- رزولوشن صفحه و عمق رنگ
- تنظیمات منطقه زمانی و زبان
- فونتهای نصب شده: از طریق Canvas API Text Rendering پرسوجو میشوند
- WebGL Renderer و Vendor: مدل GPU و نسخه درایور
- AudioContext Fingerprint: پردازش صوتی غیرقابل شنیدن به دلیل تفاوتهای سختافزاری و درایور، خروجی ممیز شناور خاص دستگاه تولید میکند
- Canvas Fingerprint: یک عنصر Canvas رندر شده که برای کاربر نامرئی است، خروجی در سطح پیکسل تولید میکند که بسته به GPU، موتور رندر سیستم عامل و نسخه درایور متفاوت است
- رفتار پشته TCP/IP: Fingerprinting شبکه بر اساس نحوه مدیریت زمانبندی و ترتیب بستهها توسط سیستم عامل
ترکیب این ویژگیها — حتی اگر هیچ کدام به تنهایی منحصر به فرد نباشند — یک Fingerprint ایجاد میکند که برای اکثریت قریب به اتفاق کاربران یکتا است. پروژه Cover Your Tracks (قبلاً Panopticlick) بنیاد EFF به طور مداوم نشان داده که بیش از ۹۹٪ مرورگرها وقتی تعداد کافی ویژگی ترکیب میشود، Fingerprint یکتا دارند. این عدد با افزایش کاربرانی که از مرورگرهای مقاوم در برابر Fingerprinting استفاده میکنند کاهش مییابد، اما تکنیک اصلی همچنان در برابر جمعیت عمومی مؤثر است.
ترکیب Canvas و AudioContext
دو مورد از قابل اطمینانترین بردارهای Fingerprinting از این واقعیت سوءاستفاده میکنند که عملیات ریاضی یکسان در ترکیبهای سختافزاری مختلف خروجی ممیز شناور کمی متفاوت تولید میکند. مدل GPU، نسخه درایور و موتور رندر سیستم عامل همگی تغییرات ریز در نحوه محاسبه گرافیک و صدا ایجاد میکنند.
یک اسکریپت Canvas Fingerprint متن و اشکال را روی یک عنصر Canvas نامرئی رسم میکند، سپس مقادیر پیکسل را از طریق toDataURL() میخواند. مقادیر پیکسل برای یک پیکربندی خاص دستگاه قطعی هستند اما در دستگاههای مختلف متفاوتاند — گاهی در سطح زیرپیکسل، به دلیل تفاوت در نحوه پیادهسازی Anti-aliasing و Subpixel Rendering توسط درایورهای GPU.
یک AudioContext Fingerprint یک نوسانساز را از طریق یک کمپرسور اجرا میکند و مقادیر بافر خروجی پردازش شده را میخواند. رفتار گرد کردن ممیز شناور با پیادهسازی سختافزاری از حساب IEEE 754 متفاوت است. هر دوی اینها عوارض جانبی APIهای عادی مرورگر هستند که برای اهداف مشروع وجود دارند — Canvas برای رندر گرافیک، AudioContext برای پردازش صدا. هیچ پنجره مجوزی وجود ندارد. هیچ چیز ذخیره نمیشود. استخراج به طور نامرئی در طول بارگذاری عادی صفحه اتفاق میافتد.
چرا مسدود کردن Fingerprinting سختتر از کوکیها است؟
مسدود کردن کوکی از نظر معماری ساده است: مرورگر میتواند بدون شکستن هیچ استاندارد وب، از ذخیره یا ارسال کوکیهای شخص ثالث به طور کامل خودداری کند. Fingerprinting متفاوت است زیرا از عوارض جانبی قابل مشاهده APIهایی که اهداف مشروع دارند سوءاستفاده میکند.
اگر Canvas Readback را به طور کامل مسدود کنید (toDataURL() یک رشته خالی برمیگرداند)، برنامههای Canvas مشروع — ویرایشگرهای تصویر، ابزارهای طراحی، اپلیکیشنهای وب سنگین گرافیک — را میشکنید. اگر WebGL را مسدود کنید، برنامههای سه بعدی، بازیهای مبتنی بر مرورگر و نقشهها را میشکنید. اگر AudioContext را ساکت کنید، تولید صدای مبتنی بر وب را میشکنید. سطح Fingerprinting درون APIهایی که وب را کاربردی میکنند پخته شده است.
دفاع جایگزین — Randomization — نویز به مقادیر بازگردانده شده توسط این APIها اضافه میکند، بنابراین یک دستگاه مقادیر Fingerprint متفاوتی در سایتها یا نشستهای مختلف بازمیگرداند. اما این خود مشکل جدیدی ایجاد میکند: یک Canvas که هر بار متفاوت رندر میشود به خودی خود یک سیگنال است. سیستمهای Fingerprinting مبتنی بر Machine Learning میتوانند Randomization را تشخیص داده و مدلهای خود را تنظیم کنند.
مرورگرها چه میکنند؟
Firefox: حالت حفاظت از Fingerprinting (در حالت Enhanced Tracking Protection Strict در دسترس) خروجی Canvas، WebGL و AudioContext را به ازای هر سایت و هر نشست Randomize میکند. همچنین شمارش فونت را محدود کرده و دقت برخی APIهای زمانبندی که برای حملات Timing استفاده میشوند را کاهش میدهد.
Brave: تهاجمیترین حفاظت در برابر Fingerprinting در میان مرورگرهای اصلی. Brave Canvas، WebGL، AudioContext، لیست فونت، رزولوشن صفحه، Hardware Concurrency و Device Memory را به ازای هر سایت و هر نشست Randomize میکند. همچنین Battery API را به طور کامل مسدود کرده و دقت تایمر جاوااسکریپت را برای جلوگیری از Fingerprinting مبتنی بر زمان محدود میکند. رویکرد Brave این است که هر نمونه مرورگر را از نظر آماری مشابه به نظر برساند تا یکتا.
Safari: Intelligent Tracking Prevention عمدتاً بر ردیابی مبتنی بر کوکی و URL تمرکز دارد، اما برخی سطوح Fingerprinting را نیز محدود میکند. Safari شمارش فونت را به یک مجموعه پیشفرض سیستم محدود میکند، Canvas Readback را در زمینههای شخص ثالث محدود کرده و برخی APIهای شناسایی سختافزار را محدود میکند.
Chrome: Privacy Sandbox شامل کاهش User Agent است که همان رشته User Agent کوتاه شده را به همه کاربران Chrome ارسال میکند و نسخه سیستم عامل، نسخه جزئی Chrome و جزئیات شناسایی سختافزار را حذف میکند. Protected Audience API و Attribution Reporting API در Privacy Sandbox برای جایگزینی برخی عملکردهای کوکی بدون ردیابی بینسایتی طراحی شدهاند — اما منتقدان مستند کردهاند که خود APIهای Privacy Sandbox از طریق الگوهای زمانبندی و پاسخ قابل Fingerprinting هستند.
چشمانداز قانونی
GDPR Fingerprinting را به عنوان پردازش دادههای شخصی در نظر میگیرد هر جا که Fingerprint برای شناسایی یا ردیابی یک فرد استفاده شود — که تنها هدف عملی آن در زمینه تبلیغات است. دستورالعمل هیئت حفاظت از داده اروپا واضح است: Fingerprinting استفاده شده برای تبلیغات نیاز به رضایت صریح دارد، همانند کوکیها. تفاوت در اجراست.
پلتفرمهای استاندارد مدیریت رضایت — دیالوگهای رضایت کوکی که در هر وبسایت اروپایی میبینید — معمولاً به هیچ وجه Fingerprinting را پوشش نمیدهند. اکثر شرکتهای Ad Tech Fingerprinting را بدون رضایت صریح مورد نیاز قانون مستقر کردهاند، با این فرض ضمنی که رگولاتورها نمیتوانند آن را تشخیص دهند. برخلاف کوکیها که آثار قابل ردیابی در ذخیرهسازی مرورگر و درخواستهای شبکه باقی میگذارند، Fingerprinting هیچ شناسه ذخیره شدهای برای حسابرسی باقی نمیگذارد.
سازمان حفاظت از داده فرانسه CNIL در سال ۲۰۲۲ Google را ۱۵۰ میلیون یورو و Facebook را ۶۰ میلیون یورو به دلیل نقض رضایت کوکی جریمه کرد. اجرای Fingerprinting در مقیاس وسیع هنوز محقق نشده است، عمدتاً به این دلیل که تشخیص آن از نظر فنی دشوار است و نیاز به نظارت فعال بر رفتار جاوااسکریپت Ad Tech دارد. ICO بریتانیا و DSK آلمان دستورالعملهایی منتشر کردهاند که Fingerprinting مشمول الزامات قانون کوکی است، اما منابع اجرایی محدود است.
CPRA کالیفرنیا حقی را برای انصراف از اطلاعات شخصی استفاده شده برای تبلیغات تعریف میکند. دادههای Fingerprinting در تعریف CPRA از اطلاعات شخصی قرار میگیرد. آژانس حفاظت از حریم خصوصی کالیفرنیا در حال ساخت زیرساخت اجرایی است، اما پیچیدگی فنی تشخیص استقرارهای Fingerprinting در میان هزاران فروشنده Ad Tech قابل توجه است.
پویایی مسابقه تسلیحاتی
یک مقاله در سال ۲۰۲۴ توسط Laperdrix و همکاران، "Browser Fingerprinting: A Modern Survey"، مستند کرد که سیستمهای Fingerprinting مبتنی بر Machine Learning دقت بیش از ۹۵٪ در شناسایی مجدد کاربران در نشستهای مختلف حتی در برابر مرورگرهای با Randomization فعال دارند، با همبسته کردن چندین ویژگی که الگوهای نویز آنها همبسته است — برای مثال، نویز Canvas اضافه شده به کانال قرمز با نویز اضافه شده به کانال سبز به روشهای قابل پیشبینی همبسته است.
عدم تقارن اساسی: مدافعان Fingerprinting باید هر ویژگی را به طور مستقل غیرقابل پیشبینی و با هر ویژگی دیگر بیهمبسته کنند، که از نظر محاسباتی گران است و اغلب عملکرد مشروع را میشکند. مهاجمان Fingerprinting فقط باید یک ویژگی یا الگوی همبستگی پایدار پیدا کنند. موقعیت مدافع از نظر ساختاری ضعیفتر است.
کاربران چه میتوانند بکنند؟
از نظر عملی: Brave قویترین حفاظت در برابر Fingerprinting را در میان مرورگرهای主流 ارائه میدهد. Firefox در حالت Strict یک گام معنادار به جلو نسبت به Chrome است. استفاده از VPN مؤلفه شبکه Fingerprinting (آدرس IP، رفتار پشته TCP/IP) را ماسک میکند. غیرفعال کردن JavaScript به طور کامل Canvas و AudioContext Fingerprinting را مسدود میکند اما بیشتر وب مدرن را نیز میشکند.
نکته مهمتر این است که اقدامات متقابل فنی فردی ذاتاً واکنشی هستند. راه حل اساسی اجرای نظارتی قانون موجود است — GDPR قبلاً Fingerprinting بدون رضایت برای تبلیغات را ممنوع کرده است؛ متن CPRA نیز از همان تفسیر پشتیبانی میکند. شکاف ابهام قانونی نیست؛ بلکه ظرفیت تشخیص و منابع اجرایی است. سازمانهای حفاظت از داده که در زیرساخت حسابرسی Ad Tech سرمایهگذاری کنند — خزیدن در سایتها، نظارت بر رفتار جاوااسکریپت، مستندسازی استقرارهای Fingerprinting — میتوانند در مقیاس اجرا کنند. سوال این است که آیا این سرمایهگذاری قبل از آنکه Fingerprinting آنقدر عمیق در پشته Ad Tech جاسازی شود که اصلاح آن از نظر سیاسی غیرممکن باشد، محقق میشود.