Bloga dön

Tarayıcı parmak izi maruziyetini kontrol edin: altı tutarlılık testi

Parmak izi test sayfaları, web sitelerinin zaten okuyabildiği birçok veriyi gösterir. Bu altı kontrol tarayıcı, sistem, bölge, ağ ve işleme verileri arasındaki çelişkileri bulmaya yardımcı olur; çünkü birbiriyle uyuşmayan sinyaller tek bir sıra dışı değerden daha kolay fark edilir.

Herhangi bir tarayıcı parmak izi test sayfasını açtığınızda uzun bir alan listesi görürsünüz: UA, ekran, saat dilimi, yazı tipleri, Canvas işleme sonuçları ve donanım parametreleri. Çoğu kişi önce “benzersizlik” değerine bakar, ancak aslında en az önemli kısım budur. Asıl önemli olan, bu alanların birbiriyle tutarlı olup olmadığıdır.

浏览器指纹暴露自查:六项核对与自洽判断的关键步骤与判断维度示意图

Web siteleri zaten hangi bilgileri okuyabilir

Parmak izi, cookie gibi saklanmaz. Cookie'leri silebilir, engelleyebilir veya gizli modla bunlardan kaçınabilirsiniz; parmak izi ise tarayıcının ve cihazın kendi yapılandırmasından oluşur. UA, tarayıcı türü ve sürümünün yanı sıra işletim sistemi ve sürümünü de içerir. Buna yüklü eklentiler, ekran çözünürlüğü ve renk derinliği, yazı tipi listesi, saat dilimi ve tercih edilen dil, CPU türü, GPU modeli ve bellek, IP adresi, servis sağlayıcı ve bağlantı türü ile Canvas ve WebGL gibi HTML5 arayüzlerinin döndürdüğü işleme sonuçları da eklenir. Bu alanlar birlikte bir tanımlayıcı oluşturur ve IP değiştirildiğinde, cookie'ler temizlendiğinde ya da gizli mod kullanıldığında genellikle pek değişmez. Platformlar, hesapların birbiriyle ilişkili olup olmadığını değerlendirirken aynı temel prensibi kullanır.

Önce üç öğeyi sistemle karşılaştırın

User Agent iyi bir başlangıç noktasıdır, çünkü tarayıcının kendini tanımlama biçimidir. Test sayfasındaki UA'yı kopyalayın, tarayıcı ayarlarından tarayıcı sürümünü ve sistem ayarlarından işletim sistemi sürümünü kontrol edin. UA'nın bildirdiği sistem veya çekirdek sürümü gerçek makineyle uyuşmuyorsa ya da güncel ve yaygın sürümlerin açıkça gerisindeyse, bu en kolay fark edilen tutarsızlıklardan biridir.

Saat dilimi, ağ çıkışının bulunduğu bölgeyle uyuşmalıdır. Test sayfaları genellikle mevcut saat dilimini doğrudan gösterir ve basit bir saat dilimi sorgulama betiği de aynı değeri verir. Ayrıca herhangi bir IP sorgulama sayfasından çıkış IP'sinin hangi bölgeye ait göründüğünü kontrol edin. İkisi farklı bölgeleri gösteriyorsa bu uyumsuzluk ele alınmalıdır.

Dil ve bölge tek başına zayıf sinyallerdir, ancak birlikte anlamlı hale gelir. navigator.language ve navigator.languages tarafından döndürülen listeyi kontrol edin ve çıkış bölgesinde yaygın olan dillerle karşılaştırın. Saat diliminin ABD'de, dilin Çince ve çıkışın Avrupa'da olması, bu öğelerden herhangi birinin tek başına farklı olmasından daha dikkat çekicidir.

Ekran, ağ çıkışı ve işleme özellikleri

Ekran ve donanım parametrelerinde iki şeye bakın: değerlerin ne kadar yaygın olduğu ve UA'nın bildirdiği cihaz türüyle uyuşup uyuşmadığı. Çözünürlük, piksel oranı, kullanılabilir alan, CPU çekirdek sayısı ve bellek birlikte değerlendirilebilir. Telefon boyutunda bir çözünürlüğün masaüstü UA ile eşleşmesi tipik bir çelişkidir.

