TRACIO'nun kimlik belirleme sistemi, 130'dan fazla tarayıcı sinyalinden kararlı bir ziyaretçi kimliği üretir. Bu kimlik; oturumlar, gizli mod, VPN değişiklikleri ve çerez temizleme arasında kalıcılığını korur. Bu sayfa, kimlik belirlemenin eksiksiz iş akışını açıklar.
İstemci, 10 kategoride 130'dan fazla farklı tarayıcı sinyali toplar. Her sinyal, donanım özelliklerinden render davranışına kadar tarayıcı ve cihazın farklı bir yönünü inceler.
| Grup | Sinyaller | Kararlılık | Örnekler |
|---|---|---|---|
| Donanım | 12 | Çok Yüksek | Ekran çözünürlüğü, cihaz belleği, donanım paralelliği, dokunmatik desteği |
| Render | 9 | Yüksek | Canvas parmak izi (metin + geometri), WebGL renderer, ses işleme |
| Yazı Tipleri | 5 | Yüksek | Kullanılabilir sistem yazı tipleri (69 aile test edilir), yazı tipi tercihleri, MathML render |
| Platform | 25 | Orta | User-Agent, navigator özellikleri, saat dilimi, dil, sağlayıcı |
| CSS Motoru | 10 | Orta | Media query yanıtları (renk şeması, HDR, azaltılmış hareket, zorlanmış renkler) |
| Depolama | 10 | Orta | Çerez desteği, localStorage, sessionStorage, depolama kotası |
| WebGL | 9 | Yüksek | GPU sağlayıcısı, renderer (maskesiz), shader hassasiyeti, uzantı desteği |
| Ağ | 3 | Düşük | Bağlantı RTT'si, TURN incelemesi, uygulama sürümü |
| Bot Göstergeleri | 15 | Yok | Webdriver bayrağı, otomasyon framework'leri, eval uzunluğu, headless işaretçileri |
| Özel | 14 | Değişken | Math parmak izi, WASM özellikleri, mimari tespiti |
Tüm sinyaller kimlik belirleme için eşit derecede yararlı değildir. Sinyaller kararlılıklarına göre sınıflandırılır:
Katman 1 (Dondurulmuş): Neredeyse hiç değişmeyen donanım ve render sinyalleri. Canvas parmak izi, WebGL renderer, ses parmak izi, GPU parametreleri, yazı tipi numaralandırması, matematiksel işlemler, mimari baytı.
Katman 2 (Yarı kararlı): Tarayıcı güncellemeleri veya yapılandırma değişiklikleriyle değişen sinyaller. User-Agent, Client Hints, eklentiler, CSS media query'leri, depolama yetenekleri.
Katman 3 (Uçucu): Sık sık değişen sinyaller. Ekran çözünürlüğü (monitör değişiklikleri), saat dilimi (seyahat), dil tercihleri, bağlantı özellikleri.
Ziyaretçi kimliği, kararlılık ile genişletilebilirliği dengeleyen üç katmanlı bir hash'leme sistemi kullanılarak hesaplanır:
Visitor ID = [Tier1Hash][Tier2Hash][Tier3Hash] 20 chars 10 chars 10 chars ──────── ──────── ──────── base62 base62 base62Katman 1, yalnızca donanıma ve render motoruna içkin olan dondurulmuş sinyalleri kullanır. Bu sinyaller yalnızca kullanıcı farklı bir fiziksel cihaza geçtiğinde veya önemli donanım değişiklikleri yaptığında değişir.
Dahil edilen sinyaller: Canvas parmak izi hash'i, WebGL renderer (maskesiz), WebGL sağlayıcısı (maskesiz), ses parmak izi, yazı tipi numaralandırması hash'i, WebGL parametreleri hash'i, matematiksel işlemler hash'i, mimari baytı (ARM ve x86).
Algoritma:
key1=value1|key2=value2|... (anahtarlar alfabetik olarak sıralanır)Katman 1 bilinçli olarak dondurulmuştur. Katman 1'e asla yeni sinyaller eklenmez; bu da kimlik çekirdeğinin sunucu güncellemeleri boyunca kararlı kalmasını sağlar.
Katman 2, tarayıcı ve işletim sistemi ortamını yakalar. Bu sinyaller, kullanıcı tarayıcısını güncellediğinde, uzantı yüklediğinde veya sistem ayarlarını değiştirdiğinde değişir.
Dahil edilen sinyaller: User-Agent verileri, Client Hints (markalar, platform, mimari), navigator özellikleri (sağlayıcı, platform, diller), eklenti listesi, ekran renk derinliği, cihaz belleği, donanım paralelliği.
Katman 3, oturumlar arasında değişebilen uçucu sinyalleri yakalar. Bunlar güven puanlaması ve bulanık eşleştirme için kullanılır ancak çekirdek kimliği etkilemez.
Dahil edilen sinyaller: Ekran çözünürlüğü, saat dilimi, dil, DOM engelleyicileri, depolama yetenekleri, CSS media query yanıtları, bağlantı özellikleri.
Her katman, 128 bitlik çıktı üreten hızlı, kriptografik olmayan bir hash fonksiyonu olan MurmurHash3-x64-128 ile hash'lenir. Algoritma:
MurmurHash3 mükemmel bir dağılım sağlar (girişin her biti, çıktının her bitini etkiler) ve gerçek zamanlı hesaplama için yeterince hızlıdır. Kriptografik olarak güvenli değildir, ancak parmak izi hash'lemesi için bu gerekli de değildir.
Input: "canvas=abc123|webgl_renderer=ANGLE|audio=0.04852" ↓ MurmurHash3-x64-128Output: 0x7f4a8c2d1e3b5f6a 0x9d8c7b6a5e4f3d2c ↓ base62 encodeResult: "X7fh2Hg9LkMn3pQr5tBv"Güven puanı (0.0 ile 1.0 arasında), sistemin ziyaretçi kimliği konusunda ne kadar emin olduğunu ifade eder:
_vid_t çerezi bilinen bir ziyaretçiyle eşleştiğinde güven 1.0 olarak ayarlanır. Çerez, ziyaretçinin UID'sini tutar; sunucu bunu kendi kayıtlarına karşı doğrular. Bu, en hızlı ve en güvenilir kimlik belirleme yoludur.
Önceki bir kaydı olmayan yeni ziyaretçiler 0.90 güven puanı alır. Karşılaştırılacak mevcut kayıt bulunmadığından hatalı eşleşme riski yoktur.
Çerez eşleşmesi olmayan geri dönen ziyaretçiler için sistem, güveni şunlardan hesaplar:
Sinyal sıklığı ağırlıklandırması (IDF): Küresel popülasyon genelinde daha benzersiz olan sinyaller daha yüksek ağırlık alır. Nadir bir WebGL renderer, yaygın bir ekran çözünürlüğünden daha ayırt edicidir.
Bulanık eşleştirme: Sistem, mevcut parmak izini bit düzeyinde Hamming mesafesi kullanarak depolanan parmak izleriyle karşılaştırır. Sinyaller katmanlara göre gruplandırılır ve her katmanın eşleşme puanı bağımsız olarak ağırlıklandırılır.
Geçmişe dayalı tutarlılık: Bir ziyaretçinin sinyalleri birden fazla ziyaret boyunca kararlı kaldıysa güven artar. Sinyaller sık sık dalgalanıyorsa güven azalır.
| Senaryo | Tipik Puan | Açıklama |
|---|---|---|
| Çerez eşleşmesi | 1.000 | _vid_t çerez UID'si sunucu tarafında doğrulanır |
| İlk ziyaret | 0.900 | Karşılaştırılacak önceki kayıt yok |
| Güçlü parmak izi eşleşmesi | 0.990-0.999 | Tüm Katman 1 sinyalleri eşleşir, Katman 2'nin çoğu |
| Kısmi eşleşme (tarayıcı güncellemesi) | 0.950-0.989 | Katman 1 eşleşir, Katman 2 değişti (yeni UA) |
| Zayıf eşleşme (önemli değişiklikler) | 0.850-0.949 | Bazı Katman 1 sinyalleri değişti |
| Belirsiz | 0.500-0.849 | Veritabanında birden fazla olası eşleşme |
TRACIO, ziyaretçi kimliğini oturumlar arasında korumak için bir first-party çerezi (_vid_t) kullanır:
_vid_tSameSite=Lax ve HTTPS üzerinde Secure (HttpOnly değil — agent bunu istemci tarafında okur)Çerez hem sunucu tarafında (Set-Cookie yanıt başlığı aracılığıyla) hem de istemci tarafında agent tarafından verilir ve çerezler engellendiğinde bir yedek olarak UID ayrıca localStorage'a yansıtılır.
Sunucu, çerezi giderek daha geniş domain kapsamlarına ayarlamayı dener:
app.example.com → example.com → comÇerezin başarıyla ayarlandığı en geniş domain kullanılır. Bu, çerezin alt domainler arasında kalıcı olmasını sağlar.
TRACIO, Katman 1 sinyalleri eşleşen hash'ler ürettiğinde aynı kişiyi aynı cihazdaki farklı tarayıcılar arasında tanımlayabilir. Katman 1 donanım ve render özelliklerine (canvas, WebGL, ses, yazı tipleri) dayandığından, bu sinyaller aynı makinedeki Chromium tabanlı tarayıcılarda genellikle aynıdır ve motorlar arasında (Chromium ile Firefox ile Safari) benzerlik azalır. Bir masaüstü ziyaretçisini bir mobil ziyaretçiyle eşleştirmek beklenmez — donanım ve render yüzeyleri farklıdır.
Tarayıcılar arası eşleştirme, doğası gereği daha düşük güvenli bir işlemdir ve puanlamada buna göre ele alınır.