رفتن به محتوای اصلی
توضیح کوهستانحریم خصوصی دیجیتالتوضیح و تحلیل۱۱ شهریور ۱۴۰۵، ۱۱:۲۶· 6 دقیقه مطالعه· در فناوری

مکانیسم‌های اثرانگشت‌گیری مرورگر: چگونه APIهای Canvas، WebGL و Audio یک هویت دیجیتال منحصربه‌فرد می‌سازند؟

ردیابی مدرن وب دیگر به کوکی‌ها وابسته نیست. در عوض، اسکریپت‌ها از ویژگی‌های منحصربه‌فرد رندر سخت‌افزاری دستگاه شما استفاده می‌کنند تا یک شناسه دائمی و نامرئی ایجاد کنند.

به قلم غزل بختیاری

مدافعان حریم خصوصی 35%تیم‌های ضد کلاهبرداری و امنیت 35%مهندسان مرورگر 30%
مدافعان حریم خصوصی
استدلال می‌کنند که اثرانگشت‌گیری نقض غیرتوافقی اعتماد کاربر است که کنترل‌های حریم خصوصی تثبیت شده را دور می‌زند.
تیم‌های ضد کلاهبرداری و امنیت
اثرانگشت‌گیری را ابزاری ضروری و بدون اصطکاک برای شناسایی بات‌نت‌ها، جلوگیری از تصاحب حساب‌ها و متوقف کردن کلاهبرداری‌های پرداختی می‌دانند.
مهندسان مرورگر
بر روی ریسمان باریک فنی تمرکز می‌کنند تا بردارهای ردیابی را بدون شکستن APIهای قانونی وب که برنامه‌های مدرن را قدرت می‌بخشند، کاهش دهند.

اصطلاحات کلیدی

Browser Fingerprinting
عمل شناسایی یک کاربر خاص با تجزیه و تحلیل پیکربندی سخت‌افزاری و نرم‌افزاری منحصربه‌فرد دستگاه او، به جای استفاده از کوکی ذخیره شده.
HTML5 Canvas
یک استاندارد وب که به مرورگرها اجازه می‌دهد گرافیک و متن دوبعدی را به صورت پویا با استفاده از جاوا اسکریپت ترسیم کنند.
WebGL
یک API جاوا اسکریپت برای رندر گرافیک‌های تعاملی ۲ بعدی و ۳ بعدی در هر مرورگر وب سازگار، بدون استفاده از افزونه‌ها.
Entropy
در نظریه اطلاعات، معیاری برای سنجش میزان اطلاعات منحصربه‌فرد و شناسایی‌کننده‌ای که یک نقطه داده یا سیگنال خاص فراهم می‌کند.
Anti-aliasing
یک تکنیک گرافیکی که برای صاف کردن لبه‌های دندانه‌دار در خطوط منحنی و متن استفاده می‌شود و توسط کارت‌های گرافیک مختلف به صورت متفاوتی اجرا می‌گردد.
AudioContext
یک رابط API وب که نمایانگر یک گراف پردازش صوتی است و توسط ردیاب‌ها برای اندازه‌گیری نحوه پردازش ریاضی صدا توسط دستگاه استفاده می‌شود.

نکات کلیدی

  1. اثرانگشت‌گیری مرورگر، کاربران را با اندازه‌گیری تفاوت‌های میکروسکوپی در نحوه رندر گرافیک و صدا توسط سخت‌افزارشان شناسایی می‌کند.
  2. پاک کردن کوکی‌ها، استفاده از حالت ناشناس یا اجرای VPN در برابر اثرانگشت‌گیری در سطح سخت‌افزار محافظت نمی‌کند.
  3. اثرانگشت‌گیری Canvas مرورگر را مجبور می‌کند تا متن پنهان را ترسیم کند و ضد پله‌پله‌سازی منحصربه‌فرد اعمال شده توسط GPU را اندازه‌گیری کند.
  4. Web Audio API می‌تواند دستگاه‌ها را بر اساس نحوه پردازش ریاضی یک موج سینوسی تولید شده توسط سیستم عاملشان شناسایی کند.
  5. مرورگرهای حریم خصوصی با تزریق نویز رمزنگاری تصادفی به خروجی APIها، با اثرانگشت‌گیری مبارزه می‌کنند و از ایجاد یک شناسه پایدار جلوگیری می‌کنند.

