Laboratorní úloha č. 11

Anonymizační sítě

Návrh, správa a bezpečnosť počítačových sietí (MPC-NSB)

Úvod

Cílem této laboratorní úlohy je seznámit studenty s využitím anonymizačních sítí, jejich významem v oblasti ochrany soukromí a bezpečnosti online komunikace a objasnit jim základní principy jejich fungování. Hlavní pozornost bude věnována anonymizační síti Tor (z angl. The Onion Routing), která pro zajištění důvěrnosti, anonymity uživatelů a utajení komunikace mezi účastníky využívá techniku tzv. „cibulového“ směrování (onion routing). V rámci této úlohy budou vysvětleny základní principy fungování a účel anonymizačních sítí, představen bude hlavní koncept celosvětově známé anonymizační sítě Tor a objasněno bude také použití vrstevnatého směrování v tomto typu sítí.

V praktické části se studenti budou věnovat instalaci a konfiguraci nástroje Tor v prostředí Kali Linux, prohlížení internetu prostřednictvím sítě Tor a analýze síťové komunikace pomocí nástroje Wireshark. Studenti tak získají praktické dovednosti v oblasti anonymizace internetové komunikace a naučí se analyzovat tok dat v prostředí anonymizačních sítí.

Teoretický úvod

V této laboratorní úloze zaměřené na problematiku anonymizačních sítí se seznámíte se základními principy jejich fungování, základní strukturou a také s procesem tzv. vícevrstvového („cibulového“) šifrování, který je typický právě pro dosažení anonymity koncových zařízení komunikujících prostřednictvím anonymizačních sítí.

Anonymizační sítě

Anonymizační sítě představují pokročilé bezpečnostní technologie navržené a používané za účelem ochrany identity uživatelů a jejich soukromí v digitálním prostředí současných počítačových sítí. Jedná se o speciální typy sítí určené k ochraně identity a polohy uživatelů, které prostřednictvím šifrování informací obsažených v přenášených datových jednotkách umožňují anonymní prohlížení internetu, resp. komunikaci, a tím i skrytí identity přistupujících uživatelů (resp. zařízení) napříč rozsáhlým konglomerátem vzájemně propojených sítí. Jejich cílem je minimalizovat možnost sledování zdrojové IP adresy, lokalizace či jiných identifikačních údajů uživatele.

Mezi nejznámější anonymizační sítě patří například Tor, I2P, Freenet a i. V tomto úkolu bude největší pozornost věnována především anonymizační síti Tor (The Onion Router).

Tor (The Onion Router)

Tor je projekt vyvíjený s cílem poskytnout uživatelům internetu možnosti anonymního vystupování a komunikace v digitálním prostředí. Je založen na princípu tzv. „cibulového“ směrování (onion routing), kdy komunikace mezi klientem a cílovým serverem probíhá přes sérii náhodně vybraných zprostředkovatelů nazývaných „Tor relé“ (typicky se jedná o mezilehlé směrovače na přenosové trase). Každý takovýto mezilehlý uzel zná pouze bezprostředně předcházející a následující bod komunikace, díky čemuž je znemožněno sledování průběhu celé komunikace, včetně informací o koncových bodech.

Anonymizační síť Tor je navržena tak, aby bylo možné:

Architektura sítě Tor

Pro další popis a vysvětlení principů tzv. „cibulového“ směrování jsou důležité dva základní pojmy: vrstvy a uzly. Při směrování datových jednotek (tzv. buněk) směrem k adresátovi s využitím „cibulového“ směrování každý mezilehlý uzel zapojený do komunikace dešifruje pouze jednu „vrstvu“ aplikovaného šifrování. Po dešifrování, tj. odstranění vnější vrstvy, se odhalí následující adresa na trase k příjemci datové jednotky, ostatní zůstávají stále chráněny, ukryty šifrováním. To představuje základní mechanismus zajištění anonymity uživatelů (resp. jednotlivých uzlů, zařízení).


Typická síť Tor se skládá z následujících základních komponent (uzlů):

Princip šifrování v anonymizační síti

