WebGL Parmak İzi Nedir? GPU ile Tarayıcı Takibi
Tarayıcı & Cihaz

WebGL Parmak İzi Nedir? GPU ile Tarayıcı Takibi

WebGL parmak izi, GPU satıcınızı ve renderer dizesini okuyarak cihazınızı tanımlar. Masaüstü kullanıcıların %99,24'ünü benzersiz biçimde tespit eder.

8 dk okuma·

WebGL parmak izi, tarayıcınızın 3D grafik API'sini kullanarak GPU satıcınızı, modelinizi ve sürücü düzeyindeki render çıktınızı okur; aynı makinedeki tüm tarayıcılarda kalıcı olan ve çerez silme ya da ağ değiştirme ile tamamen etkilenmeyen bir cihaz tanımlayıcısı üretir. Tarayıcınızın neleri açığa çıkardığını hemen şimdi whatsmy.fyi üzerinde görebilirsiniz.

Özet

WebGL parmak izi, tarayıcı tabanlı oyunları ve 3D haritaları render eden WebGL API'sini istismar ederek GPU satıcı dizisini, GPU model adını ve piksel düzeyindeki render çıktısını çıkarır. Her GPU modeli, kayan nokta yuvarlama, sürücü davranışı ve donanım mimarisindeki farklılıklar nedeniyle özdeş render komutları için hafif farklı sonuçlar üretir. Diğer sinyallerle birleştirildiğinde WebGL verisi masaüstü tarayıcıların %99,24'ünü benzersiz biçimde tanımlayabilir. Cihazınızda hiçbir şey depolanmaz, VPN ise bunu durduramaz.

WebGL Parmak İzi Nedir?

WebGL parmak izi, donanım hızlandırmalı 2D ve 3D grafik oluşturmak için bir JavaScript arayüzü olan WebGL API'yi cihaza özgü GPU özelliklerini okumak amacıyla kullanan bir tarayıcı takip tekniğidir. Çerez tabanlı takibin aksine depolama gerektirmez ve özel tarama modu ile tarayıcı verilerini temizlemeden etkilenmez.

Bu tekniğin iki tamamlayıcı bileşeni vardır. Birincisi, statik donanım meta verilerini doğrudan tarayıcı API'larından okur: GPU satıcı adınız, GPU modeliniz ve sürücünüzün desteklediği WebGL uzantılarının tam listesi. İkinci bileşen ise gizli bir 3D sahne render eder ve piksel verilerini geri okur.

WebGL parmak izi, canvas parmak iziyle yakından ilişkilidir; ancak sisteminizin farklı — ve daha tanımlayıcı — bir katmanını hedefler. Canvas parmak izi 2D yazı tipi render farklarını yakalarken, WebGL parmak izi doğrudan GPU donanımınıza ulaşır.

WebGL Parmak İzi Nasıl Çalışır?

Aşama 1 — Donanım Parametrelerini Okuma

Betik, donanım yeteneklerini çıkarmak için onlarca sabit kullanarak gl.getParameter() çağırır. Ancak bir WebGL uzantısı her şeyi değiştirir: WEBGL_debug_renderer_info uzantısı UNMASKED_VENDOR_WEBGL ve UNMASKED_RENDERER_WEBGL olmak üzere iki sabit sunar. Sorgulandığında, tam ve maskelenmemiş GPU satıcı dizisini — örneğin "NVIDIA Corporation" — ve tam GPU renderer dizesini — örneğin "NVIDIA GeForce RTX 4080/PCIe/SSE2" — döndürürler.

Aşama 2 — 3D Sahne Render Etme

Betik, gizli bir WebGL canvas oluşturur ve karmaşık bir sahne render eder: gradyanlar, aydınlatma hesaplamaları ve belirli doku koordinatlarıyla şeffaf geometri. Kayan nokta aritmetiği her GPU'nun gölgelendirici birimleri tarafından farklı şekilde işlendiğinden — NVIDIA, AMD, Intel ve Apple Silicon hepsi biraz farklı yuvarlama davranışı uygular — elde edilen pikseller ikili düzeyde donanımlar arasında farklılık gösterir.

Aşama 3 — readPixels() ile Piksel Hash

Betik, render edilmiş sahneden ham RGBA piksel tamponunu çıkarmak için gl.readPixels() çağırır ve bunu MurmurHash ile kompakt bir parmak izi değerine hash'ler. Bu hash oturumlar, gizli mod ve yeniden başlatmalar arasında kararlıdır; yalnızca GPU sürücüsü güncellendiğinde veya fiziksel donanım değiştirildiğinde değişir.

// Aşama 1 — hata ayıklama uzantısı aracılığıyla maskelenmemiş GPU dizelerini oku
const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl');

const ext = gl.getExtension('WEBGL_debug_renderer_info');
if (ext) {
  const vendor   = gl.getParameter(ext.UNMASKED_VENDOR_WEBGL);
  const renderer = gl.getParameter(ext.UNMASKED_RENDERER_WEBGL);
  // Örn. "NVIDIA Corporation", "NVIDIA GeForce RTX 4080/PCIe/SSE2"
}

// Aşama 3 — sahneyi render et ve piksel çıkar
const pixels = new Uint8Array(4 * canvas.width * canvas.height);
gl.readPixels(
  0, 0, canvas.width, canvas.height,
  gl.RGBA, gl.UNSIGNED_BYTE, pixels
);
// 'pixels' hash'le → kararlı GPU parmak izi

