Cihaz parmak izi aslında nasıl çalışır: 50 ms'lik bir kararın ardındaki mühendislik
Cihaz parmak izinin mühendislik hâli: beş sinyal katmanında ne toplanır, sinyaller nasıl kararlı bir tanımlayıcıya dönüşür, polimorfik kod neden önemlidir ve tüm bunlar 50 ms'lik bir karara nasıl varır.
Cihaz parmak izi çoğu zaman pazarlama diliyle, çok daha nadiren ise mühendislik diliyle konuşulur. Pazarlama dili belirsizdir — "130 sinyal", "%99,5 doğruluk", "polimorfik tespit". Bir parmak izi sisteminin gerçekten çalışıp çalışmadığını değerlendirmek için önemli olan mühendislik ayrıntıları ise genellikle gözden kaçar.
Bu yazı, SaaS, iGaming, AdTech ve FinTech platformlarındaki teknik karar vericiler için yazılmış mühendislik versiyonudur. Hedef kitle, bir cihaz zekâsı (device intelligence) katmanı devreye almayı değerlendirirken kaputun altında neler olup bittiğini anlaması gereken ürün yöneticileri, mühendislik liderleri ve güvenlik mimarlarıdır.
Yapısı şöyle: neler toplanır, sinyaller kararlı bir tanımlayıcıya nasıl bir araya getirilir, sistem gizlilik öncelikli tarayıcılarla nasıl başa çıkar, polimorfik kod neden önemlidir ve mimari kararlar, sağlayıcı pazarlamasının öne sürdüğü gecikme (latency) ve doğruluk rakamlarına nasıl dönüşür.
"Cihaz parmak izi" aslında ne demek
Cihaz parmak izi; cihaz, tarayıcı ve ağ ortamı hakkındaki birçok küçük bilgi parçasından oluşturulan olasılıksal bir tanımlayıcıdır. Her parça tek başına çok az benzersizlik sağlar. Yeterince boyutta bir araya geldiğinde ise bir cihazı çok yüksek olasılıkla tanımlar.
Sezgisi şöyle: herhangi bir tekil tarayıcı özelliği — diyelim ekran çözünürlüğü — internetteki cihaz nüfusu genelinde belki 5 bit entropiye sahiptir. Bunu bu tür 50 özellikle çarpın, teorik olarak 250 bit entropi elde edersiniz; bu da Dünya üzerindeki herhangi bir tekil cihazı tanımlamak için gerekenden çok daha fazladır. Pratikte özellikler birbiriyle ilişkilidir, dolayısıyla gerçek entropi teorik maksimumdan düşüktür. Ama modern herhangi bir parmak izi sistemi için birleşik entropi, cihazları son derece yüksek doğrulukla tanımlamaya yeter.
Olasılıksal doğası önemlidir. Cihaz parmak izleri, çerezler veya oturum kimlik bilgileri gibi kesin tanımlayıcılar değildir. İstatistiksel eşleşmelerdir: "bu cihazın üç hafta önce gördüğümüz cihazla aynı olma olasılığı %99,5." %0,5'lik belirsizlik uç durumlarda (büyük donanım değişiklikleri geçirmiş cihazlar, fabrika durumuna sıfırlanmış tarayıcılar) önemlidir ama çoğu üretim senaryosu için önemli değildir.
Beş sinyal katmanı
Modern bir parmak izi sistemi sinyalleri birden çok katmanda toplar; çünkü her katman farklı biçimlerde ve bağımsız olarak sahteciliğe dirençlidir ve bunların birleşimini taklit etmek, herhangi bir tekil katmanı taklit etmekten daha zordur.
Katman 1: Tarayıcı özellikleri
En temel katman. JavaScript, tarayıcı ortamının gözlemlenebilir özelliklerini toplar:
Canvas render. Bir canvas öğesine karmaşık bir şekil çizin, ortaya çıkan pikselleri hash'leyin. Farklı tarayıcılar, GPU sürücüleri, yazı tipi render motorları ve kenar yumuşatma (anti-aliasing) ayarları hafifçe farklı çıktı üretir. Canvas hash'i belirli bir cihaz için kararlıdır ama cihazlar arasında değişir.
WebGL imzası. WebGL render motorunu üreticisi, render dizesi ve desteklenen uzantıları hakkında sorgulayın; çıktısı GPU özelliklerini yansıtan küçük grafik işlemleri çalıştırın. WebGL, canvas'a göre daha fazla entropi sağlar çünkü GPU çeşitliliği yüksektir.
Yazı tipi listesi. Belirli yazı tiplerinde render edilen metnin genişliklerini ölçerek hangi yazı tiplerinin kurulu olduğunu belirleyin. Farklı işletim sistemi kurulumlarının farklı yazı tipi kümeleri vardır; bunlar belirli bir cihaz için kararlıdır ama cihazlar arasında ayırt edicidir.
Ekran özellikleri. Çözünürlük, renk derinliği, piksel yoğunluğu, dokunma yeteneği. Tek tek mütevazı entropi; birleştiğinde anlamlı.
Navigator özellikleri. User-Agent dizesi, dil tercihleri, platform tanımı, eklenti listesi (hâlâ açık olduğu yerde), donanım eşzamanlılığı (hardware concurrency) ipucu.
Saat dilimi ve yerel ayar (locale). Belirli bir kullanıcı için kararlı, kullanıcılar arasında değişkendir.
Bu katman tek başına tipik uygulamalarda 15–20 bit entropi sağlar. Aynı zamanda, tam da bu sinyalleri hedefleyen anti-detect tarayıcılar tarafından en kolay taklit edilen katmandır.
Katman 2: Donanım sinyalleri
Tarayıcının bildirdiği değerler yerine gerçek donanım davranışına dayanan daha derin sinyaller:
AudioContext parmak izi. Web Audio API ile ses üretin, çıktı arabelleğini inceleyin. Gerçek ses donanımı, sanallaştırılmış ortamlara göre hafifçe farklı kayan nokta çıktısı üretir. Sinyal küçüktür ama istemci tarafı sahteciliğe dirençlidir.
Gerçek zamanlı saat sapması (clock skew). Çeşitli işlemlerin zamanlama özelliklerini ölçün. Gerçek tüketici cihazlarında JIT derlemesi, çöp toplama (garbage collection) ve işletim sistemi düzeyindeki kesmelerden kaynaklanan varyans vardır. Sanallaştırılmış ortamlarda çalışan bulut barındırmalı tarayıcılar ise fazla düzgün olma eğilimindedir.
Mobilde sensör verisi. Etkileşim sırasında ivmeölçer, jiroskop, manyetometre değerleri. Gerçek cihaz kullanımı, sensör çıktısında sürekli varyasyon üretir. Simüle edilmiş ortamlar bunu gerçekçi biçimde yeniden üretmekte çoğu zaman başarısız olur.
Performance API. Belirli hesaplama örüntülerinin zamanlamasını ölçün. Gerçek GPU'lar, milisaniye altı çözünürlükte taklit edilmesi zor, karakteristik kayan nokta örüntülerine sahiptir.
Battery API (desteklendiği yerde). Pil yüzdesi ve şarj durumu. Gerçek cihazlarda gerçekçi pil örüntüleri vardır; bulut örnekleri çoğu zaman varyasyon olmadan %100 şarj gösterir.
Bu katman 5–10 bit ek entropi sağlar ve bildirilen değerler yerine gerçek donanım davranışına dayandığı için tarayıcı katmanına göre sahteciliğe daha dirençlidir.
Katman 3: Ağ özellikleri
İstemcideki JavaScript ne bildirirse bildirsin, sunucu tarafından gözlemlenebilen sinyaller:
TCP parmak izi. Ağ yığınlarının TCP paketlerini nasıl biçimlendirdiğine dair karakteristik örüntüleri vardır — pencere boyutları, seçenek sıralaması, varsayılan bayraklar. Parmak izi, işletim sisteminin ağ yığınını yüksek güvenle tanımlar ve JavaScript katmanında taklit edilemez.
TLS parmak izi (JA3/JA4 hash'leri). TLS ClientHello mesajı; şifre paketi (cipher suite) tercihlerini, uzantıları ve eliptik eğri tercihlerini belirli bir sırada içerir. Farklı TLS kütüphaneleri farklı örüntüler üretir. Bunu JA3 veya JA4 biçiminde hash'leyin, ağ düzeyinde kararlı bir tanımlayıcı elde edersiniz.
HTTP/2 çerçeve sıralaması. HTTP/2 bağlantı başlatma sürecinin uygulamaya özgü örüntüleri vardır. Farklı kütüphaneler (Chrome, Firefox, Safari, Python requests, Go HTTP vb.) ince biçimde farklı örüntüler üretir.
İstek zamanlama örüntüleri. Gerçek tüketici bağlantılarında ağ koşullarına, NAT çevirisine ve ISP yönlendirmesine bağlı olarak değişken gecikme vardır. Bulut barındırmalı otomasyonda ise yüksek kaliteli ağ yollarından gelen daha tekdüze zamanlama örüntüleri görülür.
ASN ve IP itibarı. Bağlanan IP'nin bir tüketici ISP'sine mi, bir veri merkezine mi, bir VPN hizmetine mi, bir konut (residential) proxy'sine mi, yoksa bilinen bir otomasyon altyapısı sağlayıcısına mı ait olduğu. Gerçek kullanıcıları otomasyondan ayırmak için önemlidir.
Bu katman kritiktir çünkü sunucu tarafında çalışır ve orada istemci tarafı sahteciliği geçerli değildir. İstemci hangi tarayıcıyı çalıştırdığı konusunda yalan söyleyebilir; ağ paketleri ise onları gerçekte hangi yığının ürettiğini açığa çıkarır.
Katman 4: Davranışsal sinyaller
Zaman içindeki kullanıcı etkileşimi örüntüleri:
Fare hareketi. Eğrilik, ivme, titreme (jitter). Gerçek insan fare hareketinin milisaniye altı çözünürlükte, otomasyonda yeniden üretilmesi zor karakteristik gürültü örüntüleri vardır.
Tuş vuruşu dinamiği. Tuşlar arası zamanlama, hata düzeltme örüntüleri, değiştirici (modifier) tuş kullanımı. Farklı insanların farklı yazma ritimleri vardır. Otomasyon tipik olarak ya fazla tekdüze (betik tabanlı) ya da fazla temiz (bazı ajan tabanlı) örüntüler üretir.
Kaydırma (scroll) örüntüleri. Hız, ivme, duraklamalar, yön değişiklikleri. Gerçek okuma karakteristik kaydırma örüntüleri üretir; otomasyon ise çoğu zaman matematiksel olarak temiz aralıklarla kaydırır.
Form doldurma zamanlaması. Odak (focus) olayları arasındaki süre, sekme geçişleri, alan tamamlama. İnsanlar formları karakteristik duraklamalarla doldurur; otomasyon ise ya anında ya da şüpheli biçimde tekdüze aralıklarla doldurma eğilimindedir.
Bu katman tek başına mütevazı entropi sağlar ama belirli saldırı kategorilerini (özellikle credential stuffing ve hesap ele geçirme) yakalamak için diğer katmanlarla iyi birleşir.
Katman 5: Ortam tutarlılığı
Katmanlar arası tutarlılık kontrolleri. Temel içgörü şu: tekil sinyaller taklit edilebilir, ama tüm sinyaller genelinde tutarlılığı tutarlı biçimde korumak çok daha zordur.
Tutarsızlık örnekleri:
- JavaScript "macOS'ta Chrome 120" der ama WebGL render motoru Mesa sürücülerini bildirir (Linux/Wayland göstergesi)
- TCP parmak izi bir Linux sunucusuyla eşleşir ama JavaScript ortamı iOS iddiasında bulunur
- Ses parmak izi Windows ile eşleşir ama yazı tipi listesi macOS ile eşleşir
- Bildirilen saat dilimi Pasifik ile eşleşir ama ağ gecikmesi örüntüleri Avrupa yönlendirmesiyle eşleşir
Sahtecilik araçları tekil sinyalleri özenle ele alır. Tüm sinyaller genelinde tutarlılığı aynı anda korumak, çoğu otomasyon altyapısının sahip olduğundan daha fazla incelik gerektirir. Modern kaçınma girişimlerinin çoğunu yakalayan katman budur.
Sinyaller nasıl kararlı bir tanımlayıcıya dönüşür
Ham sinyaller bir cihazı doğrudan tanımlamaz. Sistemin bunları, normal cihaz değişikliklerinden (tarayıcı güncellemeleri, işletim sistemi güncellemeleri, ara sıra IP değişiklikleri, tek bir bileşenin donanım yenilemesi) sağ çıkan kararlı bir tanımlayıcıya çevirmesi gerekir.
Mimari örüntü:
Parmak izi hesaplama. Sinyalleri, cihazın mevcut gözlemini temsil eden yüksek boyutlu bir vektörde birleştirin.
ML eşleştirme. Mevcut parmak izini, sistemin veritabanında daha önce görülen parmak izleriyle karşılaştırın. Artımlı değişikliklere rağmen cihazları tanımak için eğitilmiş bir model kullanın — tarayıcı güncellemesi almış aynı dizüstü bilgisayar önceki gözlemle eşleşmeli; benzer özelliklere sahip farklı bir dizüstü bilgisayar ise eşleşmemelidir.
Tanımlayıcı ataması. Yüksek güvenle bir eşleşme olduğunda mevcut Visitor ID atanır. Eşleşme olmadığında yeni bir Visitor ID oluşturulur. Belirsiz güvenle kısmi bir eşleşme olduğunda ek doğrulama için işaretlenir.
Küme (cluster) bakımı. Cihazlar gözlem biriktirdikçe sistem her cihazın doğal varyasyonunu öğrenir. "Senin dizüstü bilgisayarının" parmak izi sabit bir değer değildir — tarayıcı, işletim sistemi ve ağ ortamı geliştikçe zaman içinde yavaşça kayan bir gözlem kümesidir.
Matematiksel temeller iyi anlaşılmıştır. Doğruluk için uygulama ayrıntıları önemlidir. Kötü ayarlanmış bir eşleştirme modeli ya yüksek yanlış pozitif oranı (farklı cihazların aynı sayılması) ya da yüksek yanlış negatif oranı (aynı cihazın ziyaretler arasında farklı sayılması) üretir. Her iki hata da kullanım senaryosuna zarar verir.
"%99,5" doğruluk iddiası, geri dönen bir cihazın 30 günlük bir pencerede önceki Visitor ID'siyle doğru eşleştirilme oranını ifade eder. Olgun sistemler buna ulaşır; olgunlaşmamış olanlar geride kalır. Sağlayıcılara sorulması gereken metrik, manşet rakamı değil, zaman ufku boyunca doğruluktur.
Polimorfik kod neden önemli
Olgun parmak izi sistemlerini daha az olgun olanlardan ayıran belirli bir mimari karar: sinyalleri toplayan istemci tarafı JavaScript düzenli olarak değişir.
Nedeni: anti-detect tarayıcı sağlayıcıları tespit betiklerini tersine mühendislikle çözer ve bilinen sondalar için doğru değerleri döndüren yamalar yayınlar. Statik istemci tarafı kodla, tespit betiğine karşı yayınlanan bir kaçınma, betik değişene dek süresiz çalışır.
Polimorfik dağıtım bunu değiştirir:
- Tespit betiği, sonda başına 50–100+ varyanttan oluşan bir havuzdan istek üzerine üretilir
- Her istemci sayfa yüklenirken benzersiz bir kombinasyon alır
- Fonksiyon adları, değişken adları ve kontrol sırası rastgeleleştirilir
- Kod gizleme (obfuscation), statik analizi zorlaştırır
Sonuç: anti-detect sağlayıcıları tüm varyantları yenen tek bir yama yayınlayamaz. Alınan belirli koda uyum sağlayan dinamik yamalar yayınlamaları gerekir ki bu çok daha zordur. Kaçınma penceresi aylardan günlere iner.
Uygulama, sunucu tarafında varyant yönetimi ve hata ayıklamaya (debugging) direnen istemci tarafı kodu (anti-debugger tuzakları, tarayıcı geliştirici araçlarını tespit eden kod) gerektirir. Bu bir mühendislik yatırımıdır ama ayakta kalan bir tespit ile herhangi bir güncellemeden haftalar sonra yenilen bir tespit arasındaki fark budur.
50 ms gecikme iddiası
Pazarlama materyalleri sık sık gecikme iddiaları öne sürer. 50 ms'lik bir kararın ardındaki mühendislik gerçekleri:
Zaman nereye gider:
- İstemci tarafı sinyal toplama: 10–30 ms (bazı sinyaller asenkron ölçüm gerektirir)
- Doğrulama hizmetine ağ gidiş-dönüşü: 5–15 ms (coğrafyaya bağlı)
- Sunucu tarafı parmak izi eşleştirme: 5–15 ms
- Karar mantığının uygulanması: 1–5 ms
- İstemciye geri ağ gidiş-dönüşü: 5–15 ms
Toplam: coğrafi konuma ve sinyal karışımına bağlı olarak 26–80 ms. 50 ms iddiası, iyi dağıtılmış bir kurulumdaki tipik bir durumu ifade eder.
Gecikmeye zarar verenler:
- Sayfa render'ını engelleyen senkron sinyal toplama
- Uygun indeksleme olmadan büyük tarihsel parmak izi kümelerine yönelik veritabanı sorguları
- Uzun ağ gidiş-dönüşlerini zorlayan tek bölgeli dağıtım
- Verimsiz sinyal hesaplama (bazı sinyaller JavaScript motoru üzerinden birden çok gidiş-dönüş gerektirir)
Gecikmeye yardımcı olanlar:
- Arka planda çalışan asenkron sinyal toplama
- Uçta (edge) dağıtılmış doğrulama (sinyal işlemenin kullanıcıya yakın olması)
- Yaklaşık en yakın komşu (approximate nearest-neighbor) algoritmalarıyla optimize edilmiş parmak izi eşleştirme
- Tekrar eden ziyaretçiler için önbellekleme (caching)
50 ms hedefi, doğru mühendislikle kurulmuş sistemler için ulaşılabilirdir. Daha yavaş sistemler de vardır (bazı sağlayıcıların 200–500 ms gecikme iddiaları, temel bir sınırı değil, yetersiz mühendisliği yansıtır).
Gizlilik öncelikli tarayıcı uyumluluğu
Büyük tarayıcılar, takibi kısıtlamak için tasarlanmış gizlilik özellikleri sunar. Özellikle Chrome'un Privacy Sandbox'ı, Safari'nin Intelligent Tracking Prevention'ı, Firefox'un Enhanced Tracking Protection'ı. Soru şu: parmak izi bu ortamda hâlâ çalışır mı?
Yanıt iki kullanım senaryosunu ayırt etmeyi gerektirir:
Siteler arası takip. Kullanıcıları reklam veya analitik için birbiriyle ilgisiz birçok sitede tanımlamak. Gizlilik özelliklerinin başlıca hedefi budur. Üçüncü taraf çerezler engellenir. Bazı parmak izi sondaları kısıtlanır (canvas rastgeleleştirme, yazı tipi numaralandırma değişiklikleri). Siteler arası takip senaryosu gerçekten daha zordur.
Birinci taraf tanımlama. Bir platformun kendi sitesindeki kendi ziyaretçilerini güvenlik ve dolandırıcılık amacıyla tanımlaması. Gizlilik özellikleri bunu kısıtlamaz — temel web işlevselliğini bozmadan bunu yapamazlar. Birinci taraf cihaz tanımlama çalışmaya devam eder çünkü gizlilik özelliklerinin kısıtladığı siteler arası mekanizmalara ihtiyaç duymaz.
Dolandırıcılık önlemeye yönelik parmak izi ikinci kategoriye girer. Platform kendi ziyaretçilerini kendi sayfalarında tanımlar. Siteler arası takibi hedefleyen gizlilik özellikleri bu kullanım senaryosunu etkilemez.
Yine de mimari vurgu kayıyor. Modern parmak izi sistemleri sunucu tarafı sinyallere (TCP/TLS parmak izi, ağ davranışı) daha fazla, gelecekte kısıtlanabilecek istemci tarafı sondalara ise daha az ağırlık verir. Gizlilik öncelikli dünya için kurulmuş sistemler temiz biçimde uyum sağlar; statik istemci tarafı sondalar etrafında kurulmuş sistemlerin ise evrilmesi gerekir.
Bunun değerlendirme açısından anlamı
Cihaz zekâsı sağlayıcılarını değerlendiriyorsanız, bilgilendirici yanıtlar üreten mühendislik soruları şunlardır:
Soru 1: Katman bazında sinyal kapsamınız nedir? Yalnızca tarayıcı katmanı sinyallerine odaklanan sağlayıcılar anti-detect tarayıcı kaçınmasına açıktır. Ağ ve davranışsal sinyalleri de içeren çok katmanlı kapsam daha iyi ayakta kalır.
Soru 2: Eşleştirme modeliniz artımlı cihaz değişikliklerini nasıl ele alır? Naif eşleştirmeye sahip sağlayıcılar (sinyallerde herhangi bir değişiklik = farklı cihaz) yüksek yanlış negatif oranı üretir. Olgun eşleştirme modelleri kaymayı (drift) zarif biçimde ele alır.
Soru 3: Polimorfik istemci kodu yayınlıyor musunuz? Statik istemci kodu tersine mühendislikle çözülür ve yenilir. Polimorfik kodu atlatmak anlamlı biçimde daha zordur.
Soru 4: Beklediğimiz hacimde gecikmeniz nedir? Gerçek test, pazarlama kıyaslamaları değil, yük altındaki P99 gecikmesidir.
Soru 5: Müşteriler arası sinyal paylaşımını nasıl ele alıyorsunuz? Müşteri tabanları genelinde anonimleştirilmiş sinyal paylaşımı, birden çok platforma yayılan dolandırıcılık operasyonlarını yakalar. Sağlayıcının ağ etkisi, değerin bir parçasıdır.
Soru 6: Doğruluk iddianız zaman içinde nasıl bozulur? 1. günde %99,5 doğruluk iddia eden bir sağlayıcının, bu rakamın 30. günde, 90. günde, 180. günde ne olduğunu açıklaması gerekir.
Bu sorular, mühendislik işini yapmış sağlayıcılar ile güçlü pazarlama ama zayıf teknik temellere sahip sağlayıcıları ortaya çıkarır.
Tracio'nun yeri
Tracio'nun mimarisi yukarıda açıklanan beş sinyal katmanını kapsar: tarayıcı özellikleri, donanım sinyalleri, ağ özellikleri, davranışsal örüntüler ve ortam tutarlılığı kontrolleri. Toplama, cihaz başına 130+ sinyal genelinde çalışır ve katmanlar arası tutarlılık birincil tespit yüzeyidir.
Polimorfik JavaScript katmanı günlük olarak değişir. Eşleştirme modeli, artımlı cihaz değişikliklerini 30 günlük ufukta %99,5 doğrulukla ele alır. Karar — ALLOW, CHALLENGE veya BLOCK — 50 ms'nin altında, doğrulama ve ayarlama için altta yatan sinyaller eklenmiş olarak döner.
Dağıtım, sayfada bir SDK ve her karar noktasında bir sunucu tarafı verify çağrısından ibarettir. Ücretsiz kademe ayda 2.500 doğrulamayı kapsar — gerçek trafiğe karşı anlamlı bir teknik değerlendirme yürütmeye yetecek kadar.
Tracio parmak izinin sizin özel trafiğinizi nasıl ele aldığını görmek ister misiniz?
Ücretsiz denemenizi başlatın — 2.500 doğrulama ücretsiz, kredi kartı gerekmez. Teknik mimariyi ekibimizle adım adım gözden geçirmek ve kendi tehdit modelinize karşı yapılandırılmış bir değerlendirme yürütmek için bir demo ayarlayın.