Ochrana proti sledování ve Firefoxu 42: jak přesně funguje?

Petr Krčmář 30. 11. 2015

Nedávno vydaný Firefox 42 přinesl novinku v podobě ochrany proti sledování, která je součástí anonymního režimu. Ta blokuje domény, které jsou využívány ke sledování uživatelů napříč webem. Automaticky tak dělá to, na co byla doposud potřeba rozšíření jako například Ghostery. Jak přesně ochrana funguje?

Nedávno vydaný Firefox 42 nabízí uživatelům dvě novinky, které se týkají soukromí a obtěžování některými weby: vypnutí zvuku v hlučných panelech a ochranu proti sledování v anonymním režimu. Zmíněná ochrana dělá alespoň částečně to, co od „anonymního režimu“ očekávají běžní uživatelé – anonymizaci.

Mnoho uživatelů si skutečně myslí, že anonymní režim nějakým způsobem na internetu zakryje jejich identitu a že tedy funguje podobně jako TOR. Pravdou ale je, že jen vytvoří nové sezení bez uložených cookies a neukládá historii. Nová ochrana proti sledování stále uživatele neanonymizuje před navštívenou službou, ale omezuje služby třetích stran, které sbírají informace napříč webem.

Z uživatelského hlediska je chování jednoduché: pokud se načtená stránka snaží získat další obsah z domény používané pro sledování uživatelů, je toto načítání zablokováno a v adresním řádku se objeví štít.

Pokud chcete zjistit, které položky byly zablokovány, navštivte konzoli a podívejte se na oznámení v panelu Bezpečnost.

Pokud chcete pro konkrétní web tuto ochranu vypnout, stačí kliknout v adresním řádku na ikonku štítu a klepnout na tlačítko „Zakázat ochranu pro tuto relaci“. Jelikož se v anonymním okně neukládá žádná historie, použije se volba jen pro tuto chvíli. Při novém otevření anonymního okna bude funkce zapnutá na všech webech.

Jednotlivé domény jsou blokovány na základě seznamu adres, které si prohlížeč pravidelně stahuje.

Obsah seznamů

Stahování seznamu blokovaných stránek je už ve Firefoxu implementováno v rámci ochrany proti phishingu a používá protokol Safe Browsing v2.2. Každá URL v seznamu je reprezentována hashem ( SHA-256) a jejich seznam je pravidelně stahován a ukládán v uživatelském profilu v adresáři

  • ~/.cache/mozilla/firefox/XXXX/safebrowsing/mozstd-track* na Linuxu
  • ~/Library/Caches/Firefox/Profiles/XXXX/safebrowsing/mozstd-track* na OS X
  • C:\Users\XXXX\AppData\Local\mozilla\firefox\profiles\XXXX\safebrowsing\mozstd-track* ve Windows

Pokud se chcete na hashe podívat, můžete použít sbdbdump script, jehož výstup vypadá takto:

$ ~/sbdbdump/dump.py -v .
- Reading sbstore: mozstd-track-digest256
[mozstd-track-digest256] magic 1231AF3B Version 3 NumAddChunk: 1 NumSubChunk: 0 NumAddPrefix: 0 NumSubPrefix: 0 NumAddComplete: 1696 NumSubComplete: 0
[mozstd-track-digest256] AddChunks: 1445465225
[mozstd-track-digest256] SubChunks:
...
[mozstd-track-digest256] addComplete[chunk:1445465225] e48768b0ce59561e5bc141a52061dd45524e75b66cad7d59dd92e4307625bdc5
...
[mozstd-track-digest256] MD5: 81a8becb0903de19351427b24921a772

Název celého seznamu ( mozstd-track-digest256) se používá v nastavení urlclassifier.trackingTable, které najdete v about:config. Nejdůležitější částí výpisu je pak řádek addComplete obsahující hash URL. Uvidíme ho ještě později.

Hledání v seznamech

Jakmile má Firefox načíst obsah z nového zdroje, zahashuje jeho URL a některé jeho další variace. Poté se pokusí tyto hashe vyhledat ve svých seznamech. Pokud shodu nenalezne, začne stahování. Pokud je ovšem hash nalezen, proběhne další kontrola proti párovacímu seznamu (pairwise allowlist).

Odkaz na tento seznam je nastaven v urlclassifier.trackingWhitelistTable  a obsahuje něco, čemu Mozilla říká „vztahy entit“. Párují se tu jednotlivé domény, které patří logicky k sobě. Podle tohoto seznamu prohlížeč zjistí, zda jde o načítání obsahu z vlastního zdroje nebo zdroje třetí strany. Například se tu může dozvědět, že twitter.com a twimg.com jsou stejná entita.

Záznamy v tomto seznamu nazvaném mozstd-trackwhite-digest256 vypadají takto:

twitter.com/?resource=twimg.com

To můžeme přeložit jako: „Pokud jsi na twitter.com, neblokuj obsah z twimg.com. Pokud se na tomto druhém listu příslušný záznam nachází, není stahování zablokováno. Jen v případě, že se URL nachází na prvním seznamu a není na druhém, pak je nahrávání zastaveno.