ماندگارترین افسانه در حوزه حریم خصوصی دیجیتال، این باور است که «حالت ناشناس» (Incognito Mode) شما را نامرئی می‌کند. بیش از یک دهه است که به کاربران آموزش داده شده تا کوکی‌های خود را پاک کنند، ردیاب‌های شخص ثالث را مسدود کنند و فرض کنند که سوابقشان پاک شده است. بازاریابی VPNهای مصرف‌کننده به شدت بر پنهان‌سازی آدرس IP به عنوان سپر نهایی تأکید می‌کند. اما ردیابی مدرن نه نیازی به باقی گذاشتن فایلی روی رایانه شما دارد و نه به آدرس IP شما اهمیت می‌دهد. در عوض، از مرورگر شما می‌خواهد که یک تصویر بکشد.[3]

این تکنیک به عنوان اثرانگشت‌گیری مرورگر (Browser Fingerprinting) شناخته می‌شود. به جای ذخیره یک شناسه وضعیتی مانند کوکی، یک وب‌سایت مجموعه‌ای از وظایف ریاضی و رندرینگ را در پس‌زمینه اجرا می‌کند. از آنجا که هر رایانه ترکیبی کمی متفاوت از سخت‌افزار، درایورهای گرافیکی، سیستم عامل و فونت‌های نصب شده دارد، خروجی این وظایف در سطح میکروسکوپی متفاوت است. با اندازه‌گیری این تفاوت‌های جزئی، یک ردیاب می‌تواند یک هش منحصربه‌فرد تولید کند که یک دستگاه خاص را با دقت خیره‌کننده‌ای شناسایی می‌کند.[2]

این قابلیت کاملاً متکی بر APIهای استاندارد وب است که برای تعاملی و غنی‌سازی اینترنت طراحی شده‌اند. APIهای HTML۵ Canvas، WebGL و Web Audio API برای فعال کردن بازی‌های مبتنی بر مرورگر، بصری‌سازی پیچیده داده‌ها و رسانه‌های پویا ساخته شدند. با این حال، همان مکانیسم‌های دقیقی که این APIها را قدرتمند می‌سازند، آن‌ها را برای ماشینی که آن‌ها را اجرا می‌کند، بسیار خاص و منحصر به فرد نیز می‌سازند.[1][2]

گسترده‌ترین تکنیک مورد استفاده، اثرانگشت‌گیری Canvas است. هنگامی که از صفحه‌ای که از این روش استفاده می‌کند بازدید می‌کنید، یک اسکریپت پنهان به مرورگر شما دستور می‌دهد تا یک رشته متنی و اشکال پیچیده و خاص را روی یک عنصر نامرئی HTML۵ Canvas ترسیم کند. این اسکریپت معمولاً ترکیبی از رنگ‌ها، هندسه‌های همپوشان و فونت‌های استاندارد سیستم را به کار می‌برد.[1]

نکته حیاتی اینجاست که استاندارد وب دقیقاً دیکته نمی‌کند که یک پیکسل هنگام رندر کردن یک منحنی یا لبه فونت چگونه باید رنگ‌آمیزی شود. این وظیفه به سیستم عامل و واحد پردازش گرافیکی (GPU) دستگاه واگذار می‌شود. یک دستگاه ویندوزی با کارت گرافیک Nvidia، ضد پله‌پله‌سازی (anti-aliasing یا صاف کردن لبه‌های دندانه‌دار) را متفاوت از یک مک‌بوک با تراشه Apple Silicon اعمال می‌کند. حتی دو لپ‌تاپ کاملاً یکسان نیز ممکن است متن را متفاوت رندر کنند اگر یکی از آن‌ها درایور گرافیکی کمی قدیمی‌تر داشته باشد.[1]

