Laboratórna úloha č. 11

Anonymizačné siete

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

Úvod

Cieľom laboratórnej úlohy je oboznámiť študentov s použitím anonymizačných sietí, ich významom v oblasti ochrany súkromia a bezpečnosti online komunikácie a ozrejmiť im základné princípy ich fungovania, pričom hlavná pozornosť bude venovaná anonymizačnej sieti Tor (z angl. The Onion Routing), ktorá využíva pre zaistenie dôvernosti, anonymity užívateľov a utajenia komunikácie medzi účastníkmi techniku tzv. „cibuľového“ smerovania (onion routing). V rámci laboratórnej úlohy budú preto vysvetlené základné princípy fungovania a účel použitia anonymizačných sietí, ďalej bude predstavený hlavný koncept celosvetovo známej anonymizačnej siete Tor a taktiež bude objasnené použitie vrstvového smerovania v tomto type sietí.

V praktickej časti sa študenti budú venovať inštalácii a konfigurácii nástroja Tor v prostredí Kali Linux, prehliadaniu internetu prostredníctvom Tor siete a analýze sieťovej komunikácie pomocou nástroja Wireshark. Študenti tak nadobudnú praktické zručnosti v oblasti anonymizácie internetovej komunikácie a naučia sa analyzovať tok dát v prostredí anonymizačných sietí.

Teoretický úvod

V tejto laboratórnej úlohe venovanej problematike anonymizačných sietí sa zoznámite so základnými princípmi fungovania anonymizačných sietí, ich základnou štruktúrou a tiež s procesom tzv. viacvrstvového („cibuľového“) šifrovania, ktoré je typické práve pre dosiahnutie anonymity klientov, resp. komunikujúcich koncových zariadení prostredníctvom anonymizačných sietí.

Anonymizačné siete

Anonymizačné siete predstavujú pokročilejšie bezpečnostné technológie navrhnuté a používané za účelom ochrany identity používateľov a ich súkromia v digitálnom prostredí dnešných počítačových sietí. Jedná sa o špeciálne typy sietí navrhnuté za účelom ochrany identity a polohy používateľov, ktoré umožňujú prostredníctvom šifrovania informácií obsiahnutých v prenášaných dátových jednotkách zaistiť anonymné prehliadanie internetu, resp. komunikáciu, a tým i ukrytie identity pristupujúcich užívateľov (resp. zariadení) naprieč rozsiahlym konglomerátom vzájomne prepojených sietí. Ich cieľom je minimalizovať možnosť sledovania zdrojovej IP adresy, lokalizácie či iných identifikačných údajov používateľa.

Medzi najznámejšie anonymizačné siete patria napríklad Tor, I2P, Freenet a i. V tejto úlohe bude najväčšia pozornosť venovaná primárne anonymizačnej sieti Tor (The Onion Router).

Tor (The Onion Router)

Tor predstavuje projekt vyvíjaný s cieľom poskytnúť užívateľom možnosti anonymného vystupovania a komunikácie v digitálnom prostredí internetu. Je založený na princípe tzv. „cibuľového“ smerovania (onion routing), kde komunikácia medzi klientom a cieľovým serverom prebieha cez sériu náhodne vybraných sprostredkovateľov nazývaných „Tor relé“ (typicky sa jedná o medziľahlé smerovače na prenosovej trase). Každý takýto medziľahlý uzol pozná len bezprostredne predchádzajúci a ďalší nasledujúci bod komunikácie, vďaka čomu je možné zamedziť úplné sledovanie priebehu celej komunikácie, a to vrátane informácií o koncových bodoch.

Anonymizačná sieť Tor je navrhnutá tak, aby bolo možné:

Architektúra Tor siete

Pre ďalší popis a vysvetlenie princípov tzv. „cibuľového“ smerovania sú dôležité dva základné pojmy: vrstvy a uzly. Pri smerovaní dátových jednotiek (tzv. buniek) smerom k adresátovi s využitím „cibuľového“ smerovania každý medziľahlý uzol podieľajúci sa na komunikácii (resp. smerovaní) vždy dešifruje len jednu „vrstvu“ aplikovaného šifrovania. Po dešifrovaní, t. j. odstránení vonkajšej vrstvy sa odhalí ďalšia nasledujúca adresa na trase k príjemcovi dátovej jednotky, iné však zostávajú stále chránené, utajené šifrovaním, čo predstavuje základný mechanizmus pre zaistenie anonymity užívateľov (resp. jednotlivých uzlov, zariadení).