Můžete si to ověřit na testovací stránce. Pokud máte Firefox 42, je aktivní ochrana zobrazena pomocí už zmíněného štítu v adresním řádku. Pokud si otevřete konzoli, uvidíte zablokovanou URL i důvod této blokace.

The resource at "https://trackertest.org/tracker.js" was blocked because tracking protection is enabled.

Vytváření seznamů

Seznamy vytváří Disconnect na základě své definice sledování:

Sledování je sběr, zadržování či sdílení dat týkajících se uživatelské aktivity napříč různými weby či aplikacemi, které nejsou vlastněny sběračem těchto dat.

Celý seznam je k dispozici na GitHubu, ale ve Firefoxu se používá kopie z vlastního repozitáře Mozilly. Podobně také páry entit jsou veřejně ke stažení, ale Mozilla udržuje vlastní kopii. Pokud chcete být informováni o nových položkách, přidejte si do čtečky Atom feed.

Seznamy jsou uloženy ve formátu JSON a pro převod do binární podoby pro prohlížeč je používán vlastní generátor napsaný v Pythonu, který se spouští při každé změně. Pokud jej spustíte lokálně za použití stejné konfigurace, jakou používá Mozilla, můžete si takto vygenerovat vlastní seznamy pro svůj prohlížeč a doplnit si je například o své položky.

Takto vypadá příklad ze záznamu z převodu seznamu mozstd-track-digest256.log:

[m] twimg.com >> twimg.com/
[canonicalized] twimg.com/
[hash] e48768b0ce59561e5bc141a52061dd45524e75b66cad7d59dd92e4307625bdc5

Následuje výstup z generování druhého seznamu mozstd-trackwhite-digest256.log:

[entity] Twitter >> (canonicalized) twitter.com/?resource=twimg.com, hash a8e9e3456f46dbe49551c7da3860f64393d8f9d96f42b5ae86927722467577df

To vám v kombinaci se zmíněným skriptem sbdbdump umožňuje ověřit autenticitu obou seznamů.

Stahování seznamů

Seznamy jsou distribuovány v binární podobě a používá se k tomu serverová komponenta shavar, kterou si Mozilla také sama napsala. Firefox si každou hodinu požádá o aktualizaci na serveru shavar.services.mozilla.com. Pokud jsou k dispozici nová data, je znovu stažen celý binární soubor. V opačném případě server vrací prázdnou odpověď s HTTP kódem 204 (No Content).

Kód serveru je samozřejmě otevřený, takže si jej můžete spustit lokálně podle instalačních instrukcí a poté v prohlížeči v about:config  změnit nastavení tak, aby příslušné položky mířily na vaši instanci:

widgety

browser.trackingprotection.gethashURL
browser.trackingprotection.updateURL

Ve Firefoxu 43 a pozdějším budou tyto položky přejmenovány:

browser.safebrowsing.provider.mozilla.gethashURL
browser.safebrowsing.provider.mozilla.updateURL

Další čtení

Článek vychází především ze zápisku vývojáře vývojáře Mozilly: François Marier: How Tracking Protection works in Firefox zveřejněném pod CC by-sa. Další podrobnosti naleznete na Mozilla wiki nebo na mailing listu.

Našli jste v článku chybu?
Lupa.cz: Proč jsou firemní počítače pomalé?

Proč jsou firemní počítače pomalé?

Podnikatel.cz: Byla finanční manažerka, teď cvičí jógu

Byla finanční manažerka, teď cvičí jógu

Vitalia.cz: Tesco nabízí desítky tun jídla zdarma

Tesco nabízí desítky tun jídla zdarma

Podnikatel.cz: Letáky? Lidi zuří, ale ony stále fungují

Letáky? Lidi zuří, ale ony stále fungují

DigiZone.cz: Ve sběru baterií jsme pilní

Ve sběru baterií jsme pilní

Lupa.cz: Adblock Plus začal prodávat reklamy

Adblock Plus začal prodávat reklamy

DigiZone.cz: Nova opět stahuje „milionáře“

Nova opět stahuje „milionáře“

Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků

Vitalia.cz: Pryč se zastaralým stravováním ve školách

Pryč se zastaralým stravováním ve školách

Vitalia.cz: Jsou vegani a vyrábějí nemléko

Jsou vegani a vyrábějí nemléko

DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...

DigiZone.cz: Digi Slovakia zařazuje stanice SPI

Digi Slovakia zařazuje stanice SPI

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

Vitalia.cz: Tradiční čínská medicína a rakovina

Tradiční čínská medicína a rakovina

Podnikatel.cz: Instalatér, malíř a elektrikář. "Vymřou"?

Instalatér, malíř a elektrikář. "Vymřou"?

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

Podnikatel.cz: Nemá dluhy? Zjistíte to na poště

Nemá dluhy? Zjistíte to na poště

Lupa.cz: Cimrman má hry na YouTube i vlastní doodle

Cimrman má hry na YouTube i vlastní doodle