WebRTC ayrıca kontrol edilmelidir, çünkü gerçek ağ bilgilerini açığa çıkarabilir. Test sayfaları bunu genellikle ayrı bir öğe olarak gösterir. 192.168 veya 10 ile başlayan yerel bir ağ adresinin ya da doğrudan gerçek genel çıkış adresinin dönüp dönmediğine bakın. Proxy açık olduğu halde gerçek adres görünüyorsa ilgili trafik proxy üzerinden geçmiyor demektir. Bu kontrol en yüksek önceliğe sahiptir.

Canvas ve WebGL için sonuçların kararlı olup olmadığına ve bildirilen GPU modeliyle uyuşup uyuşmadığına bakın. Önemli bir ayrıntı şudur: aynı makinede yan yana çalışan birden çok ortam tam olarak aynı işleme değerlerini döndürüyorsa, değerlerde bir miktar değişkenlik veya gürültü olmasına kıyasla bu ortamları birbiriyle ilişkilendirmek daha kolaydır.

Çelişkiler, kusurlu gerçekçilikten daha fazla dikkat çeker

Platformlar her cihazın tamamen benzersiz olmasını istemez. Değerlendirdikleri şey, bilgi kümesinin normal bir makineden gelmiş gibi görünüp görünmediğidir. Örneğin nadir bir çözünürlük gibi tek bir değerin yeterince “gerçekçi” olmaması genellikle yalnızca zayıf bir sinyaldir. Birkaç alan birbiriyle çeliştiğinde ise tutarsızlık çok daha kolay fark edilir. UA Windows derken yazı tipi listesi macOS'a benziyorsa; saat dilimi ABD, dil Çince ve çıkış Avrupa'daysa; çözünürlük telefon boyutunda ama UA masaüstü tarayıcı diyorsa, bunlardan herhangi biri diğer alanlardaki ince ayarların etkisini azaltabilir. Bu nedenle kendi kontrolünüzde önce açık çelişkileri bulun, parametre ayrıntılarına daha sonra geçin.

Yalnızca üç şeyi düzeltecekseniz

İlk sırada WebRTC sızıntısı vardır, çünkü gerçek ağ bilgilerini açığa çıkarır. İkinci olarak saat dilimi ve dil, çıkış bölgesiyle tutarlı olmalıdır; bu tür uyumsuzluklar birleşerek kolayca anormal bir profil oluşturabilir. Üçüncü sırada Canvas ve WebGL gelir; amaç aynı makinenin kararlı ve benzersiz bir işleme değerini doğrudan açığa çıkarmamasıdır.

Pratik bir sınır da vardır: JavaScript'i devre dışı bırakmak veya ciddi biçimde kısıtlamak bazı veri toplamalarını engelleyebilir, ancak birçok web sitesinin kullanılabilirliğini belirgin biçimde azaltır. Gizlilik odaklı tarayıcılar yerleşik bazı korumalar sunar ve günlük kullanım için çoğu zaman yeterlidir, ancak uzun süre boyunca birbiriyle ilişkisiz birden fazla kimliği korumak gerektiğinde daha az esnek kalabilir.

Birden fazla ortamı nasıl korursunuz

Amaç her seferinde tamamen rastgele bir parmak izi üretmek değildir. Her ortam kendi içinde kararlı kalmalı ve diğer ortamlardan farklı olmalıdır. PurpleMark ile her hesap için ayrı bir tarayıcı ortamı oluşturun, Canvas gibi parametreleri ayrı ayrı ele alın ve ardından her ortamın iç tutarlılığını bir test sayfasında kontrol edin. Bu kontrolden geçen bir ortam uzun vadede kullanmaya değerdir.

Sonuçta parmak izi testinin yalnızca iki amacı vardır: hangi bilgileri açığa çıkardığınızı görmek ve bu bilgilerin kendi içinde tutarlı olduğunu doğrulamak. En az endişe edilmesi gereken konu benzersizliktir.