Mechanismy sítě Tor pro zajištění anonymity uživatelů jsou aplikovány na úrovni síťové vrstvy, jak ji známe z TCP/IP modelu. Celková architektura sítě Tor se skládá z následujících vrstev:

Vrstvová architektúra siete Tor
Vrstvová architektura sítě Tor.

V síti Tor probíhá komunikace ve formě buněk (cells), které představují základní jednotku přenosu dat mezi klientem a uzly v síti. Každá buňka má pevně danou velikost 512 bajtů. Neměnná velikost buněk umožňuje minimalizovat možnost analýzy komunikace na základě velikosti přenášených datových jednotek. Všechny zprávy, bez ohledu na jejich skutečný obsah nebo délku, jsou proto zapouzdřeny do stejně velkých buněk, čímž se snižuje riziko, že by pozorovatel (typicky útočník) mohl identifikovat vzorce komunikace nebo konkrétní typ dat.

Buňky Tor lze podle účelu jejich použití rozdělit na několik typů, například:

Každá buňka Tor má pevně definovaný formát a obsahuje více polí, která slouží k identifikaci, správě přenosu a samotnému přenosu dat. Přesný obsah buňky se může mírně lišit v závislosti na jejím typu. Struktura standardní buňky Tor je znázorněna na obrázku, význam jednotlivých polí je následující:

Tor bunka
Schematické znázornění struktury Tor buňky.

Vytváření okruhů a princip cibulového směrování v síti Tor

Klíčovým mechanismem pro zajištění anonymity je vytváření tzv. okruhů (circuits) a používání techniky vícevrstvového šifrování, známé jako onion routing.

Tor vytváří mezi klientem a cílovým serverem vícevrstvový (tzv.  „cibulový“ Označení je převzato z překladu angl. slova onion, které značí cibuli. Princip šifrování, resp. dešifrování paketů odesílaných přes Tor síť se podobá vrstvení cibule – a právě na základě této podobnosti byl vytvořen i její název. ) šifrovaný kanál, prostřednictvím kterého jsou data, resp. datové pakety přesměrovány přes několik náhodně vybraných uzlů v síti Tor. Jednotlivé uzly znají pouze odesílatele a příjemce své části trasy, nemají znalost o jiných uzlech, které byly nebo budou zapojeny do celé komunikace potřebné k doručení dané datové jednotky (buňky) od jejího odesílatele až k vybranému příjemci, což zajišťuje anonymitu..
Proces vytváření okruhu probíhá v několika etapách:

  1. Výběr uzlů: klient si ze zveřejněného seznamu náhodně vybere vhodné uzly Tor. Výběr probíhá podle specifických pravidel – například vstupní uzly musí být stabilní a důvěryhodné.

  2. Dohoda na klíčích: pomocí protokolu podobného výměně klíčů podle Diffie-Hellmana si klient postupně vytvoří s každým uzlem samostatný šifrovací klíč. Všechny tyto výměny probíhají přes vstupní uzel, přičemž klient navazuje spojení s dalšími uzly „skrze“ předchozí (šifrovaně).

  3. Postupné rozšíření okruhu: nejprve se vytvoří šifrované spojení klienta se vstupním uzlem (pomocí buněk CREATECREATED), následně se přes tento uzel vytvoří šifrovaný tunel postupně ke všem dalším uzlům až nakonec k výstupnímu uzlu.
Tor network
Komponenty Tor sítě a znázornění vytvořeného okruhu.

Takto vytvořený okruh slouží jako trasa, po které jsou dále přenášena šifrovaná data.

