Skip to main content

Identyfikacja użytkownika na podstawie odcisku przeglądarki

Odwiedzając strony internetowe, użytkownicy udzielają dostępu do unikalnych, tudzież prywatnych informacji. Te zaś pozwalają na precyzyjną identyfikację ich maszyn oraz inwigilację, bez konieczności rejestracji. Ten sposób śledzenia często opiera się o tzw. Browser Fingerprint — najczęściej spotykany i jednocześnie najtrudniejszy do wykrycia sposób rozpoznawania internautów na podstawie danych udostępnianych poprzez oprogramowanie.

Czym jest „Web Tracking”?

Termin ten odnosi się do procesu generowania trwałego, unikalnego identyfikatora w celu rozpoznawania maszyn na podstawie „odcisku” przeglądarki oraz danych, które ta udostępnia na poziomie swojego API. Do takich danych należą m.in. informacje dot. systemu operacyjnego, zainstalowanych rozszerzeń oraz komponentów maszyny użytkownika. Najprostsza implementacja takiego narzędzia śledzącego opiera się o ustandaryzowany obiekt navigator:

{
  "appName": "Netscape",
  "appCodeName": "Mozilla",
  "appVersion": "Mozilla/5.0 (Macintosh … Gecko) Chrome/6…3 Safari/5…6",
  "vendor": "Google Inc.",
  "vendorSub": "",
  "product": "Gecko",
  "productSub": "20…00",
  "platform": "MacIntel",
  "deviceMemory": 8,
  "hardwareConcurrency": 4,
  "language": "en",
  "languages": ["en", "pl", "fr"],
  "plugins": {},
  "cookieEnabled": true
}

Bazując się na wyżej wymienionych informacjach, bardzo łatwo można wygenerować identyfikator, który posłuży do rozpoznawania niezalogowanego użytkownika na stronie szpiegującego. Jak wynika z badań doktora Peter Eckersley pt. „How Unique Is Your Web Browser?”, na 400000 odwiedzin, ponad 80% użytkowników ma unikalne odciski.

83.6% of the browsers seen had an instantaneously unique fingerprint, and a further 5.3% had an anonymity set of size 2. Among visiting browsers that had either Adobe Flash or a Java Virtual Machine enabled, 94.2% exhibited instantaneously unique fingerprints and a further 4.8% had fingerprints that were seen exactly twice. – Peter Eckersley

Jakie dane są wykorzystywane do rozpoznawania użytkownika?

  1. Adres IP oraz ISP: należy używać ostrożnie — dynamiczna alokacja adresów IP przez dostawców może być problematyczna. Z tego powodu, adresy IP są częściej używane do blokowania dostępu aniżeli identyfikacji maszyn.
  2. Ciasteczka: najczęściej wykorzystywane przez narzędzia do analizy ruchu i dostawców reklam. Wraz z przepisami znowelizowanej ustawy Prawa Telekomunikacyjnego coraz więcej osób decyduje się jednak na ich blokowanie.
  3. Przeglądarka: zgodnie ze specyfikacją RFC 7231 (5.5.3), nagłówek HTTP User-Agent zawiera informacje pozwalające na rozpoznanie programu, z którego klient wykonał zapytanie.

Preferowane języki użytkownika, rozszerzenia, dostępne czcionki, wsparcie przeglądarki oraz reszta danych systemowych są również powszechnie przetwarzane. Pełną listę charakterystyk, wraz z technicznym opisem oraz metodami ich pozyskania można znaleźć w artykule „Technical analysis of client identification mechanisms” autorstwa Artura Janc i Michała Zalewskiego.

Jak wygląda „Web Tracking” pod maską?

Do rozpoznawania użytkownika używa się algorytmu, który kolekcjonuje i przetwarza udostępnione przez przeglądarkę charakterystyki. Na ich podstawie jest wyliczany unikalny, stabilny identyfikator przypisany dla konkretnego klienta. Charakterystyki mogą być przesyłane na dwa sposoby – statycznie, poprzez zapytanie HTTP, oraz dynamicznie, poprzez AJAX.

AJAX daje dostęp do większej ilości danych, ponieważ służy do pobierania charakterystyk bezpośrednio z API przeglądarki. Do takich informacji wliczamy listy dostępnych czcionek, wtyczek, strefę czasową oraz rozdzielczość ekranu. Co więcej, wiele narzędzi posuwa się nawet do śledzenie kliknięć oraz ruchów kursora:

We divided the methods into several categories: explicitly assigned client-side identifiers, such as HTTP cookies; inherent client device characteristics that identify a particular machine; and measurable user behaviors and preferences that may reveal the identity of the person behind the keyboard (or touchscreen). – Artur Janc and Michal Zalewski

Zmienny adres IP, usuwanie danych przeglądania, aktualizacja oprogramowania, a nawet zmiana rozdzielczości ekranu może mieć znaczny wpływ na odcisk naszej przeglądarki, dlatego ważne jest, aby algorytm był stabilny i przygotowany na takie okoliczności. Przykładowa implementacja takiego algorytmu została opisana w sekcji 5.2. publikacji „How Unique Is Your Web Browser?” autorstwa Petera Eckersley.

Jak się bronić przed „Browser Fingerprint”?

Paradoksalnie, stworzenie wtyczki, która zapobiegłaby identyfikacji naszej przeglądarki w sieci, niekoniecznie rozwiązałoby problem. Aby narzędzie było skutecznie, musiałoby z niego korzystać wystarczająco dużo użytkowników. W przeciwnym wypadku identyfikacja nadal będzie możliwa, lecz posłużą ku temu fałszywe dane dostarczone przez oprogramowanie.

Poniższe rozszerzenia powinny jednak poradzić sobie z wieloma metodami śledzenia w sieci. Wszystkie są używane przez setki tysięcy ludzi na całym świecie, a kod źródłowy wtyczek jest całkowicie otwarty:

  1. uBlock Origin: „An efficient blocker: easy on memory and CPU footprint, and yet can load and enforce thousands more filters than other popular blockers.”.
  2. noscript: „Provides extra protection: allows JavaScript, Java, Flash and other plugins to be executed only by trusted web sites of your choice.”.
  3. Blend In: „Blends in OS-related values in User-Agent HTTP request header & a number of JS properties, so that Firefox (Thunderbird) appears to sites visited as running on the OS being used the most in the world.”.
  4. ClearURLs: „Automatically removes tracking elements from URLs to help protect your privacy when browsing through the internet.”.

Dodaj filtry z easylist i easyprivacy: „The EasyList filter lists are sets of rules originally designed for Adblock that automatically remove unwanted content from the internet, including annoying adverts, bothersome banners and troublesome tracking.”.

Zablokuj złośliwe strony w pliku hosts: „Extending and consolidating hosts files from several well-curated sources like adaway.org, mvps.org, malwaredomainlist.com, someonewhocares.org, and potentially others. You can optionally invoke extensions to block additional sites by category.”.


Źródła

  1. „How Unique Is Your Web Browser?” – Peter Eckersley
  2. „Technical analysis of client identification mechanisms” - Artur Janc and Michal Zalewski
  3. „No Clicks, No Problem: Using Cursor Movements to Understand and Improve Search” – Jeff Huang, Ryen White and Susan Dumais