Fingerprinting WebGPU: następna generacja po Canvas i WebGL
WebGPU odsłania głębsze możliwości sprzętu niż Canvas i WebGL razem — i jest już dostępne w Chrome, Edge i Firefoksie. Co ujawnia i dlaczego w ciągu 2–3 lat zastąpi starsze techniki fingerprintingu.
WebGPU trafiło do Chrome 113 w 2023 roku. Do 2026 jest dostępne we wszystkich głównych przeglądarkach na wszystkich głównych platformach. W przeciwieństwie do WebGL — przeglądarkowego API opakowującego OpenGL ES 2.0 — WebGPU stanowi bezpośredni interfejs do nowoczesnych API graficznych: Vulkan w Linuksie, Metal w macOS, DirectX 12 w Windowsie.
To zmienia zakres tego, o co przeglądarka może zapytać leżący pod spodem sprzęt. Fingerprinting oparty na Canvas i WebGL opierał się na wynikach renderowania. WebGPU pozwala odpytywać wprost możliwości samego GPU, odsłaniając szczegóły architektury, na które wynik renderowania może co najwyżej naprowadzać.
Dla fingerprintingu to skokowa poprawa jakości sygnału.
Co odsłania WebGPU, a czego nie odsłania WebGL
Powierzchnia diagnostyczna WebGL jest ograniczona. Najbardziej użyteczne jest rozszerzenie WEBGL_debug_renderer_info, zwracające ciągi vendora i renderera — często podrabiane przez przeglądarki antydetekcyjne lub usuwane przez funkcje prywatności.
WebGPU udostępnia obiekty GPUAdapter i GPUAdapterInfo ze znacznie bogatszymi danymi:
- Vendor — identyfikator producenta GPU (NVIDIA, AMD, Intel, Apple, Qualcomm).
- Architecture — rodzina architektury GPU (Ampere, RDNA 2, Xe-LP, Apple M2, Adreno).
- Device — konkretny model, jeśli jest dostępny.
- Description — ciąg czytelny dla człowieka.
Poza identyfikacją WebGPU odsłania limity GPU — dokładne możliwości liczbowe sprzętu. Można je odpytać przez interfejs GPUSupportedLimits, a obejmują ponad 30 właściwości liczbowych:
- Maksymalne wymiary tekstur —
maxTextureDimension2D - Maksymalny rozmiar bufora —
maxBufferSize - Maksymalna liczba bind groups —
maxBindGroups - Maksymalne wymiary compute workgroup
- Maksymalna liczba atrybutów wierzchołków
- Wymagania wyrównania buforów storage
Każdą z tych wartości ustawia sterownik GPU na podstawie możliwości sprzętu. Różne generacje GPU — nawet u tego samego producenta — mają inne kombinacje limitów. GPU z 2019 roku ma inne limity niż GPU z 2023 roku z tej samej rodziny.
Dlaczego trudniej to podrobić
Przeglądarki antydetekcyjne podrabiają Canvas i WebGL, przechwytując wywołania API i modyfikując wyniki. Canvas zwraca hashe wyrenderowanych pikseli — przeglądarka może wyrenderować, a potem podmienić hash. WebGL jest odpytywane o niewielką liczbę ciągów, które da się podmienić w całości.
Z WebGPU jest inaczej. Powierzchnia API jest ogromna — setki metod i właściwości. Każde wywołanie potrzebuje wiarygodnej wartości zwrotnej. Warstwa podrabiająca musi:
- Utrzymać spójną tożsamość we wszystkich limitach liczbowych — GPU podające się za NVIDIA RTX 4090 musi zwracać każdą wartość limitu odpowiadającą temu sprzętowi.
- Poradzić sobie z faktycznym wykonaniem obliczeń. WebGPU pozwala uruchamiać shadery obliczeniowe. Jeśli warstwa podrabiająca deklaruje wysoką wydajność, a dostarcza wolne obliczenia, rozbieżność jest wykrywalna po czasach.
- Nadążać za zmianami między wersjami sterowników. Każda wersja sterownika GPU ma nieco inne limity. Statyczne tablice podróbek dezaktualizują się wraz z premierami nowych sterowników.
Prawdziwy sprzęt zapewnia to wszystko za darmo. Podrobienie sprzętu wymaga utrzymywania bazy prawdziwych kombinacji limitów dla każdego modelu GPU i każdej wersji sterownika — ciągłego obciążenia utrzymaniowego, którego większość przeglądarek antydetekcyjnych jeszcze nie podjęła.
Wydajność obliczeń jako odcisk
WebGPU pozwala uruchamiać w przeglądarce dowolne shadery obliczeniowe. Oznacza to, że systemy detekcji mogą wykonywać ustandaryzowane obciążenia i mierzyć czas ich trwania.
Benchmark łamania hashy, mnożenie macierzy czy zadanie obliczeniowe zbliżone do renderowania działają z prędkością wyznaczoną przez sprzęt. Dwóch odwiedzających deklarujących ten sam model GPU, lecz osiągających różną wydajność obliczeń, kłamie na temat sprzętu.
Technika ta całkowicie omija statyczne podrabianie odcisku. Odwiedzający może zadeklarować dowolny ciąg GPU. Nie może zadeklarować wydajności obliczeń, której nie posiada.
Kosztem jest komfort użytkownika. Uruchomienie shadera obliczeniowego w tle zużywa cykle GPU i bywa odbierane jako ociężałość. To ogranicza agresywność stosowania — zwykle jako jednorazowa kontrola podejrzanych sesji, a nie ciągły monitoring.
Dostępność funkcji jako sygnał
WebGPU odsłania funkcje opcjonalne przez GPUAdapter.features. Niektóre GPU obsługują konkretne rozszerzenia:
timestamp-query— wymaga nowoczesnego GPU z licznikami wydajnościshader-f16— połowiczna precyzja zmiennoprzecinkowa, częsta w GPU mobilnychtexture-compression-bc— Block Compression, standard na desktopietexture-compression-etc2— mobilny format teksturtexture-compression-astc— mobilny format tekstur
Zestaw funkcji jest deterministyczny dla modelu GPU. Maszyna z Windowsem deklarująca mobilne funkcje Adreno zostaje przyłapana. Urządzenie mobilne deklarujące wyłącznie desktopowe formaty kompresji zostaje przyłapane.
Spójność z WebGL
Przed WebGPU przeglądarki miały jedną główną powierzchnię odpytywania GPU: WebGL. Teraz mają dwie i muszą być ze sobą zgodne.
WebGL i WebGPU odsłaniają ten sam GPU. Ich odpowiedzi muszą być spójne. Przeglądarka raportująca przez WebGL NVIDIA RTX 4080, ale zwracająca limity WebGPU odpowiadające zintegrowanemu układowi Intela, jest na prawdziwym sprzęcie niemożliwa.
Spójność między API to kolejny sygnał dla detekcji. Podrobienie jednego API jest proste. Podrobienie dwóch API we wzajemnie spójny sposób jest znacząco trudniejsze — a obecne przeglądarki antydetekcyjne w większości tego nie robią.
Co WebGPU ujawnia o systemie i sterowniku
Poza identyfikacją GPU, WebGPU odsłania kontekst stosu graficznego:
- W Windowsie WebGPU potrafi ujawnić, czy używany jest Direct3D 11 czy Direct3D 12, co koreluje z wersją systemu i epoką sterownika.
- W macOS obsługiwana wersja Metal zdradza wersję macOS — bo wersje Metal wychodzą razem z aktualizacjami systemu.
- W Linuksie poziomy obsługi Vulkana zdradzają dystrybucję i pochodzenie sterownika (na przykład zamknięty NVIDIA kontra otwarty Mesa).
Żaden z tych sygnałów nie jest bezpośredni — każdy wymaga interpretacji. Ale razem budują obraz stosu programowego, który powinien korelować z raportowanym odciskiem przeglądarki. Rozbieżności wskazują na podrabianie.
Harmonogram adopcji w stosach detekcji
W 2026 roku fingerprinting WebGPU nie jest jeszcze mainstreamową techniką detekcji z trzech powodów:
- Wsparcie w przeglądarkach wciąż się stabilizuje. WebGPU w Firefoksie pojawiło się w 2024, ale z ograniczonym pokryciem funkcji. W Safari WebGPU pojawiło się w 2024, lecz z innymi limitami niż w Chrome. Systemy detekcji potrzebują szerokiego pokrycia, zanim oprą się na sygnałach WebGPU.
- Rzeczywiste wsparcie WebGPU u użytkowników wciąż jest niepełne. Starsze urządzenia nie mają GPU obsługujących funkcje WebGPU. System detekcji karzący odwiedzających bez WebGPU ryzykuje blokowanie legalnych użytkowników na pięcioletnim sprzęcie.
- Przeglądarki antydetekcyjne nie zbudowały jeszcze pełnego podrabiania WebGPU, co sprawia, że sygnały oparte na WebGPU są dziś skuteczne wobec wyrafinowanych napastników przekonanych, że zatarli ślady. To się zmieni wraz ze wzrostem adopcji detekcji i odpowiedzią narzędzi podrabiających.
Horyzont adopcji 2–3 lat jest realistyczny. Do 2027–2028 sygnały WebGPU staną się dla detekcji botów tak samo centralne, jak dziś WebGL. Pytanie dla zespołów detekcji brzmi: kiedy zacząć zbierać dane WebGPU — a odpowiedź to teraz, żeby baza historyczna istniała, gdy te sygnały staną się podstawowe.
Co to oznacza dla broniących się
Fingerprinting Canvas to technika dojrzała. Fingerprinting WebGL to technika dojrzała. Obie są aktywnie podrabiane przez narzędzia antydetekcyjne, z rozsądnym skutkiem.
Fingerprinting WebGPU to technika młoda. Narzędzia podrabiające jeszcze jej nie dogoniły. Tworzy to okno — prawdopodobnie 18–36 miesięcy — w którym sygnały WebGPU czysto oddzielają prawdziwych użytkowników od wyrafinowanych botów. W to okno warto zainwestować.
Sygnały, które daje, są też strukturalnie trudniejsze do podrobienia niż Canvas czy WebGL. Renderowanie da się przechwycić. Wydajności obliczeń nie. O zestawach funkcji można skłamać, ale nie spójnie na całej powierzchni API. Każde pokolenie technik fingerprintingu podnosi koszt podrabiania. WebGPU podnosi go znacząco.
Dla platform traktujących detekcję botów poważnie w 2026 roku i później, to właśnie w stronę WebGPU przesuwa się sygnał.