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):

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:

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…

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ě:

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.

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?
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ů…
Ú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.
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í.
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á.
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.
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)
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í“.
Článek dnes vyšel i na serveru Root.cz.
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č…
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.
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“.
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.
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)
[...] 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 [...]