Identifikace browseru i bez cookies

Hlídáte si na internetu soukromí? Používáte TOR, anonymní VPN nebo anonymní proxy? Promazáváte nebo vůbec nepoužíváte cookies a vyřadili jste Flash s jeho „supercookie“? Vypínáte javascript? V tom případě by vás mohla zajímat série článků na webu Electronic Frontier Foundation, zejména poslední Browser Versions Carry 10.5 Bits of Identifying Information on Average, která se zabývá možností identifikovat browser na základě informací, o kterých obvykle jako identifikujících nepřemýšlíme – například o používaném prohlížeči. Je příznačné, že z českých webů o tom, pokud vím, neinformoval ani jeden (titulek „Patří soukromí online mezi vaše priority?“ na Rootu vypadal nadějně, ale je o něčem jiném).

Při každém požadavku na webovou stránku odesílá prohlížeč celou řadu údajů, které mají stránce pomoci k nalezení optimálního kódu pro odeslání prohlížeči. Web například může použít informaci o tom, že uživatel používá Internet Explorer 6, k tomu, aby místo průhledných PNG obrázků (jako je třeba logo mého webu) poslal obrázek obyčejný neprůhledný a průhlednost zajistil pomocí ActiveX. Nebo se může podívat, jestli uživatelův prohlížeč podporuje javascript, a když ne, zobrazí mu stránku, ať si trhne. Nebo se může rozhodnout, jestli má uživateli poslat hodně animovanou stránku ve Flashi nebo jen základní v HTML. Možností je celá řada a není pochyb, že při vhodném použití budou pro uživatele přínosem. Lidé z EFF se ovšem zaměřili na méně přínosné použití – zkoumali, jestli lze tyto informace („uživatel používá prohlížeč X“, „Uživatel preferuje češtinu, ale přijme i anglický dokument“ nebo „Uživatel používá rozlišení obrazovky 1600×1200 bodů“) použít k identifikování konkrétního prohlížeče. A došli k poměrně nepříjemným zjištěním.

Začnu dobrou zprávou: Zcela jednoznačně prohlížeč jen na základě těchto údajů identifikovat nelze. Dál už to ovšem bude horší: Standardní HTTP hlavičky nesou tolik informací, že lze často drasticky omezit množinu, do které prohlížeč patří, a pokud se podaří získat nějaký další doplňující údaj (třeba se podle IP adresy zjistí, že ke stránce přistupujete z malé obce), už to může stačit na jednoznačnou identifikaci. Mám dost velké pochybnosti o závěru EFF, že „v průměru jen 1 člověk z 1500 (210,5) bude mít stejnou identifikaci prohlížeče jako vy“ (nelíbí se mi ten logický pochod, že když „User-agent v průměru nese 10,5 bitů informace“, tak „210,5 lidí používá stejný prohlížeč“), ale faktem je, že co jsem si tak zkoušel, dá se pomocí základních HTTP hlaviček identifikovat poměrně hodně.

Na nově zřízené službě Panopticlick si můžete sami zkusit, jak moc dobře vás může prohlížeč identifikovat. Tohle je třeba výsledek nijak nechráněného Internet Exploreru 6, který mám nainstalovaný ve virtuálním počítači za účelem psaní příspěvků do diskusních fór Lucasarts (kde se každých pár dní snažím dostat k informaci, jestli tedy vyjde nebo nevyjde soundtrack k Monkey Islandu SE):

Screenshot výsledků služby Panopticlick pro Internet Explorer 6

Z obrazovky je vidět několik nepříjemných zjištění – zejména to, že z více než 580 000 testovaných prohlížečů je tento můj IE6 jedinečně identifikovatelný. To mimo jiné znamená, že i kdybych použil TOR nebo anonymizační VPN, stejně by mě Panopticlick mohl identifikovat! Jako smrtící se projevuje zejména informace o Flashi – jeho verzí je spousta, takže pokud, tak jako já u tohoto konkrétního prohlížeče, nainstalujete nějakou tehdy dostupnou verzi a pak už ji neaktualizujete, velice rychle se stane výborným identifikačním prostředkem. Následuje seznam systémových fontů (také výsledek práce Flashe – dobrá práce, Adobe!) a HTTP_ACCEPT hlavičky, kde bude zřejmě klíčové hlavně to „cs“ – vzhledem k rozsahu, jakým o webu informovala česká média, se dá očekávat, že návštěvníků z ČR bude dost málo.

