04.01.2015 | 14:39

Adam Haertle

Korzystasz z trybu incognito? Twoją sesję i tak można wyśledzić

Mamy złą wiadomość dla użytkowników popularnego „trybu incognito”. Sesję prywatną i zwykłą można bez większego problemu ze sobą skojarzyć używając dość prostej, znanej od paru lat choć mało nagłośnionej niestandardowej techniki.

Na początek proponujemy Wam odwiedziny na stronie testowej, gdzie możecie przeczytać swój identyfikator (wymagany JavaScript). Następnie otwórzcie nową zakładkę w trybie incognito i wejdźcie na ten sam adres. Identyfikator się zgadza? To zapraszamy do lektury, szczególnie użytkowników Safari. Nie zgadza się? Spróbujcie odświeżyć stronę, czasem prawidłowy pojawia się za drugim razem.

HSTS, czyli więcej bezpieczeństwa

Zacznijmy od wyjaśnienia, czym jest HSTS, czyli HTTP Strict Transport Security. Jest to wprowadzony kilka lat temu tryb gwarantowania połączenia HTTPS z danym adresem WWW. Daje on serwerowi możliwość komunikacji z kompatybilnymi przeglądarkami wyłącznie w formie połączeń HTTPS. Po pierwszym zapytaniu do serwera ten może poinformować przeglądarkę, że dany adres będzie zawsze serwowany wyłącznie w ramach połączenia HTTPS i próby połączenia po HTTP nie zostaną zrealizowane. Pomaga to zapobiegać atakom wykorzystującym np. narzędzie sslstrip do obniżenia poziomu zabezpieczeń sesji z serwerem WWW.

Przeglądarka obsługująca ten tryb przechowuje lokalnie informacje o tym, czy dany adres posiada flagę HSTS czy też nie. Informację taką można odczytać np. za pomocą JavaScriptu. Widzicie już zagrożenie? Skoro strona internetowa może zapisać w przeglądarce zestaw flag dla wybranych adresów, to nie jest problemem zakodowanie w ten sposób całej wiadomości np. w formie unikatowego identyfikatora. Ryzyko to było znane w momencie tworzenia specyfikacji technicznej HSTS, jednak nie zaproponowano żadnych prostych rozwiązań.

Ktoś czyha na ciasteczka

Ktoś czyha na ciasteczka

Jak działa identyfikacja

Na blogu firmy leviathan przytoczono prosty przykład zapisywania i odczytywania wiadomości z przeglądarki użytkownika. Możemy na przykład zamieścić na stronie taki fragment kodu:

[img]https://charcount-5.trackingdomain.com/setbit.png[/img]
[img]https://0-H.trackingdomain.com/setbit.png[/img]
[img]https://1-E.trackingdomain.com/setbit.png[/img]
[img]https://2-L.trackingdomain.com/setbit.png[/img]
[img]https://3-L.trackingdomain.com/setbit.png[/img]
[img]https://4-O.trackingdomain.com/setbit.png[/img]

i dla każdego z powyższych URLi poprosić przeglądarkę o zapamiętanie flagi HSTS. Następnie wystarczy pytać przeglądarkę (również działającą w trybie incognito) o kolejne URLe tak długo, aż trafi się na właściwy:

http://charcount-1.trackingdomain.com/getbit.png [ Server: HTTP ]
http://charcount-2.trackingdomain.com/getbit.png [ Server: HTTP ]
http://charcount-3.trackingdomain.com/getbit.png [ Server: HTTP ]
http://charcount-4.trackingdomain.com/getbit.png [ Server: HTTP ]
http://charcount-5.trackingdomain.com/getbit.png [ Server: HTTPS! ]

Oczywiście metod zapisu jest wiele, można chociażby korzystać ze zwykłego zapisu binarnego lub filtra Blooma.

Które przeglądarki są podatne