Typická sieť Tor pozostáva z nasledujúcich základných komponentov (uzlov):

Princíp šifrovania v anonymizačnej sieti

Mechanizmy siete Tor používané pre zaistenie anonymity používateľov sú aplikované na úrovni sieťovej vrstvy, ako ju poznáme zo sieťového modelu TCP/IP. Celková architektúra siete Tor pozostáva z nasledujúcich vrstiev:

Vrstvová architektúra siete Tor
Vrstvová architektúra siete Tor.

V sieti Tor prebieha komunikácia vo forme buniek (cells), ktoré predstavujú základnú jednotku prenosu dát medzi klientom a uzlami v sieti. Každá bunka má fixnú veľkosť 512 bajtov. Nemenná veľkosť bunky umožňuje minimalizovať možnosť analýzy komunikácie na základe veľkosti prenášaných dátových jednotiek. Všetky správy, bez ohľadu na ich skutočný obsah alebo dĺžku, sú preto zapuzdrené do rovnako veľkých buniek, čím sa znižuje riziko, že by pozorovateľ (typicky útočník) mohol identifikovať vzorce komunikácie alebo konkrétny typ dát.

Tor bunky možno rozdeliť podľa účelu ich použitia na viacero typov. Napríklad:

Každá Tor bunka má pevne daný formát a obsahuje viacero polí, ktoré slúžia na identifikáciu, správu prenosu a prenos samotných dát. Presný obsah bunky sa môže mierne líšiť v závislosti od jej typu. Štruktúra štandardnej Tor bunky je znázornená na obrázku, význam príslušných polí je nasledovný:

Tor bunka
Schematické znázornenie štruktúry Tor bunky.

Vytváranie okruhov a princíp cibuľového smerovania v sieti Tor

Kľúčovým mechanizmom zabezpečenia anonymity je vytváranie tzv. okruhov (circuits) a používanie techniky viacvrstvového šifrovania, známeho aj ako onion routing.

Tor vytvára medzi klientom a cieľovým serverom viacvrstvový (tzv.  „cibuľový“ Označenie je prevzaté z prekladu angl. slova onion, ktoré značí cibuľu. Princíp šifrovania, resp. dešifrovania paketov odosielaných cez Tor sieť sa podobá vrstveniu cibule – a práve na základe tejto podobnosti bol vytvorený aj jej názov. ) šifrovaný kanál, prostredníctvom ktorého sú údaje, resp. dátové pakety presmerované cez niekoľko náhodne vybraných uzlov v Tor sieti. Jednotlivé uzly poznajú len odosielateľa a prijímateľa ich časti trasy, nemajú znalosť o iných uzloch, ktoré boli alebo budú zapojené do celej komunikácie potrebnej pre zaistenie doručenia danej dátovej jednotky (bunky) od jej odosielateľa až k vybranému príjemcovi, čo zabezpečuje anonymitu.
Proces vytvárania okruhu prebieha v niekoľkých etapách:

  1. Výber uzlov: klient si zverejneného zoznamu vyberie náhodne vhodné Tor uzly. Výber prebieha podľa špecifických pravidiel – napríklad vstupné uzly musia byť stabilné a dôveryhodné.

  2. Dohoda na kľúčoch: pomocou protokolu podobného Diffie-Hellmanovej výmene kľúčov si klient postupne vytvorí s každým uzlom samostatný šifrovací kľúč. Všetky tieto výmeny prebiehajú cez vstupný uzol, pričom klient nadväzuje spojenie s ďalšími uzlami „cez“ predchádzajúce (šifrovane).

  3. Postupné rozšírenie okruhu: najskôr sa vytvorí šifrované spojenie klienta so vstupným uzlom (pomocou CREATECREATED buniek), následne sa cez tento uzol vytvorí šifrovaný tunel postupne ku všetkým nasledujúcim uzlom až nakoniec k výstupnému uzlu.
Tor network
Komponenty Tor siete a znázornenie vytvoreného okruhu.

