محققان دانشگاه بن گوریون (اسرائیل)، دانشگاه لیل (فرانسه) و دانشگاه آدلاید (استرالیا) تکنیک جدیدی را برای شناسایی دستگاه های کاربر با شناسایی پارامترهای عملکرد GPU در یک مرورگر وب توسعه داده اند. این روش "Drawn Apart" نامیده می شود و مبتنی بر استفاده از WebGL برای به دست آوردن نمایه عملکرد GPU است که می تواند به طور قابل توجهی دقت روش های ردیابی غیرفعال را که بدون استفاده از کوکی ها و بدون ذخیره شناسه در سیستم کاربر کار می کنند، بهبود بخشد.
روشهایی که ویژگیهای رندر، GPU، پشته گرافیک و درایورها را در هنگام شناسایی در نظر میگیرند، قبلاً مورد استفاده قرار میگرفتند، اما آنها به توانایی جدا کردن دستگاهها فقط در سطح مدلهای مختلف کارتهای گرافیکی و GPU محدود میشدند. تنها می تواند به عنوان یک عامل اضافی برای افزایش احتمال شناسایی استفاده شود. ویژگی کلیدی روش جدید "Drawn Apart" این است که خود را به جداسازی مدل های مختلف GPU محدود نمی کند، بلکه سعی می کند تفاوت های بین پردازنده های گرافیکی یکسان همان مدل را به دلیل ناهمگونی فرآیند تولید تراشه های طراحی شده برای موازی انبوه شناسایی کند. محاسبه. خاطرنشان می شود که تغییراتی که در طول فرآیند تولید ایجاد می شود، ایجاد برداشت های غیر تکراری را برای همان مدل های دستگاه ممکن می کند.
مشخص شد که این تفاوت ها را می توان با شمارش تعداد واحدهای اجرایی و تجزیه و تحلیل عملکرد آنها در GPU شناسایی کرد. بررسیهای مبتنی بر مجموعهای از توابع مثلثاتی، عملیات منطقی و محاسبات ممیز شناور بهعنوان روشهای اولیه برای شناسایی مدلهای مختلف GPU استفاده شد. برای شناسایی تفاوتها در پردازندههای گرافیکی یکسان، تعداد رشتههایی که همزمان اجرا میشوند هنگام اجرای سایهزنهای راس برآورد شد. فرض بر این است که اثر شناسایی شده ناشی از تفاوت در شرایط دما و مصرف انرژی نمونه های مختلف تراشه ها است (پیش از این، یک اثر مشابه برای CPU ها نشان داده شده بود - پردازنده های یکسان مصرف انرژی متفاوتی را هنگام اجرای همان کد نشان دادند).
از آنجا که عملیات از طریق WebGL به صورت ناهمزمان انجام می شود، JavaScript API performance.now() نمی تواند مستقیماً برای اندازه گیری زمان اجرای آنها استفاده شود، بنابراین سه ترفند برای اندازه گیری زمان پیشنهاد شده است:
- روی صفحه - رندر کردن صحنه در یک بوم HTML، اندازهگیری زمان پاسخ تابع تماس، از طریق Window.requestAnimationFrame API تنظیم شده و پس از تکمیل رندر فراخوانی میشود.
- offscreen - با استفاده از یک worker و رندر کردن صحنه به یک شی OffscreenCanvas، اندازهگیری زمان اجرای دستور convertToBlob.
- GPU - به یک شی OffscreenCanvas بکشید، اما از یک تایمر ارائه شده توسط WebGL برای اندازه گیری زمان استفاده کنید که مدت زمان مجموعه ای از دستورات را در سمت GPU در نظر می گیرد.
در طول فرآیند ایجاد شناسه، 50 آزمایش بر روی هر دستگاه انجام می شود که هر کدام 176 اندازه گیری از 16 ویژگی مختلف را پوشش می دهد. آزمایشی که اطلاعاتی را روی ۲۵۰۰ دستگاه با ۱۶۰۵ GPU مختلف جمعآوری کرد، افزایش ۶۷ درصدی راندمان روشهای شناسایی ترکیبی را هنگام اضافه کردن پشتیبانی Drawn Apart نشان داد. به طور خاص، روش ترکیبی FP-STALKER شناسایی را در عرض 2500 روز به طور متوسط ارائه کرد، و هنگامی که با Drawn Apart ترکیب شد، مدت زمان شناسایی به 1605 روز افزایش یافت.
- دقت جداسازی 10 سیستم با تراشه های Intel i5-3470 (GEN 3 Ivy Bridge) و پردازنده گرافیکی Intel HD Graphics 2500 در تست روی صفحه 93٪ و در تست خارج از صفحه 36.3٪ بود.
- برای 10 سیستم Intel i5-10500 (GEN 10 Comet Lake) با کارت گرافیک NVIDIA GTX1650، دقت 70٪ و 95.8٪ بود.
- برای 15 سیستم Intel i5-8500 (GEN 8 Coffee Lake) با پردازنده گرافیکی Intel UHD Graphics 630 - 42٪ و 55٪.
- برای 23 سیستم Intel i5-4590 (GEN 4 Haswell) با پردازنده گرافیکی Intel HD Graphics 4600 - 32.7٪ و 63.7٪.
- برای شش گوشی هوشمند Samsung Galaxy S20/S20 Ultra با پردازنده گرافیکی Mali-G77 MP11، دقت شناسایی در تست روی صفحه نمایش 92.7٪ و برای گوشی های هوشمند Samsung Galaxy S9/S9+ با Mali-G72 MP18 54.3٪ بود.
خاطرنشان می شود که دقت تحت تأثیر دمای GPU قرار گرفته است و برای برخی از دستگاه ها، راه اندازی مجدد سیستم منجر به اعوجاج شناسه شده است. هنگام استفاده از روش در ترکیب با سایر روش های شناسایی غیرمستقیم، می توان دقت را به طور قابل توجهی افزایش داد. آنها همچنین قصد دارند تا پس از تثبیت WebGPU API جدید، دقت را از طریق استفاده از شیدرهای محاسباتی افزایش دهند.
اینتل، ARM، Google، Khronos، Mozilla و Brave در سال 2020 از این مشکل مطلع شدند، اما جزئیات این روش تنها در حال حاضر فاش شده است. محققان همچنین نمونه های کاری نوشته شده با جاوا اسکریپت و GLSL را منتشر کردند که می تواند با و بدون نمایش اطلاعات روی صفحه کار کند. همچنین برای سیستم های مبتنی بر GPU Intel GEN 3/4/8/10، مجموعه داده هایی برای طبقه بندی اطلاعات استخراج شده در سیستم های یادگیری ماشین منتشر شده است.
منبع: opennet.ru