Nie wszystkie przeglądarki są podatne na ten atak i nie wszystkie reagują identycznie na próbę jego ograniczania. Jak informuje firma Radical Research Google Chrome, Firefox i Opera kasują flagi HSTS w trakcie usuwania ciasteczek. Oznacza to, że choć w trybie incognito przeglądarka poda zapisane dane, to prosta operacja kasowania ciastek przywróci naszą anonimowość. W naszych prostych testach faktycznie Chrome i Firefox w trybie prywatnym były podatne a dobry wynik dało usunięcie ciasteczek.

W dużo gorszej sytuacji są użytkownicy Safari. Na iPadzie lub iPhonie nie ma możliwości skasowania flag HSTS przez użytkownika. Co więcej flagi te synchronizowane są z kontem iCloud, dzięki czemu użytkownika można prawidłowo identyfikować również pomiędzy różnymi urządzenia, jeśli na wszystkich korzysta z tego samego konta Apple czy też na przykład po pełnym resecie urządzenia.

Na przeciwnym biegunie są za to użytkownicy Internet Explorera, który po prostu HSTS nie wspiera… Tor Browser również nie wydaje się podatny.

Jeśli jesteś użytkownikiem Firefoksa to możesz zobaczyć swoje flagi HSTS w następujący sposób:

echo "SELECT * FROM moz_hosts WHERE type='sts/use';" | sqlite3 permissions.sqlite

lub za pomocą dowolnej przeglądarki baz SQLite.

Co robić?

Odpowiedź jest prosta i zawsze aktualna – nie traktować trybu prywatnego przeglądarki jako zapewniającego anonimowość lub prywatność. A mechanizmów identyfikujących użytkowników jest multum.

Aktualizacja: Z uwagi na rozbieżne raporty użytkowników spróbujmy usystematyzować wyniki testu. My zaczynamy, Wy dopisujcie miasta w komentarzach ;)

  • Chrome/Windows/39.0.2171.95: to samo ID – inni zgłaszają, że nie
  • Firefox/Windows/31.0: to samo ID
  • Firefox/Windows/34.0.5.5443 to samo ID

 Uwaga! Warto testować po kilka razy – według raportów w trybie prywatnym odświeżenie strony powoduje czasem pojawienie się ID z trybu normalnego.

Powrót

