Jak surfovat bez stopy na webu
Víš, že při prohlížení webové stránky existuje také svět za oponou? Je to neviditelný svět, ve kterém se toho odehrává možná i mnohem více než v tom viditelném. Na pozadí při tvém surfování často běží skripty, které o tobě sbírají informace, na základě kterých jsi vystopovatelný napříč celým webem. V tomto článku si ukážeme, jak se tomu bránit a jak surfovat bez stopy. V řešení se kterým přicházím se budu snažit věci popsat podrobně a srozumitelně, návodů, které jdou jen po povrchu je už plný internet.
Pamatujte, i když nejsi IT specialista, tak i pouhé nainstalování zmíněného softwaru pomůže do značné míry omezit špehování jehož jsi obětí. Alespoň částečná ochrana soukromí na webu je lepší než žádná – život je kompromis.
Mullvad browser
Mullvad browser je open source webový prohlížeč, který budeme používat na surfování. Asi se ptáš, jak jsem došel k závěru, že právě tento je nejlepší? Dal jsem si tu práci a nastudoval jsem si názory komunity lidí a odborníků, kteří se digitálním soukromím zabývají. A aby to nebylo jen tlachání v subjektivní rovině, tak níže uvádím fakta na podporu mého tvrzení.
Mullvad Browser je výsledkem unikátní spolupráce mezi Mullvad VPN a Tor Project. Vznikl s jediným cílem: poskytnout uživatelům soukromí na úrovni prohlížeče Tor, ale bez nutnosti používat pomalou síť Tor. Místo toho je navržen tak, aby ho uživatel používal společně s důvěryhodnou VPN. Je to hardenovaný Firefox s addonem uBlock Origin. Je to v současnosti nejlepší privacy browser na trhu a skvělá alternativa k Chrome i Firefoxu. Stáhnout si ho můžeme tady: mullvad.net/en/download/browser/linux. Pro instalaci na Linux se držíme stručného návodu na webu (je to jen zkopírování příkazů do terminálu). Pro Windows stačí stáhnout instalační balíček.
Na webu privacytests.org se můžete podívat jak si Mullvad browser vede v různých testech.
Zde je podrobné srovnání a vysvětlení, co přesně Mullvad Browser dělá pro ochranu soukromí a v čem je Mullvad Browser lepší než obyčejný Firefox.
Tab. 1: Srovnání Firefox a Mullvad Browser
| Aspekt | Firefox (standardní) | Mullvad Browser |
|---|---|---|
| Telemetrie | Sbírá data o používání (lze vypnout v nastavení) | Zcela odstraněna z kódu |
| Fingerprinting | Pouze blokuje sledovací skripty (ETP) | Aktivně podvrhuje a sjednocuje fingerprint |
| Výchozí nastavení | Vyžaduje ruční tvrdé doladění | Přísné soukromí "out of the box" |
| Vestavěný obsah | Obsahuje Pocket, sponzorované dlaždice | Všechny komerční prvky odstraněny |
| Základ | Standardní Firefox od Mozilly | Tor Browser (upravený o Tor síť) |
Zatímco Firefox se soustředí na to, aby tě nesledovaly weby třetích stran, Mullvad Browser jde o krok dál: snaží se, abys na internetu vypadal jako úplně někdo jiný (nebo přesněji řečeno, jako každý další uživatel Mullvad Browseru, aby jsi tzv. splynul s davem).
Co Mullvad Browser dělá pro zachování soukromí?
Mullvad Browser přebírá technologii z Tor Browseru a aplikuje ji pro běžné surfování.
1. Sjednocení fingerprintu (Klíčová vlastnost)
U Firefoxu má každý uživatel jiný fingerprint (otisk prohlížeče) na základě nainstalovaných fontů, rozlišení obrazovky, grafické karty (WebGL) i hardwaru. Mullvad Browser tyto hodnoty podvrhuje nebo sjednocuje. Všichni uživatelé Mullvad Browseru mají stejný fingerprint, což činí sledování pomocí fingerprintingu zcela neúčinným. Tato funkce je převzata přímo z Tor Browseru.
2. Amnézie při restartu
Prohlížeč ve výchozím stavu po svém zavření zapomene vše – cookies, historii, cache, otevřené panely a relace. Když ho znovu otevřeš, je to jako by ses přihlásil z nové čisté instalace. Zabraňuje tak dlouhodobému profilování.
3. Předinstalovaný uBlock Origin
Mullvad Browser obsahuje uBlock Origin. Tor Project normálně doporučuje rozšíření neinstalovat, protože zvětšují šanci na unikátní fingerprint. uBlock Origin je ale výjimka, protože blokování reklam a sledovacích skriptů na pozadí zrychluje načítání stránek a snižuje množství dat, které by prohlížeč jinak odeslal serverům třetích stran.
4. Zablokování WebRTC úniků
WebRTC technologie (používaná např. pro hovory v prohlížeči) je známá tím, že dokáže obejít VPN a prozradit tvou skutečnou lokální IP adresu. Mullvad Browser má WebRTC přísně izolované a zablokované, aby k tomuto úniku nemohlo dojít.
5. Izolace stavu (State Partitioning)
Prohlížeč ukládá data (cookies, cache) do oddělených "kbelíků" pro každý web. Skript na webu A nemůže přečíst data, která vytvořil web B. To drasticky omezuje možnosti cross-site trackingu.
6. Žádné volání domů
Firefox při spuštění nebo instalaci stahuje seznamy doporučených rozšíření, stahuje seznamy HTTPOnly cookies atd. Mullvad Browser má tyto "telefonáty domů" do Mozilly zcela vynechané, aby nedošlo ke korelaci tvé IP adresy s používáním prohlížeče.
Zásadní rozdíl oproti Tor Browseru
Je důležité pochopit, že Mullvad Browser neposkytuje anonymitu na úrovni Toru. Síť Tor skrývá tvou IP adresu. Mullvad Browser tvou IP adresu neskrývá (pokud nepoužíváš VPN). Pokud používáš Mullvad Browser bez VPN, weby vidí tvou IP adresu a tedy i tvé návštěvy webu (jak to omezit, více v kapitole VPN).
uBlock Origin
uBlock Origin (uBO) je open source addon vyvinutý v roce 2014 Raymondem Hillem. uBO je širokospektrální blokátor obsahu pro Chromium, Firefox a kompatibilní prohlížeče s nízkou spotřebou procesoru a paměti. V Mullvadu je už předinstalovaný (najdeš ho v pravém horním rohu v oblasti instalovaných doplňků, má ikonu červeného štítu). Pokud by přece jen nebyl, tak si ho můžeš doinstalovat ze zdroje tady: addons.mozilla.org
Ve výchozím nastavení blokuje reklamy, trackery, coinminery, vyskakovací okna, weby se škodlivým softwarem atd. pomocí seznamů filtrů EasyList, EasyPrivacy, Peter Lowe's Blocklist, Online Malicious URL Blocklist a uBO. K dispozici je mnoho dalších seznamů, které umožňují blokovat ještě více. Podporovány jsou také vaše vlastní filtry. uBO používá syntaxi filtrů EasyList a rozšiřuje ji o práci s vlastními pravidly a filtry.
Pokud se ti zdá, že uBO blokuje příliš mnoho, můžeš snadno zrušit výběr všech přednastavených seznamů filtrů.
Pokud však chceš mít nad uBlock Originem větší kontrolu, můžeš využít jeho "advanced mode". Stačí jít do Settings a zaškrtnout tam kolonku "I am an advanced user" (na obrázku v levém dolním roku).
Obr.1: Nastavení advanced mode
Popis uživatelského rozhraní (UI)
Obr.2: Uživatelské rozhraní
Na obrázku výše můžete vidět základní uživatelské rozhraní uBO. Očísloval jsem jednotlivé ovládací prvky a níže uvádím popis jejich funkce.
- No popups: Když zapneš tento přepínač, všechny popupy budou bezpodmínečně zablokovány pro aktuální web, bez ohledu na filtry.
- No large media elements: Blokuje velké mediální prvky (obrázky, videa, audio) pro aktuální web. Hlavním účelem je šetření bandwidth (datového objemu). Vedlejším efektem je možné zrychlení načítání stránky.
- No cosmetic filtering: Vypne kosmetické filtrování ("element hiding") pro daný web. Kosmetické filtry slouží ke skrývání obsahu, který nelze zablokovat síťovými filtry.
- No remote fonts: Zabraňuje stažení web fontů (vzdálených fontů) pro aktuální web.
- No scripting: Zcela vypne JavaScript pro daný web.
- Blesk (Element Zapper): Dočasně odstraní prvky z webu bez vytváření filtrů (platí jen pro aktuální relaci). Můžeš ze stránky vyhodit např. jeden odstavec, obrázek, tlačítko, celý blok nebo sekci. Je to dobré na odstraňování otravných elementů.
- Bublina: Reportování problémů s uBO.
- Logger: Živý záznam síťové aktivity, co se právě blokuje.
- Setting: Základní nastavení rozšíření.
Blokováno na této stránce 11 (30%): Počet zablokovaných požadavků na této stránce (11) a procentuální zastoupení (30 %).
Domény připojené 2 z 7: Počet domén, které s touto stránkou komunikují (2 z celkových 7).
Blokováno od instalace 260 154 (29%): Celkový počet zablokovaných požadavků od instalace uBO (260 154) a procentuální úspěšnost blokování.
Filtering
Static filtering
Vztahuje se na filtry, které pochází přímo z konkrétních filter listů, které jsme si zmínili výše (např. EasyList, EasyPrivacy atd.).
Seznamy filtrů (EasyList atd.):
- Blokují konkrétní známé domény – ty, které někdo přidal do seznamu
- Jsou reaktivní – někdo musí doménu objevit a přidat do seznamu
- Nový tracker z neznámé domény projde, dokud ho nepřidají do seznamu
Dynamic filtering
Dynamic filtering sestává z pravidel filteringu, které mají firewallový charakter. Pravidla dynamic filteringu jsou nadřazené pravidlům static filteringu a to znamená, že dynamic filtering umí přepsat všechny existující statické filtry s povolením.
Obr.3: Rozšířené UI o pravidla dynamic filteringu
Vysvětlení významu jednotlivých částí obrázku.
Barevné pruhy u levého okraje vám poskytnou celkový přehled o tom, kdy byly všechny síťové požadavky na konkrétní hostitelská jména zablokovány (načervenalé), kdy byly všechny povoleny (nazelenalé) nebo kdy byly některé zablokovány a některé povoleny (nažloutlé). Výraznější, širší pruh označuje kořenový kontext – hostitelské jméno, pro které jsou vytvořena místní pravidla a filtry.
První sloupec: Co se má dynamicky filtrovat.
Druhý sloupec: Globální pravidla dynamického filtrování, tj. jakékoli pravidlo uvedené v tomto sloupci platí všude a na všech stránkách.
Třetí sloupec: Místní pravidla dynamického filtrování, tj. jakékoli pravidlo uvedené v tomto sloupci se vztahuje pouze na aktuální web.
V horní části prvního sloupce můžete vidět následující položky:
| Položka | Popis |
|---|---|
| images | Obrázky načítané stránkou. Blokování skryje reklamní bannery, ale může rozbít navigaci webu, pokud web používá obrázky jako tlačítka. |
| 3rd-party | Veškeré požadavky na cizí domény (obrázky, skripty, styly, fonty). Hlavní přepínač pro zablokování všeho, co nepochází z domény, kde se právě nacházíš. |
| inline scripts | JavaScript přímo v HTML kódu. |
| 1st-party scripts | Skripty ze stejné domény. |
| 3rd-party scripts | Skripty z cizích domén (reklamy, trackery). |
| 3rd-party frames | Vnořené rámy (iframes) z cizích domén. Často používáno pro vložení videí, reklam, sociálních tlačítek nebo widgetů z jiných serverů. Blokování zabrání načtení těchto prvků. |
Buňky ve třetím sloupci poskytují přehled o tom, kolik požadavků bylo zablokováno/povoleno:
-nebo+= bylo zablokováno, resp. povoleno 1–9 síťových požadavků--nebo++= bylo zablokováno nebo povoleno 10 až 99 síťových požadavků---nebo+++= bylo zablokováno nebo povoleno 100 a více síťových požadavků- prázdná buňka = pro konkrétní hostitelské jméno nebyly zaznamenány žádné síťové požadavky
Co přesně si mám představit pod pojmem síťový požadavek?
Když otevřeš webovou stránku, tvůj prohlížeč neudělá jen jednu věc. Neustále se ptá různých serverů na data, aby stránku sestavil. Každé jedno takové "ptaní se" je jeden network request.
Představ si, že otevřeš web amazon.com. To není jeden soubor, je to sada instrukcí. Prohlížeč si přečte HTML (kostru) a zjistí: "Aha, abych ukázal tento článek, musím si stáhnout 15 obrázků, 3 soubory se styly (CSS), 5 skriptů (JavaScript), 2 videa a 4 reklamní bannery."
Každý z těchto stahovatelných prvků je jeden network request. Prohlížeč tedy na pozadí odešle 30 samostatných požadavků na různé servery. Co všechno se počítá jako network request, viz. níže.
Tab. 2: Typy síťových požadavků
| Typ požadavku | Příklad |
|---|---|
| Hlavní dokument | Samotné HTML stránky |
| Skripty | .js soubory (funkčnost webu, ale i trackery) |
| Styly | .css soubory (jak web vypadá) |
| Obrázky | .jpg, .png, .webp (fotky, ikony, reklamní bannery) |
| Fonty | Soubory s písmy (např. Google Fonts) |
| Videa/Audio | .mp4, .mp3 |
| Iframy | Vnořené stránky (např. vložené YouTube video) |
| XHR/Fetch | API volání (např. načtení dalších komentářů, odeslání analytiky) |
| WebSocket | Trvalé spojení (např. živé kurzy akcií) |
uBlock Origin sedí mezi tvým prohlížečem a internetem. Funguje jako vrátný. Pokaždé, když chce prohlížeč udělat network request (stáhnout něco), ukáže ho uBO.
- uBO se podívá na pravidla. Je to reklama? Je to tracker? Je to nebezpečný skript?
- Rozhodne.
- Pokud request projde (je to potřebný obrázek), je to povolený request →
+ - Pokud request zastaví (je to reklama), je to zablokovaný request →
-
- Pokud request projde (je to potřebný obrázek), je to povolený request →
Příklady:
amazon.com: +++(Povoleno 100+ požadavků – stahují se články, obrázky, vlastní skripty)doubleclick.net: ---(Zablokováno 100+ požadavků – Google se 150krát snažil nahrát reklamu/trackery a uBO to pokaždé zastavil)fonts.googleapis.com: +(Povoleno méně než 10 požadavků – stáhly se 2 soubory s fonty)
Existují tedy globální pravidla dynamického filtrování a lokální pravidla dynamického filtrování. Ve výchozím nastavení neexistují při instalaci žádná pravidla dynamického filtrování, takže dynamické filtrování ve výchozím nastavení nic neblokuje. Budete si muset vytvořit vlastní pravidla podle svých vlastních preferencí.
Obr.4: Ukázka globální a lokálních pravidel
Když klikneme do sloupce 2 (globální pravidla) do pravé části buňky v položce facebook.net, tak se buňka vybarví tmavě červenou barvou a zablokuje JS script z facebooku. Ale pozor, protože je to globální pravidlo, tak se bude aplikovat i u všech dalších navštívených webů. Pokud pravidlo chceme zrušit, tak klikneme do levé části téhož políčka. K tomuto pravidlu ještě dodám, že ve sloupci 3 (lokální pravidla) se políčko u facebook.net zabarvilo světle červenou barvou – to je symbol dědění z globálního pravidla.
Nakonec jsem ještě kliknul do 3. sloupce (lokální pravidla) položka 3rd-party scripts do pravé části políčka. Celé políčko zčervenalo a to znamená, že na tomto webu (osel.cz) se nebudou stahovat a tím pádem i spouštět scripty třetích stran. Protože jde o lokální pravidlo, tak se bude aplikovat pouze na této doméně (osel.cz).
Nakonec ještě dodám, že můžeme u navštíveného webu zablokovat JS tlačítkem </>. To zablokuje úplně všechen JS (přebije to ostatní nastavení). Některé weby to ale může rozbít, záleží web od webu. Abychom zjistili, zda to tak bude nebo ne, tak musíme laborovat. Když si vytvoříte pravidlo jak jsem popsal výše, tak se objeví v uBO ikona zámku - na tu když kliknete, tak bude pravidlo uloženo a tím pádem i permanentní.
I kdybychom nepoužili naše vlastní nastavení dynamických filtrů a měli jen ty statické, tak je to lepší než když bysme uBO nepoužili vůbec. Lepší alespoň částečná obrana než žádná.
Tak a nakonec se ještě podíváme do Settings → My rules (viz. obrázek níže). V tomto nastavení můžeme vidět v textovém formátu dynamická pravidla která jsme si nastavili. Pokaždé když si přidáme pravidlo, tak se v My rules přidá jeden řádek (záznam). Můžeme tak experimentovat a zkoušet přidávat pravidla a zároveň se dívat jak bude pravidlo vypadat v textové podobě. Pak ho klidně můžeme editovat a uzpůsobovat ho podle našich přání.
Obr.5: Dynamická pravidla v textovém formátu
Níže si uvedeme krátkou nápovědu ohledně pravidel zapsaných výše.
Pravidlo se vždy skládá z následujících komponent:
zdroj cíl typ akce
Tab. 3: Validní pravidla
| zdroj | cíl | typ | akce |
|---|---|---|---|
| * hostname |
* | * | block |
| image | |||
| inline-script | |||
| 1p-script | noop | ||
| 3p | |||
| 3p-script | allow | ||
| 3p-frame |
Příklady zápisu dynamických pravidel v textovém formátu v praxi:
* facebook.net * block # globální pravidlo, zablokování facebook.net na všech doménách
osel.cz * 3p-script block # lokální pravidlo zablokování 3rd-party JS na doméně osel.cz
no-scripting: www.abclinuxu.cz true # kompletní zablokování JS na doméně www.abclinuxu.cz (přes ovládací prvek </>)
Tab. 4: Vysvětlivky pro dynamické filtrování
| hostname & typ | globální dynamické filtrování |
|---|---|
| vše: | * * * block |
| obrázky: | * * image block |
| třetí strana: | * * 3p block |
| inline skripty: | * * inline-script block |
| skripty první strany: | * * 1p-script block |
| skripty třetí strany: | * * 3p-script block |
| rámce třetí strany: | * * 3p-frame block |
Dokumentace pravidel zde: github.com/gorhill/uBlock/wiki/Dynamic-filtering:-rule-syntax
Fingerprint
Fingerprint zařízení nebo fingerprint prohlížeče jsou informace shromážděné o vzdáleném zařízení k účelům identifikace. Fingerprinty je možné použít na úplnou nebo částečnou identifikaci jednotlivých uživatelů a nebo zařízení.
To znamená, že když se připojíte k internetu na svém notebooku nebo smartfonu, vaše zařízení odevzdá přijímajícímu serveru množství specifických údajů.
Browser fingerprinting je účinná metoda, kterou webové stránky používají na shromažďování informací o typu a verzi tvého prohlížeče, stejně tak tvého operačního systému, aktivních pluginů, časovém pásmu, jazyku, rozlišení obrazovky a různých dalších nastaveních.
Tyto údaje se můžou na první pohled zdát celkem všeobecné a nemusí budít dojem toho, že jsou přizpůsobené na identifikaci jedné konkrétní osoby. Existuje však výrazně malá šance, že jiný uživatel bude mít 100 % shodné informace o prohlížeči.
Webové stránky shromažďují velké množství údajů o návštěvnících, aby je později mohly použít na porovnání s browser fingerprintem zatím známých uživatelů.
CSS
I bez JavaScriptu lze fingerprintovat. Zablokování JavaScriptu výrazně omezuje možnosti fingerprintingu, ale neeliminuje ho úplně. Existují metody, které fungují bez JS nebo na úrovni sítě.
Tab. 5: Metody CSS fingerprintingu
| Metoda | Jak funguje | Účinnost |
|---|---|---|
| Detekce fontů | CSS měří šířku vyrenderovaného textu s různými fonty. Nainstalované fonty se liší podle OS a zařízení. | Střední |
| Media queries | @media (min-width: 1920px) odhalí rozlišení obrazovky. prefers-color-scheme odhalí dark/light mode. | Střední |
| CSS timing | Měření času načítání @import nebo background-image může odhalit cache stav. | Nízká |
Ochrana proti CSS fingerprintingu
CSS fingerprinting využívá stylování k měření tvého prostředí. Prohlížeče jako Mullvad Browser nebo Tor Browser proti tomu mají zabudovanou silnou obranu, ale běžný Firefox nebo Chrome potřebují doplňky nebo nastavení.
A. Detekce fontů (Nejčastější CSS metoda)
Web pomocí CSS nastaví textu font, který možná máš nainstalovaný (např. "Comic Sans MS"). Pokud text po změně fontu změní šířku, web ví, že máš tento font nainstalovaný. Instalované fonty jsou velmi jedinečné (liší se podle OS, nainstalovaných programů jako Office, atd.).
Jak se chránit:
Mullvad/Tor Browser: Omezuje seznam fontů, které smí web používat, na několik základních. Tvé vlastní fonty vůbec nezveřejní.
B. Media Queries (Rozlišení a barvy)
CSS dokáže zjišťovat rozlišení obrazovky (min-width), hustotu pixelů (min-resolution) a to, zda používáš dark mode (prefers-color-scheme: dark).
Jak se chránit:
Letterboxing (Mullvad/Tor): Prohlížeč nastaví okno na fixní velikost (např. 1000x1000) a zbytek obrazovky zakryje bílými okraji. Web vidí vždy jen 1000x1000, ať už máš monitor Full HD nebo 4K.
TLS
TLS fingerprint je "zapečen" v síťovém stacku prohlížeče a žádné rozšíření (ani uBlock Origin) k němu nemá přístup. Níže uvedená tabulka ukazuje co se děje na které vrstvě a kdo na to má jaký vliv.
Proč uBO nepomůže u TLS fingerprintu?
Tab. 6: Vrstvy sítě a TLS fingerprint
| Vrstva | Co se děje | Kdo to řídí |
|---|---|---|
| TCP/TLS (vrstva 4) | Tady se tvoří JA3/JA4 hash | Jádro prohlížeče (NSS/OpenSSL) |
| HTTP (vrstva 7) | Tady funguje uBlock Origin | Renderer prohlížeče |
uBlock Origin blokuje požadavky na úrovni HTTP, ale TLS handshake už proběhl předtím, než uBO vůbec zjistí, že se chystá něco stáhnout.
Javascript
JS je nejčastější metoda získávání fingerprintu. Níže je uvedena tabulka, které metody jsou použity k získávání fingerprintu.
Tab. 7: Funkce zablokované vypnutím JavaScriptu
| Funkce | Bez JS |
|---|---|
| Canvas fingerprinting | Blokováno |
| WebGL fingerprinting | Blokováno |
| AudioContext fingerprinting | Blokováno |
| Battery API | Blokováno |
| Sběr klávesnice/myši | Blokováno |
| Font detekce přes JS | Blokováno (ale CSS ano) |
Zablokovaný JS všechny tyto metody zcela znefunkční.
Tab. 8: Co Mullvad Browser dokáže a nedokáže při ochraně proti fingerprintingu
| Vrstva | Mullvad dokáže? | Metoda |
|---|---|---|
| Canvas | Částečně | Přidává šum |
| WebGL | Částečně | Sjednocuje renderer |
| Fonts | Ano | Omezuje seznam fontů |
| Screen resolution | Ano | Hlásí fixní rozlišení |
| Timezone | Ano | Hlásí UTC |
| User-Agent | Ano | Hlásí sjednocený UA |
| TLS fingerprint | Ne | NSS je fixní |
| HTTP/2 fingerprint | Ne | Firefox impl. je fixní |
| JS engine | Ne | SpiderMonkey je fixní |
| TCP/IP fingerprint | Ne | OS-dependent |
Může změnit: Canvas, fonts, UA, timezone
Nemůže změnit: TLS fingerprint (NSS), HTTP/2, JS engine
To, kolik toho o nás ví weby, které navštěvujeme, si můžeme zjistit na testovacích stránkách jako fingerprintjs.github.io, browserleaks.com nebo pixelscan.net.
Jako příklad tu uvedu screenshot z pixelscan.net.
Obr.6: Info, které o nás ví web se zapnutým JS
Obr.7: Info, které o nás ví web s vypnutým JS
Jak vypnout JS a tím pádem i blokovat fingerprint jsme si ukázali v kapitole uBlock Origin. Když JS vypneme, tak tím značně snížíme možnost nás identifikovat.
Nakonec si nastíníme několik základních scénářů kde bude uvedeno co a jak moc pomáhá proti fingerprintingu. Např. jak pomůže, že používáme Mullvad browser, že máme vypnutý JS a nebo zda má nějaký vliv použití VPN.
Tab. 9: Scénáře identifikovatelnosti podle nastavení ochrany
| Scénář | Naše nastavení | Identifikovatelnost (co vidí webový server) |
|---|---|---|
| 1 | JS povolen (nepoužíváme žádnou ochranu) | 99% (Prozradí nás: Canvas + WebGL + fonty + atd) |
| 2 | JS zablokován | 30–40% (Prozradí nás: CSS + HTTP + TLS) |
| 3 | JS zablokován + Mullvad Browser | 10–15% (Prozradí nás: TLS + HTTP/2 + vaše IP adresa) |
| 4 | JS zablokován + Mullvad Browser + VPN | 5–10% (Prozradí nás: jen TLS a HTTP/2) |
Uvedená procenta jsou pouze orientační odhady, nikoliv přesná měření.
SearxNG
SearxNG bych tu chtěl zmínit za jedním účelem. Je to jedna z vrstev ochrany před fingerprintingem. SearxNG je metavyhledávač, to znamená, že sám nemá žádný vyhledávací engine, ale sdružuje různé vyhledávací enginy. Nás ale bude zajímat Google, protože chceme jeho výsledky, ale nechceme aby nás fingerprintoval. Bude to takové soukromé vyhledávání na Google, ale bez Google. Mezi námi a Googlem bude tedy prostředník a to SearxNG. Ten bude fungovat jako neprostupná hradba když se Google bude snažit dělat fingerprint našeho webového prohlížeče.
Ty <--> SearxNG <--> Google
Veřejné instance
Na webu searx.space můžeme najít seznam veřejně provozovaných a dostupných instancí. Stačí kliknout na URL odkaz v prvním sloupci a jsme na metavyhledávači. V pravém horním roku je nastavení (Preferences), tam si můžeme nakonfigurovat různé parametry metavyhledávače. Nás bude nejvíce zajímat záložka "Engine", tam necháme zatržené jen Google. V levním dolním roku dáme uložit. A můžeme vyhledávat s tím, že Google nedělá fingerprint našeho prohlížeče, protože mezi námi a Googlem figuruje prostředník.
Riziko veřejných instancí
I když SearxNG chrání před fingerprintingem od Googlu, provozovatel veřejné instance může technicky vidět tvé vyhledávací dotazy. Pokud loguje dotazy, má tvůj vyhledávací profil. Proto je privátní instance bezpečnější – ty sám jsi provozovatel a víš, že se nic neloguje.
Při vyhledávání je ale také časté to, že to skončí chybou, např.: Suspended: too many requests. To se u veřejných instancí stává. Pokud stále chceme zůstat u Google, nezbyde nám než vytvořit si vlastní privátní instanci.
Privátní instance
Asi si říkáte proč provozovat svou vlastní instanci. No, je to proto, že na ty veřejné se nedá stoprocentně spolehnout. Mohou ze dne na den zmizet nebo jsou dostupné, ale nefunguje na nich vyhledávání. K provozu privátní instance jsou už potřeba znalosti z IT oboru, alespoň ty základní. Popis jak to udělat je už mimo rozsah tohoto článku, takže to už nechám na úsilí každého z vás. Přesto, pro ty z vás, které by to opravdu zajímalo, tak sem napíšu alespoň v bodech co je potřeba udělat.
- najít si na internetu poskytovatele VPS a vytvořit si u něj vlastní VPS s Linuxem (cena za pronájem VPS cca 10 Euro/měsíc)
- najít si chatbota, který Vám dá instrukce jak nainstalovat docker kontejner s SearxNG (doporučuji platformu Venice.ai a chatbota GLM)
- nakonec už zbývá jen nakonfigurovat vaši Searx instanci, to je v souboru
settings.yml
Abych vám ušetřil čas s konfigurací, tak sem dávám části konfigurace (settings.yml), kterou jsem si sám změnil.
search:
safe_search: 0
autocomplete: "bing" # Našeptávací engine bude Bing (Searx má teď problémy s našeptáčem od Google, proto dočasně používám Bing)
autocomplete_min: 1 # Našeptávání bude hned od prvního zadaného písmene.
outgoing:
request_timeout: 10.0
max_request_timeout: 15.0
retries: 1
retry_on_http_error: [408, 429, 500, 502, 503, 504]
# Tady si definuji, že jediný vyhledávací engine bude Google
engines:
- name: google
disabled: false
use_mobile_ui: false
- name: duckduckgo
disabled: true
- name: brave
disabled: true
- name: startpage
disabled: true
- name: bing
disabled: true
- name: qwant
disabled: true
- name: wikipedia
disabled: true
VPN
VPN neboli virtuální privátní síť je nástroj, který slouží k zamaskování (skrytí) vaší IP adresy. Je to šifrovaný tunel mezi tebou a cílovou destinací. Tvoje data se u tebe zašifrují a odešlou se na VPN server. Tam se data dešifrují a odešlou se na cílový server. Nejlépe si to budeme ilustrovat na příkladu. Jseš na PC a chceš se přes VPN připojit na server amazon.com. Na tvém PC (jsi VPN client) se tedy data zašifrují, odešlou se na VPN server, takzvaný exit node, tam se dešifrují a odcházejí na amazon.com. Server amazon.com zašle odpověď a ta se stejnou cestou dostane zase k tobě.
Tvůj ISP tedy nevidí, že jsi komunikoval s amazon.com a ten zase nevidí tvou IP adresu, protože spojení na něj bylo z VPN serveru, přes který jsi připojen do internetu.
WebRTC úniky
WebRTC technologie (používaná např. pro hovory v prohlížeči) může obejít VPN a prozradit tvou skutečnou lokální IP adresu. Mullvad Browser má WebRTC přísně izolované, ale běžný Firefox nebo Chrome potřebují doplněk jako "uBlock Origin" s povoleným blokováním WebRTC, nebo ruční vypnutí WebRTC v about:config.
DNS leaks
I když používáš VPN, tvůj systém může stále odesílat DNS dotazy přes DNS server tvého ISP. To znamená, že ISP vidí, na jaké domény se ptáš, i když nevidí obsah komunikace. Mullvad Browser toto řeší izolací DNS dotazů, ale pro běžný prohlížeč je důležité zajistit, aby VPN zachytávala i DNS dotazy.
Kill switch
Kill switch je funkce, která okamžitě zablokuje veškerou internetovou komunikaci, pokud VPN spojení spadne. Bez kill switch by tvoje IP adresa byla prozrazena v okamžiku, kdy VPN přestane fungovat. IVPN má kill switch jako standardní funkci.
Když budete hledat vhodného poskytovatele VPN služby, tak narazíš na nepřeberné množství možností. Takže podle čeho VPN vybrat když ti každý říká, že ta jeho je ta nejlepší? Sám jsem stál před touto volbou...
Abych k tobě byl stoprocentně upřímný, tak nejvíce jsem dal na osobní zkušenosti etických hackerů, kteří mi pomohli se zorientovat v tom moři možností a dali mi tipy z první ruky.
Dále jsou to zkušenosti komunity lidí, kteří se touto problematikou zabývají (dostupné v různých internetových skupinách).
A nakonec informace od samotných VPN provozovatelů. Ti budou samozřejmě vychvalovat ten svůj produkt. Tady se to dá ale alespoň zhruba roztřídit podle toho co vám deklarují. Například "no log policy" – to znamená, že o vás nebudou sbírat žádné informace – to si vždy ověřte. Je to placená VPN (nebo není až podezřele levná?) – to je další ukazatel. Provoz jejich infrastruktury něco stojí...
Na základě výše uvedeného jsem se rozhodl používat IVPN.
Shrnutí proč IVPN:
- Má auditovanou no-log policy (neukládá žádné záznamy o tvé aktivitě)
- Podporuje WireGuard (moderní, rychlý a bezpečný protokol)
- Má kill switch jako standardní funkci
- Umožňuje platbu kryptoměnami bez KYC
- Podporuje multi-hop VPN (přesměrování přes více serverů pro vyšší soukromí)
- Je placená (což je ukazatel, že neprodávají tvá data)
Obr.8: Schéma fungování VPN
Závěr
Soukromí na internetu není jen o prohlížeči. Je to o celém tvém digitálním životě – o tom, jak komunikuješ, jak používáš AI, a taky o tom, jak nakládáš se svými penězi.
Pokud tě zajímá, jak utratit krypto bez toho, aby o tom věděla banka, jak oddělit tvou identitu od tvých peněz, přečti si moji recenzi ether.fi Cash Card. A pokud chceš AI s důrazem na soukromí, která tě nesleduje, podívej se na můj článek o Venice.ai.