Po vytvoření kompletního okruhu od odesílatele až k cílovému příjemci je možné zahájit přenos dat, který je podroben „cibulovému směrování“. Mechanismus tohoto vícevrstvového šifrování funguje následovně:

  1. Klient si nejprve připraví datovou jednotku (např. požadavek HTTP), kterou chce doručit na cílový server

  2. Tuto jednotku následně vícekrát šifruje – každá vrstva šifrování je určena jednomu uzlu v pořadí od výstupního po vstupní:
    • nejprve pro výstupní uzel (vnitřní vrstva),
    • poté pro prostřední uzel (resp. uzly),
    • nakonec pro vstupní uzel (vnější vrstva).

  3. Když šifrovaná zpráva dorazí do vstupního uzlu, ten v procesu dešifrování odstraní pouze svou vrstvu (vnější) a odešle její obsah, který je zašifrován pomocí klíče pro další mezilehlý uzel v pořadí, dále směrem k tomuto uzlu ve vytvořeném okruhu.

  4. Následující uzel opět odstraní jen svou vrstvu šifrování a odešle šifrovaná data dále.

  5. Tento proces se opakuje, dokud buňka nedorazí k výstupnímu uzlu. Ten dešifruje poslední vrstvu a odešle původní požadavek vytvořený klientem, resp. odesílatelem, na cílový server na internetu (např. webovou stránku).

  6. Při zpětné odpovědi se postupuje obdobně, pouze s tím rozdílem, že jednotlivé šifrovací klíče jsou aplikovány při vytváření vrstev v opačném pořadí – výstupní uzel odpověď zašifruje a pošle zpět přes tentýž okruh, přičemž každý uzel dešifruje pouze svou část, až se odpověď dostane zpět k původnímu klientovi.

Aplikace vícevrstvového šifrování na přenášená data je schematicky znázorněna na následujícím obrázku. Popsaný mechanismus zajišťuje, že žádný z uzlů nemá úplnou znalost o celé komunikaci. Vstupní uzel zná IP adresu klienta, ale ne cílový server. Výstupní uzel naopak zná cíl, ale ne klienta. Všechny mezilehlé uzly znají pouze své bezprostřední sousedy.

onion routing
Schematické znázornění vrstveného šifrování v Tor síti.

Výhody a riziká anonymizačných sietí

Použití anonymizačních sítí přináší řadu výhod, mezi něž nepochybně patří skrytí IP adresy uživatelů, což je zároveň jeden ze základních předpokladů pro ochranu před nežádoucím sledováním a profilováním. Na druhou stranu, přenos dat prostřednictvím anonymizační sítě může být znatelně pomalejší, protože je nutné data přenášet přes více mezilehlých uzlů a zároveň je opakovaně šifrovat (resp. dešifrovat), což může vést ke zpomalení internetového připojení. .

Mezi další nevýhody a rizika anonymizačních sítí lze zařadit i možnost kompromitace výstupního uzlu směrem k příjemci dat (exit node) a také skutečnost, že použití anonymizačních sítí nezaručuje úplnou ochranu před všemi formami sledování komunikace v počítačových sítích – např. sledování časových korelací mezi datovými přenosy a jejich následná analýza. Stejně tak neposkytují ochranu před jinými typy síťových útoků nebo útoků na koncová zařízení, např. prostřednictvím škodlivého kódu (malwaru) na straně uživatele apod

Více informací o konceptu anonymizačních sítí a o samotné síti Tor lze nalézt v publikacích [1], [2], [3], [4].

Použité nástroje

Tor v Kali Linux

Tor představuje jednoduchý softwarový nástroj umožňující anonymní prohlížení internetu přes síť Tor. Vytvoření, resp. simulaci vlastní anonymizační sítě založené na využití služby Tor lze realizovat i v prostředí systému Kali Linux, a to její instalací přímo prostřednictvím příkazového řádku (terminálu) pomocí příkazů:

sudo apt update
sudo apt install tor

Po úspěšné instalaci následuje spuštění služby Tor:

sudo systemctl start tor
sudo systemctl enable tor

Ověření, zda je služba aktivní, lze provést příkazem:

sudo systemctl start tor
sudo systemctl enable tor

Pro ověření připojení k síti Tor lze použít např. níže uvedený příkaz:

curl --socks5-hostname 127.0.0.1:9050 https://check.torproject.org/

Uvedený příkaz spustí odeslání jednoduché HTTP GET požadavky na stránku https://check.torproject.org přes vytvořenou Tor síť.