Komentarze

  • 2015.01.04 14:52 kwiatek

    U mnie się nie zgadza. Najnowszy Firefox
    http://prntscr.com/5od4pa

    Odpowiedz
    • 2015.01.05 12:51 Draqun

      Mam tak samo. FF 34.0 i Ubu 14.04 nie zapodały tej samej wartości, a odświeżałem chyba ze 20 razy :)

      Odpowiedz
    • 2015.01.05 20:51 marsjaninzmarsa

      Firefox 36.0a2 (2015-01-01), Windows 7, identyfikator się nie zgadza, po każdym zamknięciu i uruchomieniu okna trybu prywatnego pokazuje się inny identyfikator, odświeżanie po kilkadziesiąt razy tego nie zmienia. :)

      Odpowiedz
  • 2015.01.04 15:08 Ja!

    Nie wiem, co złego robię, ale u mnie na Chrome to nie działa. Mam dwa różne identyfikatory.
    Windows 7, x64, Chrome 39.0.2175.95 m
    =]

    Odpowiedz
    • 2015.01.04 15:13 Adam

      A to dobre. Identyczny konfig na tym poziomie i inny wynik u mnie. Może inne ustawienia na poziomie prywatności?

      Odpowiedz
      • 2015.01.04 16:05 Zataok

        U mnie tez zupełnie inne identyfikatory.
        Ubuntu 14.10, Chrome 39.0.2171.95
        Raczej defaultowe ustawienia

        Odpowiedz
    • 2015.01.04 15:39 abc

      U mnie na chrome 40/linux nie zadziałało w incognito za pierwszym razem ale już za drugim – owszem.

      Odpowiedz
  • 2015.01.04 15:27 Łukasz

    Yandex Browser 14.10.2062.12544 beta
    Windows 8.1 x64
    ID różni się w trybie prywatnym

    Odpowiedz
  • 2015.01.04 15:33 Maciej

    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0 – nie działa na

    Odpowiedz
  • 2015.01.04 15:42 assa

    Opera 26.0.1656.60 Win7 x64 – działa
    Chrome 39.0.2171.95 m (64-bit) Win7 x64 – też działa

    Odpowiedz
  • 2015.01.04 15:53 A6RV

    SeaMonkey 2.23
    Your tracking id was read.

    Firefox Portable 34.0.5
    Your tracking id was set.

    Odpowiedz
    • 2015.01.04 16:05 A6RV

      Seamonkey 2.31
      Your tracking id was set.

      Odpowiedz
  • 2015.01.04 15:53 Paweł

    Safari/OSX/8.0.3 i Chrome/OSX/39.0.2171.95 i Firefox/OSX/33.0.2 to samo id.
    Ale jak zaktualizowałem Firefoxa do 34.0.5 to już są różne.

    Odpowiedz
  • 2015.01.04 15:55 Łukasz

    Firefox 34.0.5/Debian Wheezy – mam różne ID

    Odpowiedz
    • 2015.01.05 13:39 rozie

      Potwierdzam. Ani w trybie incognito, ani po wyczyszczeniu ciastek na Debian Wheezy + Iceweasel 34 (czyli Firefox 34) identyfikatory się nie powtarzają, mimo wielu odświeżeń.

      Odpowiedz
  • 2015.01.04 15:59 Michał

    FF 34.0.5 – u mnie tryb incognito działa bez zarzutu

    Odpowiedz
  • 2015.01.04 16:20 tester

    Windows
    Chrome 39.0.2171.95 m – działa
    Opera 26.0.1656.60 – działa

    Firefox 34.0 – nie działa

    Odpowiedz
  • 2015.01.04 16:39 steppe

    Pięknie, brawa dla Apple. Znowu się wykazali nadmierną troską o użytkownika ;)
    Na szczęście trybu prywatnego używam wyłącznie po to, żeby nie zaśmiecać sobie historii :)

    Odpowiedz
  • 2015.01.04 16:40 steppe

    Aha i lepiej nie prosić o wpisanie miast, bo kiedyś widziałem odzew w rodzaju: Sodoma, Gomora ;)

    Odpowiedz
  • 2015.01.04 16:45 Matt

    Palemoon 25.1.0 (x64)
    To samo id. Z włączonym No scriptem oczywiście nic nie wyświetliło.

    Odpowiedz
  • 2015.01.04 16:47 Kuba

    Firefox 34, Ubuntu 14.04 – mam różne ID

    Odpowiedz
  • 2015.01.04 17:00 Adam

    Firefox Nightly 37.0a1 (2015-01-03) na W7 daje różne ID w obu trybach. Nawet po pięćsetnym przeładowaniu ;-)
    Dokładnie taka sama sytuacja z Chrome 41.0.2251.0 dev-m (64-bit).

    Odpowiedz
  • 2015.01.04 17:17 xbartx

    Ubuntu 14.04 / Firefox 34.0 – tak jak u innych mam różne ID
    Chromium 39.0.2171.65 Ubuntu 14.04 (64-bit) – też różne ID

    w trybie incognito odświeżałem po kilka razy.

    Odpowiedz
  • 2015.01.04 17:20 Adam

    Windows 7 x64 HP:

    Chrome 39 – to samo ID
    Firefox 34.0.5 – różne ID
    Opera 26 – różne ID
    IE 11 – różne ID

    Windows XP :
    Chrome 37 – to samo ID
    IE 7 – nie działa w ogóle :D

    Odpowiedz
  • 2015.01.04 17:30 Michał

    Kubuntu 14.04/ Chrome 39.0.2171.95 – to samo ID

    Odpowiedz
  • 2015.01.04 18:07 Johnn

    Archlinux x86_64 / Firefox 34.0.5 – rozne ID

    Odpowiedz
  • 2015.01.04 18:11 starhel

    Firefox 34.0.5, Win7 – inne, pomimo wielokrotnego odświeżania

    Odpowiedz
  • 2015.01.04 20:28 RARvolt

    Firefox 34.0.5, ArchLinux x86_64 – inne

    Odpowiedz
  • 2015.01.04 20:47 Gold

    Te same kody w incognito i bez na Operze 26.0
    Incognito
    Your tracking id was read.
    Bez
    Your tracking id was set.

    Odpowiedz
  • 2015.01.04 21:02 Towarzysz DaBu

    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/7.1.2 Safari/537.85.11 Są inne ID. :v

    Odpowiedz
  • 2015.01.04 21:23 Koziołek

    Ale kto normalny używa trybu porno by ukrywać się przed „siecią” (w rozumieniu by serwery nie wiedziały kim ty jesteś)? Ten tryb służy przede wszystkim do ograniczenia możliwości odczytu historii przeglądarki i stąd właśnie jego „humorystyczna” nazwa.

    Odpowiedz
  • 2015.01.05 00:54 pisma

    Niezbyt dobra wiadomość. Z resztą nie pierwsza i nie ostatnia. Widocznie jedyną opcją jest lynx ale obstawiam, że stronek web 2.0 już nie pociągnie ;)

    Odpowiedz
  • 2015.01.05 02:09 tarkowski

    opera 1217 – działa
    czyszczenie pamięci podręcznej czyści zapisy hsts

    Odpowiedz
  • 2015.01.05 03:15 Nightly

    http://s1.postimg.org/vm83seu6n/heh.png

    Czuje dobrze paranoik.

    Chrome Canary Wersja 41.0.2265.0

    Głównym rozszerzeniem, które powoduje u mnie wyświetlanie różnych id jest:
    Delete All Cookies From JavaScript v 1.1

    Przy okazji jest o wiele więcej innych sposobów na namierzenie przeglądarki:
    https://panopticlick.eff.org

    Odpowiedz
  • 2015.01.05 13:55 ałtor

    miasta

    Odpowiedz
  • 2015.01.05 17:26 Piotr

    Fedora 21 – na Firefox 34 ID nie zgodziło się ani razu. Na Chromium 38.0.2125.101 Russian Fedora (290379) (64-bit) za każdym razem się zgadza :)

    Odpowiedz
  • 2015.01.06 09:16 Ninja

    „Na iPadzie lub iPhonie nie ma możliwości skasowania flag HSTS przez użytkownika. Co więcej flagi te synchronizowane są z kontem iCloud, dzięki czemu użytkownika można prawidłowo identyfikować również pomiędzy różnymi urządzenia (…)” – it’s not a bug, it’s a feature.

    Odpowiedz
  • 2015.01.06 15:53 Igor

    u mnie także się nie zgadza, najnowszy firefox :)

    Odpowiedz
  • 2015.01.06 19:22 Robert

    Dlatego trzeba zawsze kasować swoje ciasteczka :D

    Odpowiedz
  • 2015.01.07 22:23 sol

    Na maxthonie 4.4.3.4 id też są inne

    Odpowiedz
  • 2015.01.07 22:25 sol

    poza tym, kto używa sroma? Chyba tylko ci najmniej świadomi użytkownicy, co nie wiedzą, że istenieje tryb incognito : )

    Odpowiedz
  • 2015.01.12 20:22 kamil

    Android 4.1.2 oryginalna przegladarka. Nie dziala ani razu w trybie incognito.

    Odpowiedz
  • 2015.02.08 11:17 JustMe

    BlackBerry 10, po włączeniu trybu prywatnego za każdym razem choćbym odswiezal 100 razy jest inny „wynik”
    Czyli w BlackBerry Tryb prywatny działa super

    Odpowiedz

Zostaw odpowiedź do Draqun

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Korzystasz z trybu incognito? Twoją sesję i tak można wyśledzić

Komentarze