Çerez ile parmak izi arasındaki fark
Çerez (cookie), bir sitenin tarayıcına bıraktığı küçük bir not. Bir dahaki gelişinde site o notu okuyup seni tanıyor. Ama not senin elinde: Silersin, gizli sekme açarsın, tarayıcı engeller. Not gidince tanıma da gider.
Parmak izi (fingerprinting) ise hiçbir şey bırakmıyor. Site, tarayıcının zaten verdiği bilgileri toplayıp birleştiriyor ve bundan bir kimlik hesaplıyor. Silinecek bir şey yok, çünkü kimlik senin bilgisayarında değil, cihazının özelliklerinde. EFF’in benzetmesiyle: Çerez silinince işe yaramayan bir izleyici, parmak izi ise değiştirmesi çok daha zor bir iz.
VPN neden işe yaramıyor? Çünkü VPN sadece IP adresini gizliyor. Parmak izi IP adresine hiç bakmıyor.
20 soru oyunu
Videonun benzetmesi güzel: 20 soru oyunu. “Ekranın 1920×1080 mi?” Milyonlarca kişi evet der. “Saat dilimin İstanbul mu?” Kalan kişilerin bir kısmı. “Tarayıcı dilin Türkçe mi, kaç işlemci çekirdeğin var, hangi yazı tipleri yüklü?” Her soru tek başına zararsız. Ama her cevap kalabalığı biraz daha daraltıyor. Yeterince soru sorunca, geriye tek kişi kalıyor.
Bu cevapların çoğunu JavaScript, sıradan tarayıcı API’lerinden bir izin istemeden okuyabiliyor. Ekran boyutu, saat dilimi, dil, işlemci çekirdeği sayısı, dokunmatik ekran olup olmadığı… Bunlar sayfaların düzgün görünmesi için var. Parmak izi onları başka bir amaçla kullanıyor.
Bu yeni bir fikir değil. EFF 2010’da yaptığı bir çalışmada, siteyi ziyaret eden tarayıcıların yüzde 84’ünün sadece bu tür ayarlarla benzersiz şekilde ayırt edilebildiğini bulmuştu.
Canvas ve ses: Donanımın el yazısı
En ilginç teknikler tarayıcıya bir şey çizdirmek ya da çaldırmak.
Canvas parmak izi: Site, görünmez bir <canvas> alanına bir metin ve birkaç şekil çizdiriyor, sonra çıkan resmin piksellerini okuyor. Aynı komut her bilgisayarda aynı resmi vermeli, değil mi? Vermiyor. Ekran kartı, sürücü, işletim sistemi ve yazı tipi işleme ayarları, kenarlardaki yumuşatmada küçük farklar yaratıyor. Gözle görülmez, ama piksel değerlerinden bir özet (hash) çıkarınca cihazından cihazına değişiyor. Bu teknik 2012’de “Pixel Perfect” adlı bir akademik çalışmayla tanınmıştı.
Ses parmak izi: Aynı fikir Web Audio API ile. Site bir ses dalgası üretip işliyor, ama hoparlöre göndermiyor. Çıkan sayılardaki çok küçük farklar yine donanıma ve yazılıma göre değişiyor.
Videodaki geliştirici bu tekniklerle kendi demo sayfasını yazmış, kodu da GitHub’da açık. Hazır bir araç isteyen siteler için de FingerprintJS gibi açık kaynak kütüphaneler var. Kütüphanenin kendi açıklamasına göre ürettiği kimlik gizli sekmede de aynı kalıyor. Bu araçlar dolandırıcılık tespiti gibi meşru işlerde de kullanılıyor. Sorun, aynı tekniğin reklam takibinde de kullanılabilmesi.
Bir araştırmacının en popüler 10.000 sitede topladığı canvas çizimlerinden birinin betiği, kendini yapay zekâya çözdürmemek için modellerin güvenlik filtresini kullanıyordu: güvenlik filtresi yazısı.
Kendi tarayıcını test et
EFF’in Cover Your Tracks sitesi, tarayıcının ne kadar ayırt edilebilir olduğunu ölçüyor. Sonuçta hangi özelliğin seni ne kadar ele verdiğini de görüyorsun.
Nasıl korunursun?
Burada sezgiye ters bir nokta var. Parmak izine karşı iki yaklaşım var:
- Kalabalığa karışmak: Tor Browser herkesin aynı görünmesini sağlamaya çalışıyor. Herkes aynı cevabı verirse 20 soru oyunu işe yaramıyor.
- Her seferinde farklı görünmek: Brave, canvas ve ses gibi API’lerin çıktısına her site ve her oturum için küçük, rastgele farklar ekliyor. Bir site seni aynı oturumda tutarlı görüyor, ama başka bir sitede ya da ertesi gün başka biri gibi görünüyorsun.
EFF’in uyarısı önemli: Tek tek ayarlarla oynayıp “daha sıradan” görünmeye çalışma. Birbiriyle uyumsuz ayarlar seni daha da benzersiz yapabilir. EFF’e göre Chrome’un gizli sekmesi izleyicilere ve parmak izine karşı koruma sağlamıyor. Firefox’un gizli penceresi ise bilinen izleyici listesindeki alan adlarını engelliyor, listede olmayanları değil.
JavaScript’i tamamen kapatmak da çoğu toplama yolunu keser, ama sitelerin büyük kısmı bozulur. Gerçekçi seçenek, bu korumayı varsayılan olarak sunan bir tarayıcı kullanmak.
Düşün
- Kendi siten için eklediğin analiz ya da reklam betikleri tarayıcıdan neler okuyor, biliyor musun?
- “Kalabalığa karışmak” ile “her seferinde farklı görünmek” arasında sence hangisi daha sağlam bir koruma?
Videoyu izle
Kaynaklar (9, İngilizce)
- Better Stack: Even a VPN Can't Hide You From This (Browser Fingerprinting) (video) (yeni sekmede açılır)
- Videodaki örnek parmak izi sayfasının kodu (GitHub Gist) (yeni sekmede açılır)
- EFF: Cover Your Tracks (yeni sekmede açılır)
- EFF Cover Your Tracks: Learn (yeni sekmede açılır)
- EFF: New Research Shows Web Browsers Leave Fingerprints (2010) (yeni sekmede açılır)
- Mowery & Shacham: Pixel Perfect: Fingerprinting Canvas in HTML5 (2012) (yeni sekmede açılır)
- MDN: Fingerprinting (yeni sekmede açılır)
- GitHub: fingerprintjs/fingerprintjs (yeni sekmede açılır)
- Brave: Fingerprinting defenses 2.0 (yeni sekmede açılır)
Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.