Po vytvorení kompletného okruhu od odosielateľa až cieľovému príjemcovi je možné zahájiť dátový prenos, ktorý je podrobený „cibuľovému smerovaniu“. Mechanizmus tohto viacvrstvového šifrovania funguje nasledovne:

  1. Klient si najprv pripraví dátovú jednotku (napr. požiadavku HTTP), ktorú chce doručiť na cieľový server.

  2. Túto jednotku následne viacnásobne šifruje – každá vrstva je určená jednému uzlu v poradí od výstupného po vstupný:
    • najprv pre výstupný uzol (vnútorná vrstva),
    • potom pre stredný uzol,
    • napokon pre vstupný uzol (vonkajšia vrstva).

  3. Keď šifrovaná správa dorazí do vstupného uzla, ten v procese dešifrovania odstráni iba svoju vrstvu (vonkajšiu) a odošle jej obsah, ktorý je zašifrovaný pomocou kľúča pre ďalší medziľahlý uzol v poradí, ďalej smerom k ďalšiemu uzlu vo vytvorenom okruhu.

  4. Nasledujúci uzol opäť odstráni svoju vrstvu a odošle zašifrovaný ďalej.

  5. Proces sa opakuje, až kým bunka nedorazí k výstupnému uzlu. Ten dešifruje poslednú vrstvu a odosiela pôvodnú požiadavku vytvorenú klientom, resp. odosielateľom na cieľový server na internete (napr. webovú stránku).

  6. Pri spätnej odpovedi sa postupuje obdobne, akurát sa jednotlivé šifrovacie kľúče aplikujú pri vytváraní vrstiev v opačnom poradí – výstupný uzol odpoveď zašifruje a pošle späť cez ten istý okruh, pričom každý uzol dešifruje iba svoju časť, až sa odpoveď dostane k pôvodnému klientovi.

Aplikácia viacvrstvového šifrovania na prenášané dáta je schematicky znázornená na nasledujúcom obrázku. Popísaný mechanizmus zaručí, že žiaden z uzlov nemá úplnú znalosť o celej komunikácii. Vstupný uzol pozná IP klienta, ale nie cieľový server. Výstupný uzol naopak pozná cieľ, ale nie klienta. Všetky medziľahlé uzly poznajú len svojich bezprostredných susedov.

onion routing
Schematické znázornenie vrstveného šifrovania v Tor sieti.

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

Použitie anonymizačných sietí prináša množstvo výhod, medzi ktoré nepochybne patrí ukrytie IP adresy používateľov, čo je tiež jeden zo základných predpokladov pre ochranu pred nežiadúcim sledovaním a profilovaním. Na druhej strane, prenos dát prostredníctvom anonymizačnej siete môže byť znateľne pomalší, nakoľko nutnosť prenosu dát cez viaceré medziľahlé uzly, kedy dochádza navyše k šifrovaniu (resp. dešifrovaniu) týchto dát, môže mať za následok výsledné spomalenie internetového pripojenia.

Medzi ďalšie nevýhody a riziká anonymizačných sietí možno zaradiť i možnosť kompromitácie výstupného uzla smerom k príjemcovi dát (exit node) a tiež skutočnosť, že použitie anonymizačných sietí nezaručí kompletnú ochranu pred všetkými formami sledovania komunikácie v počítačových sieťach, akou môže byť napr. sledovanie časových korelácií medzi dátovými prenosmi s ich následnou analýzou, a tak isto neposkytuje ochranu pred inými typmi sieťových útokov či útokov na koncové zariadenia, napr. prostredníctvom škodlivého kódu (malware) na strane užívateľa apod.

Viac informácií o koncepte anonymizačných sietí a o samotnej sieti Tor je možné nájsť v publikáciách [1], [2], [3], [4].

Použité nástroje

Tor v Kali Linux

Tor predstavuje jednoduchý softvérový nástroj umožňujúci anonymné prehliadanie internetu cez Tor sieť. Vytvorenie, resp. simuláciu vlastnej anonymizačnej siete založenej na využití služby Tor je možné uskutočniť i v prostredí systému Kali Linux, a to jej inštaláciou priamo prostredníctvom príkazového riadku (terminálu) pomocou príkazov:

sudo apt update
sudo apt install tor

Po úspešnej inštalácii nasleduje spustenie služby Tor:

sudo systemctl start tor
sudo systemctl enable tor

Overenie, či je služba aktívna, je možné pomocou príkazu:

sudo systemctl start tor
sudo systemctl enable tor

Pre overenie pripojenia na Tor sieť možno použiť napr. nižšie uvedený príkaz:

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

Uvedený príkaz spustí odoslanie jednoduchej HTTP GET požiadavky na stránku https://check.torproject.org cez vytvorenú Tor sieť.