هنگامی که تصویر پنهان ترسیم شد، اسکریپت تابعی به نام `toDataURL()` را فراخوانی می‌کند. این فرمان، پیکسل به پیکسل Canvas را می‌خواند و کل تصویر را به یک رشته کدگذاری شده Base۶۴ تبدیل می‌کند. به دلیل تفاوت‌های ظریف رندرینگ، این رشته برای پشته سخت‌افزاری و نرم‌افزاری خاص کاربر منحصربه‌فرد است. سپس ردیاب این رشته را به یک شناسه کوتاه و دائمی هش می‌کند.

در حالی که Canvas بر رندرینگ دوبعدی تمرکز دارد، اثرانگشت‌گیری WebGL خط لوله گرافیک سه‌بعدی را هدف قرار می‌دهد. WebGL به مرورگرها اجازه می‌دهد تا گرافیک سه‌بعدی تعاملی را بدون نیاز به افزونه‌ها رندر کنند. یک اسکریپت اثرانگشت‌گیری از مرورگر می‌خواهد که یک صحنه سه‌بعدی پیچیده – شامل نورپردازی، سایه‌ها و بافت‌ها – را روی یک Canvas پنهان رندر کند.

در حالی که Canvas بر رندرینگ دوبعدی تمرکز دارد، اثرانگشت‌گیری WebGL خط لوله گرافیک سه‌بعدی را هدف قرار می‌دهد.

WebGL حتی از API دوبعدی Canvas نیز به سخت‌افزار نزدیک‌تر است. این API به شدت به دقت ریاضی ممیز شناور (floating-point) خاص پردازنده گرافیکی دستگاه متکی است. پردازنده‌های گرافیکی مختلف، محاسبات پیچیده را با تغییرات میکروسکوپی در خطاهای گرد کردن (rounding errors) مدیریت می‌کنند. با استخراج پیکسل‌های رندر شده صحنه سه‌بعدی، ردیاب‌ها می‌توانند به طور مؤثری مدل دقیق و نسخه درایور کارت گرافیک کاربر را شناسایی کنند.[3]

تصاویر تنها مسیر نیستند. Web Audio API که برای پردازش و سنتز صدا در برنامه‌های وب طراحی شده، منبع غنی دیگری از آنتروپی را فراهم می‌کند. اثرانگشت‌گیری صوتی نیازی به میکروفون کاربر ندارد؛ در عوض، نحوه پردازش ریاضی صدا توسط پشته صوتی دستگاه را آزمایش می‌کند.

یک اسکریپت اثرانگشت‌گیری صوتی یک نوسان‌ساز با فرکانس پایین – یک موج سینوسی پایه – تولید می‌کند. سپس این موج را از طریق مجموعه‌ای از کمپرسورها و فیلترهای دینامیک که توسط AudioContext API ارائه شده‌اند، عبور می‌دهد. در نهایت، داده‌های شکل موج صوتی حاصل را قبل از اینکه به بلندگوها برسد، می‌خواند.

خطوط لوله رندر بصری، آنتروپی شناسایی بسیار بیشتری نسبت به پشته‌های پردازش صوتی فراهم می‌کنند.

درست مانند رندرینگ گرافیکی، پردازش صوتی نیز به سیستم عامل زیرین و معماری سخت‌افزاری متکی است. خروجی دقیق ریاضی موج سینوسی فشرده شده بین یک گوشی اندروید، یک آیفون و یک دسکتاپ ویندوز کمی متفاوت خواهد بود. این امر یک نقطه داده کاملاً مجزا و بسیار پایدار فراهم می‌کند که ردیاب‌ها از آن برای تأیید اثرانگشت‌های بصری استفاده می‌کنند.[2]

این سیگنال‌ها به صورت جداگانه قدرتمند هستند، اما به ندرت به تنهایی استفاده می‌شوند. ردیاب‌ها اثرانگشت‌های Canvas، WebGL و Audio را با سیگنال‌های غیرفعال سنتی ترکیب می‌کنند: رشته عامل کاربر (user agent string)، وضوح صفحه، عمق رنگ، منطقه زمانی و لیست زبان‌های پشتیبانی شده. در نظریه اطلاعات، منحصربه‌فرد بودن این نقاط داده ترکیبی با «آنتروپی» اندازه‌گیری می‌شود.[2]