Pozn.: TCP port 9050 je výchozím portem pro klienta Tor běžícího na Kali Linuxu. Síť Tor v tomto případě funguje jako proxy server, resp. zprostředkovatel komunikace mezi klientem na vašem zařízení a dotazovaným cílovým serverem – veškerá komunikace je tedy přesměrována právě přes síť Tor..

Po odeslání požadavku server check.torproject.org analyzuje vaši IP adresu a vrátí odpověď, zda komunikace probíhá přes Tor. Pokud je použití sítě Tor správně nastaveno, v terminálu se zobrazí hláška:

"Congratulations. This browser is configured to use Tor."

Tor Browser

Jedná se o upravenou verzi webového prohlížeče nakonfigurovanou pro anonymní používání s využitím sítě Tor za účelem zajištění soukromí a anonymity uživatelů v online prostředí. Tor Browser je navržen tak, aby bylo možné skrýt nejen samotnou identitu uživatele, ale také jeho polohu a aktivitu na internetu.

Tor Browser realizuje šifrování přenášených uživatelských dat v několika vrstvách. Datové přenosy jsou kompletně šifrovány a odesílány přes síť Tor, která se skládá z velkého množství (typicky tisíců) relay uzlů zprostředkujících přenos zabezpečené šifrované komunikace. Každý relay uzel na cestě přenosu dat směrem k příjemci vždy dešifruje pouze jednu (vnější) vrstvu, díky čemuž nikdy nezíská úplnou, kompletní informaci o daném přenosu, a anonymita komunikujících stran tak zůstává zachována.

Wireshark

Wireshark je síťový analyzátor, který umožňuje sledovat datové přenosy. V případě sítě Tor je možné zachytit šifrované pakety a analyzovat jejich strukturu, avšak jejich obsah zůstává chráněn šifrováním.

Použití nástroje Wireshark jste si prakticky vyzkoušeli již v rámci několika předchozích laboratorních úloh, a proto jeho podrobnější popis nebude dále uváděn.

Praktická část

V rámci praktické části úlohy si vyzkoušíte anonymní prohlížení prostřednictvím anonymizačního webového prohlížeče Tor Browser. Následně budete analyzovat zachycený tok dat v anonymizační síti pomocí nástroje Wireshark, na základě čehož získáte přehled o výhodách, nevýhodách a rizicích spojených s použitím prostředků pro anonymizaci v dnešních počítačových sítích.

Topologie virtuální sítě a nastavení virtuálních strojů

Vytvořená síť bude sestávat ze tří virtuálních strojů:

Síťová konfigurace:

Topológia
Topologie sítě laboratorní úlohy.

Seznámení se s použitými nástroji

Přehled základních příkazů pro jednotlivé používané nástroje

Uvedení základních příkazů pro práci se službou Tor na klientském zařízení a pro instalaci a následné použití prohlížeče Tor Browser pro anonymní prohlížení internetu bylo součástí teoretického úvodu, a z tohoto důvodu se jejich opakovaný přehled dále neuvádí. Všechny potřebné příkazy budou uvedeny následně v praktické části v jednotlivých krocích pro vypracování laboratorního úkolu.

Použití Wiresharku pro analýzu komunikace přes síť Tor

V rámci analýzy zaznamenané komunikace je vhodné použít filtr:

tcp.port == 9050
Pozn.: Použití uvedeného filtru zajistí zobrazení TCP komunikace na příslušném portu, tj. 9050 – což je port využívaný na straně klienta pro komunikaci se SOCKS proxy pro její další přesměrování přes anonymizovanou síť Tor.

Postup pro vypracování laboratorní úlohy

A) Příprava prostředí

Spuštění virtuálních strojů

Přihlašovací údaje:

VM „Tor klient“ Username: klient Password: kali
VM „Klient II“ Username: server Password: kali
VM „monitoring“ Username: kali Password: kali

B) Příprava klienta pro využití anonymizované sítě

Instalace Tor na klientském VM

Instalace Tor Browseru

Pripojenie k Tor Browser Úvodná stránka Tor Browser
Připojení k prohlížeči Tor Browser (vlevo), načtení úvodní domovské stránky (vpravo).

Připojení k síti Tor a ověření funkčnosti

TorBrowser2
Úvodní stránka – potvrzení úspěšného připojení.