Pozn.: TCP port 9050 je predvolený pre Tor klienta, ktorý beží na Kali Linux. Sieť Tor v tomto prípade funguje ako proxy server, resp. sprostredkovateľ komunikácie medzi klientom na vašom zariadení a dotazovaným cieľovým serverom – všetka komunikácia je teda presmerovaná práve cez Tor sieť.

Po odoslaní požiadavky server check.torproject.org analyzuje vašu IP adresu a vráti odpoveď, či komunikácia prebieha cez Tor, alebo nie. Pokiaľ je použitie siete Tor správne nastavené, na výstupe v termináli sa zobrazí hláška:

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

Tor Browser

Jedná sa o upravenú verziu webového prehliadača nakonfigurovanú pre anonymné používanie využívajúc práve sieť Tor pre zabezpečenie súkromia a anonymity jeho užívateľov v online prostredí. Tor Browser je navrhnutý tak, aby bolo s jeho použitím možné ukrytie nielen samotnej identity užívateľa, ale tiež jeho polohy a aktivity na internete.

Tor Browser realizuje šifrovanie prenášaných užívateľských dát v niekoľkých vrstvách. Dátové prenosy sú kompletne šifrované a odosielané cez Tor sieť, ktorá pozostáva z veľkého množstva (typicky tisícov) relay uzlov sprostredkujúcich prenos zabezpečenej šifrovanej komunikácie. Každý relay uzol na ceste prenosu dát smerom k príjemcovi vždy dešifruje len jednu (vonkajšiu) vrstvu, čím nikdy nezíska úplnú, kompletnú informáciu o danom prenose, vďaka čomu anonymita komunikujúcich strán zostáva zachovaná.

Wireshark

Wireshark je sieťový analyzátor, ktorý umožňuje sledovať dátové prenosy. V prípade Tor je možné zachytiť šifrované pakety a analyzovať ich štruktúru, no obsah zostáva chránený šifrovaním.

Použitie nástroja Wireshark ste si prakticky vyskúšali už v rámci niekoľkých predošlých laboratórnych úloh, takže jeho bližší popis nebude už ďalej podrobne uvádzaný.

Praktická časť

V rámci praktickej časti úlohy si vyskúšate anonymné prehliadanie prostredníctvom anonymizačného webového prehliadača Tor Browser. Následne budete analyzovať zachytený tok dát v anonymizačnej sieti pomocou nástroja Wireshark, na základe čoho získate prehľad o výhodách, nevýhodách, a rizikách spojených s použitím prostriedkov pre anonymizáciu v dnešných počítačových sieťach.

Topológia virtuálnej siete a nastavenie virtuálnych strojov

Vytvorená sieť bude pozostávať z troch virtuálnych strojov:

Sieťová konfigurácia:

Topológia
Topológia siete laboratórnej úlohy.

Zoznámenie sa s použitými nástrojmi

Prehľad základných príkazov pre jednotlivé používané nástroje

Uvedenie základných príkazov pre prácu so službou Tor na klientskom zariadení a pre inštaláciu a následné použitie prehliadača Tor Browser pre anonymné prehliadanie na internete bolo súčasťou teoretického úvodu, a z toho dôvodu ich opakovaný prehľad nie je ďalej uvádzaný. Všetky potrebné príkazy budú uvedené následne v praktickej časti v jednotlivých krokoch pre vypracovanie laboratórnej úlohy.

Použitie Wiresharku pre analýzu komunikáciu cez sieť Tor

V rámci analýzy zaznamenanej komunikácie je vhodné použiť filter:

tcp.port == 9050
Pozn.: Použitie uvedeného filtra zaručí zobrazenie TCP komunikácie na porte 9050 – čo je port využitý na strane klienta pre komunikáciu so SOCKS proxy pre jej ďalšie presmerovanie cez anonymizovanú Tor sieť.

Postup pre vypracovanie laboratórnej úlohy

A) Príprava prostredia

Spustenie virtuálnych strojov

Prihlasovacie údaje:

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

B) Príprava klienta pre využitie anonymizovanej siete

Inštalácia Tor na klientskom VM

Inštalácia Tor Browseru

Pripojenie k Tor Browser Úvodná stránka Tor Browser
Pripojenie k prehliadaču Tor Browser (vľavo), načítanie úvodnej domovskej stránky (vpravo).

Pripojenie k Tor sieti a overenie funčnosti

TorBrowser2
Úvodná stránka – potvrdenie úspešného pripojenia.

