Przeglądarka śledziła od lat. Wreszcie przestanie
Przez ostatnie dwadzieścia lat, zupełnie niepostrzeżenie dla przeciętnego użytkownika, przeglądarki internetowe pozwalały stronom trzecim zaglądać do prywatnej historii przeglądania. Wszystko za sprawą jednej niepozornej funkcji – możliwości oznaczania odwiedzonych linków innym kolorem. Mechanizm, który miał służyć wygodzie, zamienił się w potężne narzędzie do śledzenia. Teraz, wraz z nadchodzącą wersją Google Chrome 136, ten problem wreszcie zostaje rozwiązany. Dotychczas przeglądarka rejestrowała, które odnośniki zostały przez użytkownika kliknięte i pozwalała witrynom stylizować te linki jako „:visited”. W praktyce oznaczało to, że każdy serwis mógł nie tylko zmieniać wygląd takich linków, ale również – przy odrobinie wiedzy technicznej – odczytać tę informację z powrotem. To otwierało drzwi do całej gamy ataków. Strony mogły śledzić, które konkretne adresy zostały odwiedzone, analizować zachowania użytkowników, a nawet budować na tej podstawie profil ich zainteresowań czy przekonań. To nie była abstrakcyjna luka, którą wykorzystywali jedynie badacze bezpieczeństwa. W ciągu lat udokumentowano konkretne przypadki zastosowania tego mechanizmu przez witryny, które skanowały listy popularnych adresów, szukając dopasowań w historii internauty. Oprócz standardowych metod wykrywania stylu odwiedzonych linków wykorzystywano także bardziej złożone techniki – od analiz czasowych, przez pikselozę, po manipulowanie procesami renderowania stron.
Chrome wprowadza rewolucyjne zmiany
Rozwiązanie zaproponowane przez Google opiera się na całkowitej izolacji informacji o odwiedzonych linkach między różnymi witrynami. Chrome 136 wprowadza system tzw. partycjonowania z potrójnym kluczem. W uproszczeniu oznacza to, że informacja o odwiedzeniu danego linku będzie zapamiętywana jedynie w kontekście tej konkretnej strony, w której użytkownik kliknął odnośnik – łącznie z miejscem, z którego został on wyrenderowany. Dzięki temu inne witryny nie będą mogły już wykorzystywać „sztuczek” do pozyskiwania danych o aktywności użytkownika poza ich własną domeną. Google, chcąc zachować funkcjonalność ułatwiającą nawigację w obrębie jednej witryny, wprowadził też wyjątek – tzw. „własne linki”. Oznacza to, że jeśli użytkownik kliknął link w obrębie strony A, to ta sama strona A nadal będzie mogła go oznaczyć jako odwiedzony, nawet jeśli kliknięcie nastąpiło z poziomu innego serwisu. Co istotne, Google zrezygnowało z całkowitego usunięcia stylu :visited z przeglądarki. Jak tłumaczy firma, „całkowite wycofanie selektora :visited wyeliminowałoby cenne wskazówki UX”, które pomagają użytkownikom w nawigacji. Porzucono również pomysł nadania dostępu do tej funkcji wyłącznie po wyrażeniu zgody – mechanizm oparty na uprawnieniach byłby zbyt podatny na obejście.
Konkurencja zostaje w tyle
Choć Chrome przez wiele lat współtworzył problem, to teraz jako pierwszy zdecydował się go rozwiązać w sposób systemowy. Pozostałe przeglądarki – jak Firefox czy Safari – wdrożyły ograniczenia w inny sposób, ale nie zapewniają pełnej ochrony. Firefox blokuje odczyt stylów odwiedzonych linków przez JavaScript i ogranicza, jakie style można zastosować do linków :visited, ale nadal nie stosuje partycjonowania. Safari natomiast opiera się na własnym zestawie zabezpieczeń, w tym Inteligentnym Zapobieganiu Śledzeniu (ITP), lecz także nie izoluje historii przeglądania między witrynami w pełni. Google zaczął testowanie nowej funkcji w wersji 132 Chrome, ale dopiero od wydania oznaczonego numerem 136 system partycjonowania zostanie uruchomiony domyślnie dla wszystkich użytkowników. Osoby korzystające z wcześniejszych wersji nadal mogą aktywować nową funkcję ręcznie, wpisując odpowiedni adres w pasku przeglądarki i włączając eksperymentalne ustawienie. Zmiana może wydawać się subtelna, ale dla prywatności użytkowników to ogromny krok naprzód. Linki, które przez dwie dekady stanowiły ukryty kanał wycieku informacji, w końcu zostaną ujarzmione.