هنگامی که آنتروپی کافی جمع‌آوری شود، عملاً تضمین می‌شود که اثرانگشت حاصل در میان میلیون‌ها کاربر منحصربه‌فرد باشد. از آنجا که این شناسه هر بار که صفحه بارگذاری می‌شود به صورت لحظه‌ای تولید می‌گردد، کوکی‌ای برای حذف وجود ندارد. اگر کاربر داده‌های مرورگر خود را پاک کند، روتر خود را مجدداً راه‌اندازی کند تا آدرس IP جدیدی بگیرد و به سایت بازگردد، محاسبات رندر سخت‌افزاری یکسان باقی می‌ماند. ردیاب فوراً او را شناسایی می‌کند.[2][3]

API صوتی وب (Web Audio API) می‌تواند دستگاه‌ها را بر اساس نحوه پردازش ریاضی امواج صوتی توسط سخت‌افزارشان شناسایی کند.

دفاع در برابر اثرانگشت‌گیری یک چالش مهندسی بزرگ ایجاد می‌کند. فروشندگان مرورگر نمی‌توانند به سادگی Canvas، WebGL یا AudioContext را غیرفعال کنند، زیرا این کار میلیون‌ها وب‌سایت قانونی، برنامه‌های وب و بازی‌های مرورگر را از کار می‌اندازد. این APIها برای تجربه وب مدرن حیاتی هستند.[3]

در حال حاضر، دو فلسفه دفاعی اصلی وجود دارد. اولین مورد یکنواختی است که توسط مرورگر Tor پیشگام شده است. Tor تلاش می‌کند با محدود کردن دسترسی به API، استانداردسازی اندازه‌های پنجره و مسدود کردن فونت‌های خاص، همه کاربران را دقیقاً شبیه به هم نشان دهد. اگر همه اثرانگشت یکسانی داشته باشند، آنتروپی به صفر می‌رسد و ردیابی غیرممکن می‌شود.[2]

رویکرد دوم تصادفی‌سازی است که توسط مرورگرهای متمرکز بر حریم خصوصی مانند Brave استفاده می‌شود. Brave به جای مسدود کردن APIها، به طور زیرکانه‌ای نویز رمزنگاری تصادفی را به خروجی درخواست‌های Canvas، WebGL و AudioContext تزریق می‌کند. هر بار که یک ردیاب از مرورگر می‌خواهد تصویر پنهان را ترسیم کند یا موج صوتی را پردازش کند، مرورگر نتیجه‌ای کمی متفاوت و تصادفی برمی‌گرداند و اثرانگشت را برای ردیابی طولانی‌مدت بی‌فایده می‌کند.[2][3]

با ترکیب سیگنال‌های سخت‌افزاری متعدد، ردیاب‌ها شناسه‌ای تولید می‌کنند که پس از حذف کوکی‌ها و مرور خصوصی نیز باقی می‌ماند.

با وجود این دفاعیات، مسابقه تسلیحاتی ادامه دارد. در حالی که مرورگرها تزریق نویز را پیاده‌سازی می‌کنند، شرکت‌های ردیابی مدل‌های یادگیری ماشینی را توسعه می‌دهند تا نویز را فیلتر کرده و امضای سخت‌افزاری زیربنایی را پیدا کنند. درک این اکوسیستم حیاتی است: حریم خصوصی دیجیتال واقعی نیازمند دفاعیات ساختاری در سطح مرورگر است، نه صرفاً پاک کردن حافظه پنهان (Cache).[2][3]

منابع

پوشش منابع

3 منبع

3 دیدگاه شناسایی‌شده

مدافعان حریم خصوصی 35%تیم‌های ضد کلاهبرداری و امنیت 35%مهندسان مرورگر 30%
  1. [1]Hovav Shacham (UCSD)مهندسان مرورگر

    Pixel Perfect: Fingerprinting Canvas in HTML5

    مطالعه در Hovav Shacham (UCSD)
  2. [2]arXivمدافعان حریم خصوصی

    The Development and Impact of Browser Fingerprinting on Digital Privacy

    مطالعه در arXiv
  3. [3]تیم سردبیری کوهستانمدافعان حریم خصوصی

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

دریافت فناوری اخبار همراه با پوشش کامل منابع و تحلیل دیدگاه‌ها، مستقیم در صندوق ورودی شما.