C) Sledovanie sieťovej prevádzky

Sledovanie prichádzajúcej komunikácie vo Wiresharku na VM3

Wireshark-klient
Ukážka zachytenej komunikácie: využitie Tor Browser pre anonymné prehliadanie.
Vo výstupe môžete vidieť komunikáciu klienta s uzlom s IP adresou 94.23.148.66 – jedná sa o IP adresu, ktorá pravdepodobne patrí jednému z uzlov siete Tor. Komunikácia na porte 9000 je pre túto sieť typická. Tor štandardne pre medziľahlé uzly (relays) využíva porty ako 9001, 9003 apod., avšak vzhľadom k tomu, že Tor sieť je dynamická a uzly sa môžu meniť, je bežné, že klient nadviaže spojenie s rôznymi IP adresami na rôznych portoch, ako napríklad práve 9000, 9001 alebo 9003.
Wireshark-flow-graph
Flow Graph Flow Graph záznamu komunikácie si môžete zobraziť cez voľbu Statistics > Flow Graph v záhlaví panela nástrojov hlavného okna nástroja Wireshark. komunikácie medzi Tor klientom a vzdialeným serverom.
whois
Tor klient: ukážka výstupu po prístupe na webové stránky whatismyipaddress.com (pridelenie IP adresy).

Samostatná úloha

V poslednej časti laboratórnej úlohy realizujete porovnanie šifrovanej komunikácie, resp. prenosu dátových jednotiek štandardným spôsobom (t. j. s využitím aplikačného protokolu HTTPS) a prostredníctvom Tor siete. Na základe analýzy dátovej komunikácie vo Wiresharku porovnáte rozdiely medzi uvedenými možnosťami dátového prenosu.

A) Cieľom vašej samostatnej práce bude s využitím VM2 (nového klienta) pristupovať na internet „klasicky“ (t. j. bez použitia siete Tor), kedy bude pre dátový prenos využitý protokol HTTP, resp. zabezpečený HTTPS, a následne porovnať zásadné rozdiely v anonymite, štruktúre prenosu, veľkosti dátových jednotiek a viditeľnosti dát pri použití Tor Browseru (Tor siete) a bežného prehliadača využívajúceho HTTPS pripojenie.

B) Na základe záznamu komunikácie vo Wiresharku analyzujte hlavné rozdiely v zabezpečení identity pri použití Tor vs. klasického HTTPS pripojenia a porovnajte výhody, resp. nevýhody oboch prístupov. Taktiež analyzujte rozdiely v IP adresách, ktoré cieľový server pridelí klientom na VM1 a VM2 (môžete využiť nástroj whois).

C) Nakoniec uskutočnite meranie prenosovej rýchlosti a latencie oboch klientov. Doporučené je využiť stránku: https://www.rychlost.cz . Sledujte parametre rýchlosti sťahovania/odosielania a latenciu (dobu odozvy – ping), následne namerané výsledky oboch klientov vzájomne porovnajte.

Kontrolné otázky

Poznámka: Niektoré otázky môžu mať viac než jednu správnu odpoveď. Pre správne zodpovedanie otázky je nutné označiť všetky správne odpovede.

Záver

V tejto laboratórnej úlohe ste sa oboznámili so základnými princípmi fungovania anonymizačných sietí a ich významom pre ochranu súkromia a zachovanie anonymity používateľov pri komunikácii na internete.

Prakticky ste si vyskúšali inštaláciu Tor klienta v systéme Kali Linux a tiež použitie prehliadača Tor Browser špeciálne prispôsobeného pre anonymné prehliadanie, nadviazanie spojenia cez Tor sieť, ako aj prehliadanie internetu anonymným spôsobom. Súčasťou úlohy bola aj analýza zachytenej komunikácie pomocou nástroja Wireshark, kde ste mohli sledovať handshake fázu pre vytvorenie spojenia so sieťou Tor a následné šifrované dátové prenosy. Súčasťou samostatnej úlohy bolo taktiež porovnanie priebehu šifrovanej komunikácie prostredníctvom protokolu HTTPS a komunikácie odosielanej práve cez anonymizačnú sieť Tor a sledovanie významných rozdielov porovnaním oboch uvedených prístupov. V rámci vzájomného porovnania ste taktiež uskutočnili meranie prenosových parametrov, v priebehu ktorého ste mohli pozorovať dlhšiu dobu odozvy a nižšie prenosové rýchlosti v prípade použitia Tor.