C) Sledování síťového provozu

Sledování příchozí komunikace ve Wiresharku na VM3

Wireshark-klient
Ukázka zachycené komunikace: využití Tor Browseru pro anonymní prohlížení.
Ve výstupu můžete vidět komunikaci klienta s uzlem s IP adresou 94.23.148.66 – jedná se o IP adresu, která pravděpodobně patří jednomu z uzlů sítě Tor. Komunikace na portu 9000 je pro tuto síť typická. Tor standardně pro mezilehlé uzly (relays) využívá porty jako 9001, 9003 apod., avšak vzhledem k tomu, že síť Tor je dynamická a uzly se mohou měnit, je běžné, že klient naváže spojení s různými IP adresami na různých portech, jako například právě 9000, 9001 nebo 9003
Wireshark-flow-graph
Flow Graph Flow Graph záznamu komunikace si můžete zobrazit přes volbu Statistics > Flow Graph v záhlaví panelu nástrojů hlavního okna nástroje Wireshark. komunikace mezi Tor klientem a vzdáleným serverem.
whois
Tor klient: ukázka výstupu po přístupu na webové stránky whatismyipaddress.com (přidělení IP adresy).

Samostatný úkol

V závěrečné části laboratorního úkolu provedete porovnání šifrované komunikace, resp. přenosu datových jednotek standardním způsobem (tj. s využitím aplikačního protokolu HTTPS) a prostřednictvím sítě Tor. Na základě analýzy datové komunikace ve Wiresharku porovnáte rozdíly mezi uvedenými způsoby datového přenosu.

A) Cílem vaší samostatné práce bude s využitím VM2 (nového klienta) přistupovat k internetu „klasicky“ (tedy bez použití sítě Tor), kdy bude pro datový přenos použit protokol HTTP, resp. zabezpečený HTTPS, a následně porovnat zásadní rozdíly v anonymitě, struktuře přenosu, velikosti datových jednotek a viditelnosti dat při použití prohlížeče Tor Browser (sítě Tor) a běžného prohlížeče využívajícího připojení přes HTTPS.

B) Na základě záznamu komunikace ve Wiresharku analyzujte hlavní rozdíly v zabezpečení identity při použití Tor vs. klasického HTTPS připojení a porovnejte výhody, resp. nevýhody obou přístupů. Zároveň analyzujte rozdíly v IP adresách, které cílový server přidělí klientům na VM1 a VM2 (můžete využít nástroj whois).

C) Nakonec proveďte měření přenosové rychlosti a latence obou klientů. Doporučeno je využít stránku: https://www.rychlost.cz . Sledujte parametry rychlosti stahování/odesílání a latenci (doba odezvy – ping), následně naměřené výsledky obou klientů vzájemně porovnejte.

Kontrolní otázky

Poznámka: Některé otázky mohou mít více než jednu správnou odpověď. Pro správné zodpovězení otázky je nutné označit všechny správné odpovědi.

Závěr

V tomto laboratorním úkolu jste se seznámili se základními principy fungování anonymizačních sítí a jejich významem pro ochranu soukromí a zachování anonymity uživatelů při komunikaci na internetu.

Prakticky jste si vyzkoušeli instalaci Tor klienta v systému Kali Linux a také použití prohlížeče Tor Browser speciálně přizpůsobeného pro anonymní prohlížení, navázání spojení přes síť Tor a rovněž anonymní prohlížení internetu. Součástí úkolu byla také analýza zachycené komunikace pomocí nástroje Wireshark, kde jste mohli sledovat fázi navazování spojení (handshake) se sítí Tor a následné šifrované přenosy dat. V rámci samostatného úkolu jste dále provedli porovnání průběhu šifrované komunikace prostřednictvím protokolu HTTPS a komunikace odesílané právě přes anonymizační síť Tor a sledovali významné rozdíly porovnáním obou uvedených přístupů. Při vzájemném porovnání jste rovněž provedli měření přenosových parametrů, během kterého jste mohli pozorovat delší dobu odezvy a nižší přenosové rychlosti při použití Tor.