Dobře, to byl zastaralý IE6 ve výchozí konfiguraci a se zastaralým Flashem. Moderní prohlížeče si povedou lépe, ne? Jak se to vezme – tady máme český Firefox 3.6 ve standardní konfiguraci na čistých Windows XP SP2:

Screenshot výsledků služby Panopticlick pro Firefox 3.6 cz

Nemám pocit, že bych si nějak zásadně pomohl – pořád jsem jedinečně identifikovatelný. Pravda, změnila se struktura informací – teď už mě neprozrazuje Flash, který v tomto prohlížeči nainstalován nemám, ale zase zapracovali pánové od Mozilly s publikováním seznamu pluginů. Všimněte si také, jak pěkně detailní jsou Accept hlavičky. Na srovnání s Firefoxem ve stejné verzi a na stejném počítači, ale v anglickém jazyce, je vidět určité zlepšení, zejména dramaticky poklesla identifkovatelnost pomocí hlavičky User-agent – to „cs“ je proklatě zrádné, pokud cestujete po zahraničních webech. Potěšující je, že se stejně anglickým Firefoxem jsme na webu Panopticlicku dva různí uživatelé. Méně potěšující je, že pro jednoznačnou identifikaci by patrně stačilo přiřadit IP adresu ke kontinentu…

Screenshot výsledků služby Panopticlick pro Firefox 3.6 en

Pro příznivce vysloveně menšinových řešení ještě Opera 10.10. Ani poté, co jsem odstranil to prozrazující „cs“, to nedopadlo zrovna slavně:

Screenshot výsledků služby Panopticlick pro Opera 10.10 en

Jen tak pro zajímavost, zkusil jsem identifikovat i svůj hlavní browser, ve kterém si dávám na bezpečnosti a soukromí zatraceně záležet – mimo jiné nepřijímám cookies na webech, které jsem si neprověřil, nemám zapnutý javascript, nemám nainstalované žádné pluginy, kterým jsem se mohl vyhnout, prostřednictvím Privoxy falšuji některé HTTP hlavičky včetně User-agent (s odůvodněním, že když už mi někdo má posílat exploity, ať je posílá pro jiný browser, než používám) atd. Výsledek se dostavil, to musím připustit – se stejně nastaveným prohlížečem jsme z půl milionu uživatelů hned čtyři, to je dvou- až čtyřnásobek čísel zjištěných u defaultního nastavení prohlížečů. Že by mě to zrovna naplňovalo nadšením, to tedy říci nemůžu.

Samozřejmě lze argumentovat tím, že na „skutečných“ webech bude složení uživatelů odlišné – speciálně, že dokud se budu s českým browserem držet na českém internetu, budu mnohem anonymnější. Něco na tom je. Jenže za prvé, já se nechci pohybovat jen na českém internetu, a za druhé – ani na českém internetu mi mírně zvýšená anonymita nemusí být moc platná. Jen tak pro legraci jsem se podíval do databáze svého blogu a nechal si vypsat jednotlivé User-agenty (jenom user-agenty, žádnou jinou podpůrnou informaci jsem nezkoumal – ani IP adresu, dokonce ani Accept hlavičky, o kterých už vím, jak moc jsou smrtící) seřazené podle četnosti (příkazem SELECT agent, COUNT(*) FROM wp_wassup GROUP BY 1 ORDER BY 2 DESC). V necelých 160 000 záznamů, které mi WassUp nashromáždil, byl jediný User-agent s více než 10 000 přístupy, a jen čtyři měli přístupů víc než 5 000. Všechna první místa byla ostatně obsazena roboty vyhledávacích enginů; první „opravdový uživatel“ je až na 15. místě s pouhými 1300 přístupy. Hodně? Tak počítejte – 1300 přístupů je 0,8 procenta všech přístupů. WassUp mi hlásí nějakých 300 až 400 unikátních návštěvníků denně (podle toho, jak senzační článek zrovna napíšu ;)), dejme tomu, že relativně pravidelně chodí dvakrát tolik lidí (ha ha, to určitě; ale dejme tomu). 0,8 procenta z 800 lidí je 6,4 člověka. Co to znamená? I když použijete vůbec nejčastější prohlížeč, a i když se spokojím s identifikací pouze na základě prohlížeče, dokážu vás zařadit do skupinky o ani ne sedmi lidech. Stačí mi další tři bity informace, abych vás identifikoval jednoznačně. Samozřejmě, pokud budete tak neopatrní a použijete méně častý prohlížeč, budu to mít jednodušší – pokud například nepoužijete prohlížeč v české verzi, tak už se neschováte 🙂