WebGL Parmak İzi Ne Kadar Benzersiz?

WebGL, tarayıcı parmak izindeki en yüksek entropili bireysel sinyallerden biridir. GPU parametre katmanı tek başına 10–15 bit entropi sağlar.

BulguDeğerKaynak
GPU satıcı + renderer dizelerinden entropi10–15 bitCao ve ark., NDSS 2017
WebGL render çıktısından entropi (tek başına)~5,7 bitFingerprint.com araştırması
Benzersiz tanımlanan masaüstü kullanıcıları (birleşik sinyaller)%99,24Fingerprint.com araştırması
Benzersiz tanımlanan mobil kullanıcılar (birleşik sinyaller)%94,5Fingerprint.com araştırması
GPU renderer dizesiyle daraltılan popülasyonZiyaretçilerin %0,01'inden azıInria / KU Leuven araştırması

WebGL Parmak İzi Gerçek Hayatta Kim Tarafından Kullanılır?

Reklam Ağları

Safari üçüncü taraf çerezlerini varsayılan olarak engellediğinde ve Chrome onları kullanımdan kaldırmaya yöneldiğinde, reklam teknolojisi şirketleri donanım düzeyinde parmak izi almayı cazip bir çerez alternatifi olarak benimsedi.

Dolandırıcılık Tespiti ve Bot Azaltma

Headless Chrome veya Puppeteer çalıştıran otomatik tarayıcılar genellikle iddia ettikleri kullanıcı ajanıyla tutarsız GPU renderer dizeleri bildirir. Bir bot, gerçek bir GPU'su yoksa yazılım tabanlı Mesa renderer dizesi döndürür. Şüpheli eşleşmeler, platform güvenliği ve dolandırıcılık önleme için risk sinyali tetikler.

Tarayıcılar Arası İzleme

WebGL renderer dizesi ve piksel hash'i, tarayıcı durumundan değil fiziksel donanımdan türetildiğinden, aynı makinede kurulu farklı tarayıcılarda tutarlı kalır. İzlemeden kaçınmak için Chrome, Firefox ve Edge arasında geçiş yapan bir kullanıcı, her tarayıcıda aynı GPU renderer dizesini üretir.

WebGL Parmak İzinden Nasıl Korunursunuz?

  • Tor Browser (en güçlü koruma): Tor Browser, gl.readPixels()işlevini tamamen devre dışı bırakır ve WEBGL_debug_renderer_info uzantısını engeller; böylece maskelenmemiş GPU dizeleri okunamaz.
  • Brave Browser (günlük kullanım için önerilir): Brave'in Farbling tekniği, WebGL piksel çıktısına oturum başına, site başına gürültü ekler; render hash'ini güvenilmez bir izleme tanımlayıcısına dönüştürür.
  • privacy.resistFingerprinting etkin Firefox: about:config'de bu bayrağı etkinleştirmek, WEBGL_debug_renderer_info uzantısını devre dışı bırakarak gerçek GPU dizeleriniz yerine genel değerler döndürür.
  • VPN'in yapamadıkları: VPN, trafiğinizi şifreli tünelden yönlendirir ve IP adresinizi gizler; ancak WebGL çıktısı üzerinde hiçbir etkisi yoktur. GPU satıcı dizeniz, renderer dizeniz ve piksel hash'iniz tarayıcınızın içinde üretilir ve izleme sunucularına JavaScript verisi olarak iletilir — ağ meta verisi olarak değil. whatsmy.fyi'de VPN'inizin IP düzeyindeki korumasını doğrulayın.

Sık Sorulan Sorular

WebGL parmak izi gizli modda da çalışır mı?

Evet. Özel tarama, çerezleri, geçmişi ve form verilerini diske kaydetmeyi önler; ancak GPU donanımınızı veya sürücünüzü değiştirmez. WEBGL_debug_renderer_info uzantısı gizli pencerede de normal penceredeki gibi aynı dizeleri döndürür. Yalnızca aktif parmak izi koruması olan tarayıcılar farklı davranır.

WebGL parmak izi aynı bilgisayardaki farklı tarayıcılarda beni takip edebilir mi?

Evet — bu en önemli yeteneklerinden biridir. GPU satıcı ve renderer dizeleri donanımdan türetildiğinden, aynı makinede Chrome, Firefox veya Edge kullansanız da aynıdır. NDSS 2017'de yayımlanan araştırma, GPU düzeyindeki WebGL özelliklerini kullanarak tarayıcılar arası parmak alma işlemini özellikle göstermiştir.

WebGL parmak izi, canvas parmak izinden daha güçlü müdür?

Bunlar cihaz benzersizliğinin tamamlayıcı boyutlarını hedefler. Canvas parmak izi işletim sistemi metin motorları arasındaki 2D yazı tipi render farklarını yakalar. WebGL parmak izi doğrudan GPU satıcı ve model meta verilerini açığa çıkarır ve 3D gölgelendirici düzeyindeki kayan nokta farklarını yakalar. Ticari platformlar her ikisini birlikte kullanır. Ayrıntılar için canvas parmak izi rehberine bakın.

İlgili Makaleler

IP adresinizi, konumunuzu ve gizlilik puanınızı anında kontrol edin.

Sıfır log. Sıfır takip. Sıfır harici API.

Hemen kontrol et →

İlgili makaleler

WebGL Parmak İzi Nedir? GPU ile Tarayıcı Takibi | whatsmy.fyi