Dijital Ayak İzi Takibi Perde Arkasında Nasıl Çalışır
TLS el sıkışmalarından canvas render'ına — çerez ya da depolama kullanmadan 130'dan fazla pasif sinyalle bir cihazın dijital ayak izini nasıl yeniden oluşturuyoruz.
İnternete bağlanan her cihaz, ardında teknik izler bırakır — bir dijital ayak izi. tracio.ai'de bu ayak izini, çerezlere, localStorage'a ya da herhangi bir kalıcı istemci tarafı depolamaya güvenmeden, tek bir sayfa yüklenmesi sırasında toplanan 130'dan fazla pasif sinyalden yeniden oluşturuyoruz. Bu makale, sürecin tam olarak nasıl işlediğini açıklıyor.
Sinyal Toplama Katmanı
JavaScript ajanımız bir ziyaretçinin tarayıcısında yüklendiğinde, birden fazla kategoride sinyalleri eş zamanlı olarak toplamaya başlar. Canvas render'ı, WebGL parametre sorguları, AudioContext işleme, font sayımı ve navigator özelliği okumalarının hepsi paralel olarak çalışır. Tüm toplama süreci, modern donanımda 50 milisaniyeden kısa sürede tamamlanır.
Buradaki kilit nokta, her sinyalin cihazın donanım ve yazılım yığınının farklı bir yönünü yakalamasıdır. Canvas render'ı GPU'yu, sürücüyü ve font render motorunu yansıtır. WebGL parametreleri ekran kartı modelini ve yeteneklerini açığa çıkarır. AudioContext, ses DSP'sinin kayan nokta işlemlerini nasıl işlediğindeki farklılıkları ortaya koyar. Navigator özellikleri CPU çekirdeklerini, belleği, platformu ve dil ayarlarını raporlar.
Ekibimiz bunu geçen ay 2 milyar olay genelinde ölçtü: medyan toplama süresi 38ms, 99. yüzdelik dilim ise 52ms idi. Aslında önce naif yaklaşımı denedik — sinyalleri sıralı olarak toplamayı. 40 kat daha yavaştı. Zaman aşımı bariyerli paralel toplama, doğru yaptığımız ilk mimari kararlardan biriydi.
TLS Parmak İzi: İlk Katman
JavaScript'imiz daha çalışmaya başlamadan bile, tarayıcı TLS el sıkışması aracılığıyla halihazırda önemli bilgiler açığa çıkarmıştır. Client Hello mesajı, tarayıcının desteklediği şifreleme paketlerini, kullandığı TLS uzantılarını, tercih ettiği eliptik eğrileri ve kabul ettiği imza algoritmalarını içerir. Bu bilgi, tarayıcının TLS kütüphanesi tarafından belirlenir ve tarayıcı aileleri, sürümleri ile işletim sistemleri arasında önemli ölçüde farklılık gösterir.
Bu TLS parmak izini JA4 hash'i kullanarak yakalıyoruz — JA3'ün, daha iyi ayırt edicilik ve sürümler arası kararlılık sağlayan modern bir alternatifi. JA4 hash'i tek başına Chrome'u Firefox'tan, Safari'den ayırt edebilir ve kimlik tespitini çoğu zaman belirli bir tarayıcı sürüm aralığına daraltır. İstemci tarafı sinyallerimizle birleştiğinde, taklit edilmesi son derece zor bir çapraz doğrulama katmanı sağlar.
Canvas ve GPU Parmak İzi
Canvas parmak izi, farklı GPU'ların aynı çizim talimatlarını piksel düzeyinde ince farklılıklarla render etmesinden yararlanır. Canvas API, özenle tasarlanmış bir sahne çizmemize olanak tanır — birden fazla fontta belirli metin dizeleri, belirli koordinatlara sahip geometrik şekiller ve kesin renk duraklarına sahip gradyanlar — ardından ortaya çıkan piksel verisinin bir hash'ini hesaplarız.
Render farklılıkları; GPU modelleri ve sürücü sürümleri arasında kenar yumuşatma algoritmalarındaki, alt piksel render'ındaki, renk harmanlamasındaki ve font hinting'indeki farklılıklardan kaynaklanır. Aynı GPU modeline sahip iki cihaz bile, farklı sürücü sürümleri ya da işletim sistemleri kullanıyorsa farklı canvas çıktıları üretebilir. Bu da canvas hash'ini en ayırt edici sinyallerimizden biri yapar.
WebGL Donanım Profillemesi
WebGL API
, grafik alt sistemi hakkında renderer ve vendor dizelerinin çok ötesine geçen ayrıntılı bilgiler açığa çıkarır. Maksimum doku boyutlarını, shader hassasiyet formatlarını, desteklenen uzantıları, görüntü alanı boyutlarını ve GPU modelleri ile sürücü yapılandırmaları arasında farklılık gösteren onlarca başka parametreyi sorgularız.
Bu parametrelerin birleşimi ayrıntılı bir donanım profili oluşturur. Örneğin bir NVIDIA RTX 4070'e sahip bir cihaz, bir AMD RX 7800 XT'ye sahip bir cihazdan farklı maksimum doku boyutları, farklı shader hassasiyeti ve farklı uzantı desteği raporlar. Bu donanım profili doğası gereği kararlıdır — tarayıcı güncellemeleriyle değil, yalnızca donanım ya da sürücü değişiklikleriyle değişir.
Ses İşleme Parmak İzi
Web Audio API, donanıma bağlı bir başka sinyal kaynağı sağlar. Bir osilatör düğümü oluşturur, onu bir dinamik kompresöre bağlar ve çıkış tamponunu ölçeriz. Ses donanımı ve işletim sistemleri arasında kayan nokta hassasiyetindeki, DSP uygulamasındaki ve yeniden örnekleme algoritmalarındaki farklılıklar, çıktıda ölçülebilir varyasyonlar üretir.
Ses parmak izleri orta düzeyde benzersizliğe ama olağanüstü kararlılığa sahiptir. Ses işleme hattı, kullanıcı ses donanımını değiştirmedikçe ya da işletim sistemini yeniden kurmadıkça nadiren değişir. Bu da ses sinyallerini çok kademeli kimlik tespiti sistemimizde değerli çapa noktaları yapar.
Sinyal Füzyonu ve Kimlik Çözümlemesi
Ham sinyaller şifrelenir ve sunucumuza iletilir; burada cihaz kimlik tespiti motoru bunları üç kademeli bir hash sistemi üzerinden işler. Donanım düzeyindeki sinyaller (canvas, WebGL, ses) Kademe 1'i oluşturur — kararlı çekirdek kimliği. Tarayıcı düzeyindeki sinyaller (özellik tespiti, CSS özellikleri, medya yetenekleri) Kademe 2'yi oluşturur ve tarayıcı güncellemelerinden kaynaklanan beklenen sapmayı ele almak için oturumlar arası eşleştirme yoluyla işlenir. Değişken sinyaller (user agent, saat dilimi, dil) Kademe 3'ü oluşturur ve kimlik kararlarını yönlendirmeden güven puanlamasına katkıda bulunur.
Füzyon algoritması, her sinyali benzersizliğine ve kararlılığına göre ağırlıklandırır. Nadir bir canvas hash'indeki bir eşleşme, yaygın bir ekran çözünürlüğündeki bir eşleşmeden çok daha fazla ağırlık taşır. Bu ağırlıklı yaklaşım, sinyallerin bir alt kümesi değişse bile kimlik tespitinin doğru kalmasını sağlar.
Depolama Yok, Çerez Yok
Sistemimizin kritik bir tasarım ilkesi, kimlik tespitinin herhangi bir istemci tarafı depolama biçimine bağlı olmamasıdır. Takip amacıyla çerez ayarlamaz, localStorage'a yazmaz ya da IndexedDB kullanmayız. Ziyaretçi kimliği tamamen cihazın kendine özgü özelliklerinden türetilir — donanımdan, yazılım yığınından, ağ yapılandırmasından. Bu, kimlik tespitinin çerez temizlemesine, gizli moda ve hatta tarayıcı yeniden kurulumuna dayanması anlamına gelir.
Mimariyle Gelen Gizlilik
Yalnızca teknik tarayıcı özniteliklerini topladığımız için — tarama geçmişi yok, form verisi yok, kişisel içerik yok — gizlilik üzerindeki etki asgari düzeydedir. W3C Fingerprinting Guidance, tarayıcı sinyallerinin sorumlu kullanımına yönelik en iyi uygulamaları özetler ve mimarimiz bu ilkelerle uyumludur. Bulut tabanlı dağıtım ile tüm işleme kendi altyapınızda gerçekleşir. Hiçbir ziyaretçi verisi sunucularımıza ulaşmaz. Bu mimari, GDPR, CCPA ve diğer gizlilik düzenlemelerine uyumu basit hale getirir.