Jak se bránit?

Informace bychom měli. Teď je otázka, co s nimi – jak se bránit? Otázka jednoduchá, odpověď složitá – obecně vzato by mělo být mou snahou skrýt se v davu, to je ale už samo o sobě dost složité a navíc to má nepříjemné bezpečnostní dopady. Proč je to složité? Protože ten dav je na každém webu jiný. Když půjdu na Panopticlick, měl bych se vydávat za uživatele Firefoxu v angličtině (protože to je podle jejich zjištění nejčastější browser); když půjdu kamkoliv v ČR, určitě bych v hlavičkách měl zobrazovat, že jazykem browseru je čeština. Zřejmě bych tedy měl používat nějaký filtr, který hlavičky upraví podle webu, na který směřují, jenže žádný takový neznám. Špatným řešením by každopádně bylo hlavičky mazat úplně (protože prakticky každý prohlížeč je posílá, takže neposlat nic automaticky znamená stát se bílou vránou) a ještě horším je jen pročistit o „kritické položky“ jako to „cz“ (protože když už někdo Agenta falšuje, tak celého, ne jen kousky – tím bych se stal vránou žluto-zelenou). Nadějně vypadalo maskování se za GoogleBota, až na to, že spousta webů GoogleBotovi podstrkává upravený obsah, ve kterém se nedá pořádně číst. EFF doporučuje maskovat se za některého z mobilních klientů (třeba za Safari na iPhone) – ne snad, že by jich bylo tolik, ale vyskytují se jen v několika málo verzích, takže se mezi nimi špatně rozlišuje. Uvidím, vyzkouším…

Druhá nepříjemnost obrany je to, že má negativní dopady na bezpečnost. Flash, javascript a cookies vypínají podle statistik maximálně jednotky procent uživatelů, které se tím automaticky zařazují do určité skupiny. Pokud se chci skrýt v davu, měl bych jít s většinou a mít tyto technologie povolené – stačí pohled na Secunii a každý správný paranoik ví, že tudy cesta nevede (pro představu: asi před dvěma lety jsem si dělal průzkum mezi tehdy dostupnými závažnými a kritickými chybami ve Firefoxu; skoro 90% z nich by s vypnutým javascriptem nemohly fungovat. Jestli si myslíte, že se situace od té doby zlepšila, klidně si to myslete dál…). Nehledě na to, že povolením javascriptu zase dovolím prohlížeči, aby o mě prozrazoval instalované pluginy a jejich verze.

Momentálně mi jako nejlepší cesta připadá upravit si Privoxy tak, aby mělo nadefinovaných pár desítek až stovek platných kombinací hlaviček a každou hodinu nebo dvě si náhodně vybíralo, kterou použije – díky tomu sice budu identifikovatelný, ale jen pár minut. A nebo že bych se na soukromí vykašlal úplně? To bude možná vůbec nejlepší cesta – stejně se skrývat nepotřebuju, je to čistě akademický problém, jak moc paranoidním se člověk může stát, aniž by skončil na psychiatrii…

V každém případě uvítám vaše nápady, jak se stát lepším chameleonem.

Podobné příspěvky:

22 Responses to “Identifikace browseru i bez cookies”

  1. avatar pepak napsal:

    Jet: Stejný problém mám i já: Pro nastavení prohlížeče, která jsou pro mě zásadní, nejsem schopen najít takovou kombinaci ostatních nastavení, abych měl třeba jen deset stejných kolegů.

  2. avatar Jet napsal:

    Pred par lety, pravdepodobne nekdy v dobe vyjiti tohoto clanku jsem to zkousel, vsechny moje browsery byly jedinecne z radove pul milionu. Dnes, po 3 letech jsem stale jedinecny, tentokrat uz skoro ze trech milionu browseru. A jsem jedinecny hned dvakrat – seznamem fontu a seznamem pluginu. A vypada, ze i kdyz se prepnu do incognito window, ze to nepomuze.

  3. avatar etena napsal:

    … tak jsem na tuto problematiku narazil trochu opožděně. Možná už to nikomu nepomůže 😉
    * udělal sem si test dle článku – lehké „paranoidní“ zděšení ;-O v základním nastavení FF/Ubuntu/cs+en/plugins(vč. bezpečnostních … můj brouser je unikátní mezi 1.700.000 users (NoC: No Comment). Po chvíli experimetů s anonym.rež a nast. FF (např. vypnutí cs, >10 plugins vč. bezpečnostních == 1 ku 500.000 (O.K. asi pudu spát ;)) PS.. jinak díky za tento čl. a web**

  4. avatar pepak napsal:

    Jeen: Souhlasím, až na to, že těch 10 nejběžnějších šablon by měl přehazovat sám prohlížeč řekněme jednou za hodinu (náhodně plus mínus 15 minut).

  5. avatar Jeen napsal:

    Myslím, že nejlepší řešením by bylo asi takové, že browser prostě bude krs nějaký plugin prezentovat určité preset nastavení, nikoli skutečné. Co bude prezentovat si vybereš třeba z 10 nejběžnějších šablon. Jak vyřešit statistiku šablon teď nevím, ale by byly dostupné na stránkách, kde bys je stahoval.

    Že se nebude vždy všecko správně zobrazovat?
    To je bohužel daň za zvýšenou anonymitu.

  6. avatar pepak napsal:

    Už jsem podrobněji odpovídal v mailu, tady jen pro případné další zájemce: Chystám na toto téma článek, ale pokud nenarazím na nějakou šokující novinku, nebude obsahovat moc dobré zprávy – pro maximální anonymitu je potřeba dost podrobně znát to, co má být anonymizováno, a to i na uživatelské úrovni. Ani ten nejlepší program nebude stačit, pokud nebude doprovázen nemalými znalostmi na straně jeho uživatele.

  7. avatar Studio napsal:

    Vážení diskutujúci. S veľkým záujmom som si prečítal každé slovo tejto diskusie (bezpečnosť+anonymita). Sám seba by som zaradil do skupiny: staršia generácia, priemerne vzdelaný laik v internetovej oblasti, angličtinu neovládam (museli sme ruštinu a neskôr sa jendoducho nepodarilo dobehnúť), PC je pre mňa nevyhnutným pracovným nástrojom, teda som sa naučil vštko čoho som bol ešte schopný.
    Čo sa anonymity na inete týka – páni! (aj dámy! priznajme si, veď nie sme deti, občas každý jeden z nás potrebuje navštíviť adresu o ktorej by bol rád, keby ju nezistil ani náš šéf, ani manželka, ani v neurčenej budúcnosti niekto kto by to mohol použiť proti nám. Z Vašej diskusie som pochopil, že anonymita na inete nie je jednoduchá. Zabudli ste však prosím na možnosť ZAKÚPIŤ (ZAPLATIŤ) za SW, ktorý anonymitu usera zachová. Pre laika mojej úrovne by to bolo senzačné riešenie v prípade,ak by mi niekto (Vašej vzdelanostnej a odbornej úrovne na tému internet) poradil. V tomto zmysle Vás všetkých prosím, ak je aj takáto možnosť, poraďte mi prosím aký SW si mám zakúpiť, aby som mohol čas od času na inete surfovať úplne anonymne. Za pomoc vopred ďakujem.S.

  8. […] pod jiným user-agentem, neboť může sloužit ke sledování vašeho prohlížeče. Buď trochu pozměňte stávající řetězec, anebo si vyberte nějaký ze  seznamu […]

  9. avatar lopata napsal:

    Rovnaky comment som postol aj na root.cz . Odporucam si precitat https://blog.torproject.org/blog/effs-panopticlick-and-torbutton . Samozrejme, Torbutton ma v tomto pripade na anonymizacii vacsi podiel ako TOR.

    „Torbutton’s protection mechanisms are only meant to make all Tor users look uniform amongst themselves, not to make them look like the rest of web users.“ (Mike Perry)

  10. avatar pepak napsal:

    Všechno, co jste popsal, se dá potlačit – s výjimkou psaného textu dokonce zcela triviálně. Každopádně to sem nepatří a tudíž to tady nebudeme rozebírat.

  11. avatar tom napsal:

    Tak
    1)můžeme brát jako věc světonázoru-přesvědčení-víry..

    S druhým bodem ale budu nesouhlasit. Pokud budeme uvažovat o aktivním využívání internetu (např. denním), není technika jak se před „někým“ kdo Vás najít chce, schovat… Stejně jako jste ukázal že statisticky jste „jednoduše“ dohledatelný na základě prohlížeče tak zanecháváte stopu v logách navštívených serverů, trasách apod. (kliky, rolování, gesta myší, chování linky, analýzou psaného textu, honey-poty atd.) koneckonců jsám jste to i naznačil prvním poznávacím znamením bude „lehká paranoia“.

  12. avatar pepak napsal:

    Chyba v obou úvahách. Napřed ale odpověď na otázku „a co“: Nejde o to, že by každý z nás měl okamžitě začít něco s popisovanou skutečností dělat. Jde o to, že bychom o ní měli vědět.

    A teď ty chyby:

    1) „Kdo je nezajímavý nikdo, tomu může být anonymita lhostejná“ patří do přesně té skupiny tvrzení jako „kdo nemá co skrývat, nepotřebuje šifrování“, „kdo neporušuje zákony, nepotřebuje anonymitu“ či „kdo nedělá nic špatného, tomu policie nic neudělá“. Tato tvrzení neplatí dokonce ani v dokonalém světě (a že to, v čem žijeme, dokonalý svět není!) – mimo jiné proto, že u drtivé většiny populace nutně vedou k opačnému (a nesprávnému) uvažování, že „kdo šifruje, ten má co skrývat“ nebo „kdo se bojí policie, ten určitě něco provedl“.

    2) Když budu mít důvod se skrývat, tak si mě ten, kdo bude mít důvod po mě jít, nenajde. V reálném životě asi ano, v počítačích ne. Ovšem za předpokladu, že se předem dozvím o možných zradách, jako je ta popisovaná v tomto článku.

  13. avatar tom napsal:

    Otázka zní, a co… když jste „nezajímavý nikdo“ tak je jedno jak anonymní/neanonymní je Vaše prolézání webem… a když po Vás někdo půjde (bude mít důvod) tak si Vás najde bez ohledu na prohlížeč…

  14. avatar pepak napsal:

    Článek dnes vyšel i na serveru Root.cz.

  15. avatar pepak napsal:

    Ano, změna user-agent při každém přístupu celou tu věc řeší. Má to ovšem tři háčky:

    1) Nevím o žádném softwaru, který by dovoloval automaticky měnit odesílané hlavičky. Ruční změna je k ničemu, protože to pochopitelně nikdo dělat nebude – nemluvě o tom, že to je vhodné dělat pro každý panel zvlášť.

    2) Je potřeba sladit user-agent a ostatní hlavičky. Pokud user-agent řekne „Firefox 3.5“, http-accept „Opera 8“ a například pořadí hlaviček „Internet Explorer 9“, tak každý jednotlivý fakt je bezpečný, ale dohromady identifikují prohlížeč dost jednoznačně – dokonce i v případě, že se budou měnit (protože kolik lidí si dává práci s tím, tyto hlavičky falšovat?).

    3) Je potřeba sladit to s dalšími identifikačními znaky, například s ID session v rámci jednoho webu (změna hlaviček mi celkem moc nepomůže, pokud použiju stále tu stejnou IP adresu a session ID).

    Každopádně platí, co už jsem napsal do dřívějšího komentáře: Celá tahle věc není problém při běžném browsení, ale je zatraceně vhodné o ní vědět a nějak ji řešit v případě, že zrovna potřebuješ někam mít anonymní přístup. Nejde jen spolehnout se na to, že „používám TOR a proto jsem anonymní“.

  16. avatar Radek napsal:

    Podle mne je to cele blbost,
    pokud nekdo bude opravdu chtit tak si pri kazde navsteve posle jine USER-AGENT nebo zmeni nekterou z jinych casti identifikace a pokazde bude vystupovat jako jiny browser, sice bude zapadat do nejake 60000 skupiny, ale pokazde do jine.

    A nechat se identifikovat jako iPhone nebo podobne tak dostane u modernich publikacnich systemu uplne jinou stranku (zjednodusenou)

  17. avatar pepak napsal:

    Je možné, že to nemají úplně doladěné. To bych ale nepovažoval za podstatné – někdo jiný tu samou funkčnost doladěnou mít může. Jak jsem si vyzkoušel, identifikace funguje docela dobře i s vypnutým javascriptem.

  18. avatar Pavel Růžička napsal:

    Vyzkoušel jsem Panopticlick se svým IE8 – mám trvale vypnutou podporu ActiveX pro zónu internet – a zobrazila se pouze chyba javascriptu a ve stránce trvale trčí „Please wait“. tím netvrdím, že nelze z browseru a hlaviček vytahat podstatné informace – jen poukazuji na to, že ta „senzační“ služba není úplně dobře dopracovaná.

  19. avatar pepak napsal:

    Nejde o to, abys měl strach z toho, že tě někdo dokáže sledovat. Účelem článku bylo upozornit na to, že tě stránky mohou sledovat i v situaci, kdy máš dobré důvody se domnívat, že jsi anonymní.

  20. avatar Bohdan napsal:

    Úplně nechápu proč mít strach z toho, že někdo dokáže identifikovat můj prohlížeč…

    Každopádně díky za článek, je dobré tohle vědět.

  21. avatar pepak napsal:

    Originální článek je skutečně často dezinterpretován tak, že tyto vlastnosti umožňují identifikovat uživatele; pevně doufám, že z mé verze jasně vyplývá, že to umožňuje identifikaci prohlížeče. Jestli ne, budu to muset upřesnit.

    Vysledování vztahu mezi anonymním a neanonymním browsením je podle mě jenom malá podmnožina toho, co „zjišťování otisků prohlížeče“ umožňuje – a pro tuto malou podmnožinu by skutečně stačilo použít jiný browser pro anonymní a jiný pro neanonymní režim. Větší problém je podle mě to, že tohle prolamuje celou tu „anonymnost“ (teď jsem si to schválně zkoušel na Firefoxu 3.6 a zatímco v neanonymním módu jsem byl jediný s danou identifikací, v anonymním jsme byli dva – a mám vážné podezření, že ten druhý jsem byl „neanonymní já“). No a největší problém je ten, že tohle – narozdíl od cookies i Flash supercookie – dovoluje stopovat prohlížeč napříč celým webem, ne jen po jednotlivých stránkách. Použití různých browserů pro různé stránky samozřejmě pomůže, ale přeci jenom je stránek víc než browserů…

  22. avatar Danoboss napsal:

    Ak som ten článok (skutočne opäť veľmi originálny) správne pochopil (akože asi nie) tak problém nie je ani tak že by cez ten prehliadač mohli vystopovať konkrétne teba ako skôr v tom, že keby si ten istý prehliadač používal niekde na normálny a niekde na anonymný prístup a človek čo by mal údaje z oboch takýchto webov by si mohol doplniť, že sa jedná o tú istú osobu nie? Toto by sa ale dalo snáď vyriešiť jedným prehliadačom pre anonymné a jedným pre normálne surfovanie či nie?

Leave a Reply

Themocracy iconWordPress Themes

css.php