(Prawie) nieusuwalne ciasteczka

Znaczny wpływ na rozwój Internetu, a w szczególności stron WWW, miało wynalezienie tzw. ciasteczek, małych plików generowanych przez witryny internetowe a przechowywanych po stronie użytkownika, przez przeglądarkę. Dzięki nim strona mogła rozpoznawać użytkowników. Miało to wiele ciekawych zastosowań, z czego część kontrowersyjnych. Zaniepokojenie budziła i budzi nadal naruszająca prywatność praktyka wykorzystywania ciasteczek do śledzenia użytkowników. Ponieważ problem prywatności związany z cookies znany jest nie od dziś, wielu użytkowników wie czym są ciasteczka oraz podejmuje próby ochrony swojej prywatności przez ich kasowanie. Ostatnie lata przyniosły jednak rozwój różnych standardów, technik i mechanizmów sprawiających, że ciasteczka nie są już jedynym sposobem jaki mają strony internetowe na przechowywanie danych na komputerze użytkownika. Powoduje to, że kontrola oraz ewentualne usuwanie tych danych przez użytkownika staje się coraz trudniejsze. Zagadnienie to ilustruje evercookie, prawie nieusuwalne ciasteczko, szczególnie dla mniej doświadczonych użytkowników.

Grzegorz Niemirowski

23.09.2010 | aktual.: 23.09.2010 10:55

Evercookie oparte jest o prosty kod w językach JavaScript, PHP i ActionScript (Flash). Aby stworzyć trudno usuwalne ciastko, wykorzystuje kilka technik tak, aby przechowywane dane przetrwały, nawet jeśli użytkownik wykasuje je z niektórych miejsc. Te techniki to standardowe ciasteczka HTTP, Local Shared Objects czyli ciasteczka Flasha, historia przeglądarki, pliki PNG przechowywane w pamięci podręcznej przeglądarki oraz mechanizmy oferowane przez HTML5: Session Storage, Local Storage, Global Storage oraz Database Storage. Jakby tego było mało, w przyszłości zostanie dodane wsparcie także dla Silverlight Isolated Storage, HTTP ETags i cache'owania właściwości window.name.

Szczególnie ciekawe jest wykorzystanie plików PNG do przechowywania danych. Odpowiedni skrypt PHP generuje podczas odwiedzania strony plik graficzny, który za pomocą odpowiedniej kombinacji kolorów ma zapisane dane, które mają być zapamiętane. Przeglądarka odwiedzając stronę umieszcza plik graficzny w swojej pamięci podręcznej. Przy kolejnej wizycie strona odpowiada nagłówkiem HTTP, który informuje przeglądarkę, że plik nie został zmodyfikowany. Powoduje to, że przeglądarka sięga do swojej pamięci podręcznej i ładuje plik do obiektu canvas oferowanego przez HTML5. Pozostaje więc odczytać z załadowanego pliku kolory za pomocą JavaScriptu. Z kolei odczytywanie danych z historii przeglądarki wykorzystuje opisaną już jakiś czas temu obserwację, że odwiedzone linki mają inny kolor niż linki nieodwiedzone i można go odczytać z poziomu JavaScriptu. Aby zapisać jakieś dane, generowany jest link je zawierający i wykonywana jest próba jego wywołania. Link zostaje zapamiętany w historii przeglądarki. Odczytanie danych polega na generowaniu metodą brute-force coraz dłuższych linków zawierających kolejne znaki zapisanych danych. Za każdym razem sprawdzany jest kolor odwiedzonego linku. Gdy skrypt natrafi na odpowiedni kolor, wygenerowany ciąg uznaje się za odczytane dane. Warto też wspomnieć o ciasteczkach Flasha. Ich cechą jest to, że są niezależne od przeglądarki. Jeśli wejdziemy na daną stronę za pomocą jednej przeglądarki to strona ta będzie mogła odczytać swoje ciastko nawet jeśli wejdziemy na nią z innej przeglądarki.

Jak widać, pojawiające się ciągle nowe sposoby zapisu i odczytu danych na komputerze użytkownika sprawiają, że ochrona prywatności staje się coraz trudniejsza. Pojawiają się też nowe wyzwania przed twórcami przeglądarek internetowych, którzy próbują w nich implementować tryby prywatności. Warto przetestować swoją przeglądarkę. Autor evercookie informuje, że radzi sobie np. Safari.

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Wybrane dla Ciebie
Komentarze (52)