Sem vložte zadání Vaší práce.
České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů
Bakalářská práce
Anonymita na internetu Jan Jůna
Vedoucí práce: Ing. Jiří Smítka
18. května 2012
Poděkování Tímto bych chtěl poděkovat všem, kteří mi pomáhali s touto prací, jmenovitě panu Ing. Jiří Smítkovi, rodině a přátelům, kteří mi dodávali potřebnou motivaci k dokončení této práce.
Prohlášení Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů, zejména skutečnost, že České vysoké učení technické v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle § 60 odst. 1 autorského zákona.
V Praze dne 18. května 2012
..................... 7
České vysoké učení technické v Praze Fakulta informačních technologií c 2012 Jan Jůna. Všechna práva vyhrazena.
Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí, je nezbytný souhlas autora.
Odkaz na tuto práci Jan Jůna. Anonymita na internetu: Bakalářská práce. Praha: ČVUT v Praze, Fakulta informačních technologií, 2012.
Abstract This bachelor thesis is dedicated to the anonymity on the internet and other related topics. It describes legal aspects of anonymity, tools, which can be used to hide identity on the internet and methods for breaking anonymity and backtracing anonymous users. Here is list of anonymization tool, their description, potential and structure with emphasis on anonymous networks Tor and I2P. At the end, there is a comparsion between all services according to performance, price and security. Keywords Anonymity, Internet, Tor, I2P, Proxy, VPN, JonDonym, Hidden identity
Abstrakt Tato bakalářská práce se zabývá anonymitou na internetu a s tím souvisejícími tématy, jako jsou právní aspekty anonymního světa, prostředky, kterými lze identitu na internetu skrýt, ale také možnosti, jak tyto nástroje prolomit a vystopovat tak anonymní uživatele. Je zde uveden seznam anonymizačních prostředků, jejich popis, možnosti a struktura. V celé práci je pak kladen důraz především na programy Tor a I2P. Na závěr je uvedeno srovnání všech popisovaných služeb z pohledu na výkon, cenu a spolehlivost. Klíčová slova Anonymita, Internet, Tor, I2P, Proxy, VPN, JonDonym, Skrytá identita
9
Obsah Úvod
17
1 Internet v kostce 1.1 Stavební kameny internetu . . . . . 1.2 Uživatelské informace na internetu 1.3 Co je to internetová anonymita . . 1.4 Fingerprinting . . . . . . . . . . . .
19 19 19 20 21
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
2 Aspekty anonymity 23 2.1 Důvody k anonymitě . . . . . . . . . . . . . . . . . . . . . . . . 23 2.2 Právní stránka anonymity . . . . . . . . . . . . . . . . . . . . . 24 2.3 Historie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3 Proxy 3.1 Příklady použití . . . . 3.2 Webové Proxy . . . . . 3.3 HTTP a HTTPS Proxy 3.4 SOCKS Proxy . . . . . 3.5 Útoky . . . . . . . . . .
. . . . .
4 VPN systémy 4.1 Příklady využití VPN . . 4.2 VPN anonymizační služby 4.3 Bezpečnost . . . . . . . . 4.4 Výhody a nevýhody . . . 5 Anonymní sítě 5.1 Historie . . . . . . . . . 5.2 Tor . . . . . . . . . . . . 5.3 I2P . . . . . . . . . . . . 5.4 JAP . . . . . . . . . . . 5.5 Útoky na anonymní sítě
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
6 Detekce anonymizéru
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
25 25 26 27 28 29
. . . .
33 33 33 34 34
. . . . .
35 35 36 50 54 55 59
11
6.1 6.2 6.3 6.4 6.5 6.6
Hlavičky komunikace Timezone test . . . . Port scan . . . . . . Záznamy v rDNS . . WIMIA . . . . . . . Blacklist . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
59 60 60 60 60 60
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
61 61 63 63 63
8 Ostatní anonymizační nástroje 8.1 Remailery . . . . . . . . . . . 8.2 Anonymní emailové schránky 8.3 Anonymní měna . . . . . . .
a . . .
koncepty 65 . . . . . . . . . . . . . . . . . . 65 . . . . . . . . . . . . . . . . . . 65 . . . . . . . . . . . . . . . . . . 65
7 Použití anonymizéru 7.1 Proxy . . . . . . . 7.2 VPN . . . . . . . . 7.3 Tor . . . . . . . . . 7.4 I2P . . . . . . . . .
. . . .
9 Testování bezpečnosti 67 9.1 Webová proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 9.2 Java applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 9.3 PDF exploit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 10 Srovnání prostředků 69 10.1 Kvalita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 10.2 Výkon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 10.3 Cena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Závěr
71
Literatura
73
A Seznam použitých zkratek
75
B Obsah přiloženého CD
77
12
Seznam obrázků 1.1 1.2
Informace předávané SMTP protokolem . . . . . . . . . . . . . . . Testu fingerprintu prohlížeče . . . . . . . . . . . . . . . . . . . . .
20 21
3.1 3.2 3.3 3.4
Příklad umístění proxy . . . . . . . . . Příklad webové proxy . . . . . . . . . Příklad komunikace s HTTP proxy. . DNS leak webového prohlížeče Opera
5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16
Logo projektu Tor . . . . . . . . . . . . . . . Tor síť . . . . . . . . . . . . . . . . . . . . . . Kontrolní blok Toru . . . . . . . . . . . . . . Datový blok Toru . . . . . . . . . . . . . . . . Sestavení okruhu v síti Tor . . . . . . . . . . Graf vývoje počtu OR v projektu Tor . . . . Graf rozšiřování šířky pásma Toru v závislosti Graf počtu uživatelů Toru v roce 2011 . . . . Tor Vidalia . . . . . . . . . . . . . . . . . . . Opera a proxychains . . . . . . . . . . . . . . Logo projektu i2p . . . . . . . . . . . . . . . I2P tunely. . . . . . . . . . . . . . . . . . . . I2P šifrování dat. . . . . . . . . . . . . . . . . I2P nastavení. . . . . . . . . . . . . . . . . . . Logo projektu JAP . . . . . . . . . . . . . . . JAP struktura. . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
25 26 28 31
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . na čase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
36 39 42 42 44 45 46 46 47 49 50 52 53 53 54 55
7.1 7.2 7.3
Nastavení použití proxy v programu Mozzila Firefox. . . . . . . . . Nastavení použití proxy v programu XChat. . . . . . . . . . . . . . I2P vstupní brány a vytvořené tunely. . . . . . . . . . . . . . . . .
62 62 64
9.1 9.2
Útok na webovou proxy pomocí JavaScriptu . . . . . . . . . . . . . Navázání spojení po spuštění infikovaného PDF . . . . . . . . . . .
68 68
13
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
Seznam tabulek 6.1
Hlavičky nastavované proxy serverem . . . . . . . . . . . . . . . . .
59
10.1 Srovnání rychlosti downloadu u jednotlivých anonymizérů . . . . .
70
15
Úvod Internet, fenomén dnešní doby, který se stal nedílnou součástí našeho každodenního života. Ať už s jeho pomocí komunikujeme, spravujeme finance nebo se jen bavíme, vždy o sobě dáváme vědět nějaké informace. Mohou to být naše záliby, fotografie z dovolené, ale třeba i postoje k okolnímu světu. Zároveň ne vždy chceme, aby o nás tyto informace každý věděl. V tu chvíli přichází na scénu internetová anonymita se svou mocí skrýt pravou identitu uživatelů. S její pomocí mohou lidé beztrestně vyjadřovat své názory, beze strachu před odvetou upozornit na problémy v jejich okolí nebo být skryti před výzkumy prováděnými za jejich zády. Anonymita je používána k více účelům, avšak ne vždy s dobrým záměrem. Slouží také jako prostředek k zahlazení stop vedoucích k dopadení lidí, kteří na internetu páchají nelegální činnost. Stejně tak, s pocitem nevystopovatelnosti, mají lidé sklon k jednání bez morálních zábran. Nezávisle na záměru, vždy zde bude snaha o její omezení nebo úplné prolomení. Pomocí sofistikovaných metod dochází k útokům na anonymizační služby za účelem odhalit anonymně komunikující uživatele. Cílem této bakalářské práce je popsat nejčastější způsoby, pomocí kterých lze na internetu dosáhnout anonymity, zhodnotit je z pohledu bezpečnosti, spolehlivosti, výkonu a popsat známé útoky na tyto služby. Tuto práci jsem si vybral, protože se anonymitou na internetu již nějaký čas zabývám. Zároveň se jedná o téma, které se v současnosti velmi často objevuje v médiích a tím i prohlubuje můj zájem o bližší prozkoumání.
17
Kapitola
Internet v kostce 1.1
Stavební kameny internetu
Internet, celosvětová síť vzájemně propojených počítačů, existuje již řadu let. Od prvních počátků je založen na vzájemné komunikaci dvou a více počítačů. Pro realizaci takové komunikace je ale třeba mít možnost adresace jednotlivých uzlů v síti. Proto se každému počítači přiřadilo unikátní číslo (IP adresa), pomocí kterého lze identifikovat jednotlivé prvky v síti. IP adresa, ať už jde o veřejnou adresu přiřazenou vždy konkrétní osobě nebo IP adresu sdílenou mezi více uživateli1 , je přidělována poskytovatelem internetového připojení (ISP). Ten pak má přehled o fyzických osobách, jim svěřených IP adresách a jejich aktivitě na internetu.
1.2
Uživatelské informace na internetu
Ve chvíli, kdy se počítač připojí přes internet k jinému počítači, předává mu o sobě nějaké informace. Obsáhlost těchto informací závisí do jisté míry na použitém protokolu, pomocí kterého spolu počítače komunikují. Téměř vždy mu však předává svou IP adresu. Z té pak lze snadno zjistit ISP, stát nebo časové pásmo, z kterého se přistupuje. Předávají se zde i další doprovodné informace. V případě HTTP protokolu to jsou: předchozí URL, z které se na stránku přistoupilo, preferovaný jazyk, typ webového prohlížeče, použitý operační systém atd. Mohou zde být také detailní informace, jako je rozlišení a barevná hloubka obrazovky, údaje o zvukové kartě nebo třeba i vlastnosti CPU. Dalším příkladem může být protokol pro emailovou komunikaci SMTP. Ve formě hlaviček se zde předávají informace, jako je použitý emailový klient, 1 Pomocí zařízení, jako je NAT, dochází k připojení více uživatelů do internetu, pod jednou IP adresou.
19
1
1. Internet v kostce datum odeslání, země nebo IP adresa, z které se zpráva odeslala, a podobně. Příklad hlaviček posílaných protokolem SMTP je na obrázku 1.1 níže.
Obrázek 1.1: Hlavičky použité při SMTP komunikaci.
Jiné protokoly mohou poskytovat o uživateli jiné informace, avšak hlavní je vždy IP adresa. Tou se dá uživatel vystopovat až k němu samému nebo k jeho ISP. Poskytovatel internetového připojení pak má záznamy, kdo, kdy a s jakou adresou přistupoval do internetu. S jeho pomocí je tedy možné dopátrat se ke konkrétní fyzické osobě jen pomocí IP adresy.
1.3
Co je to internetová anonymita
Pokud se o uživateli dá zjistit tolik informací, co to tedy je internetová anonymita a jak jí lze dosáhnout? Skrytí identity na internetu znamená, že nejde vystopovat původce dat neboli jde o zastření všech informací, které vedou zpět k anonymnímu uživateli. K dosáhnutí takového stavu existují nástroje, s jejichž pomocí druhá strana v komunikaci, ale i pozorovatelé na síti, není schopna zjistit pravého autora komunikace. Být na internetu anonymní ovšem neznamená jen použití takových nástrojů. Jde spíše o způsob chování. Tím se myslí, že i přes použití nákladných anonymizačních prostředků na skrytí identity, je anonymita prolomena v případě, že uživatel používá ať už vědomě nebo něvědomě své pravé údaje, jako je například jméno nebo email. Spolu s anonymitou je někdy spojován výraz pseudonymita. Jedná se o podmnožinu anonymity, kdy pseudonymní člověk vystupuje na veřejnosti pod nějakou přezdívkou. Rozdílem od čisté anonymity je pak to, že dílo nebo akce provedená pseudonymně je někomu adresována. V některých zemích je anonymita považována jako jedno ze základních lidských práv, právo na soukromí a svobodu volného projevu. Naopak jinde je internetová anonymita omezena. Některé anonymizační nástroje jsou zakázány a lidé, kteří je vlastní, jsou zatčeni a obviněni z šíření dětské pornografie. 20
1.4. Fingerprinting
1.4
Fingerprinting
S anonymitou na internetu velmi blízce souvisí i pojem zvaný fingerprinting. V reálném světě se váže k otisku prstu. Analogicky, na internetu jde o metodu nalezení identifikačních znaků jednotlivých uživatelů. Z prostředí internetových stránek to pak může znamenat, že každý webový prohlížeč zanechává při navštívení stránky svůj otisk. Při opětovném přístupu na stejnou stránku je pak detekován stejný otisk, a tím pádem je zde i možnost, že se jedná o stejného uživatele. Spolehlivost takové identifikace pak záleží na míře a hodnotě identifikujících informací, které se nachází v informacích předávaných prohlížečem. Takovými informacemi v případě internetového prohlížeče mohou být: • Jméno webového prohlížeče (user-agent). • Hlavička HTTP Accept. • Informace o čase a zóně z které se přistupuje. • Seznam podporovaných fontů. • Seznam nainstalovaných pluginů. • Rozlišení a bitová hloubka obrazovky. Míru jedinečnosti prohlížeče si můžeme nechat změřit například na adrese https://panopticlick.eff.org/. Jedná se o test (viz obrázek 1.2) vytvořený společností Electronic Frontier Foundation, který zkoumá jedinečnost prohlížečů.
Obrázek 1.2: Výsledek testu jedinečnosti prohlížeče na adrese https:// panopticlick.eff.org/. Obrázek zobrazuje zjištěné informace o použitém prohlížeči, jejich identifikační hodnotu a počet prohlížečů, v kterých je ten použitý unikátní.(15)
21
Kapitola
Aspekty anonymity 2.1
Důvody k anonymitě
V totalitních zemích dochází k hromadnému zatýkání lidí, kteří veřejně projevují svůj názor jdoucí proti ustanoveným podmínkám. A právě zde internetová anonymita pomáhá lidem dosáhnout svobody slova beze strachu před následným stíháním. Jiným příkladem může být tzv. whistleblowing, jedná se o činnost, kdy někdo upozorní patřičné orgány na nelegální nebo neetické jednání (většinou v zaměstnání), které se děje se svolením nadřízeného. Skrytí identity takového člověka pak pomáhá potlačit strach před následným pronásledováním nebo odplatou, které by mohly nastat, kdyby whistleblower vystoupil veřejně (12). Dalším příkladem použití je zamezení tzv. eavesdroppingu, což je proces odposlouchávání klientů. Výhody anonymity v takovém případě využívá především armáda a novináři operující v cizích zemích nebo lidé žijící v zemi ovládané cenzurou a sledováním uživatelů. Pomocí nejrůznějších anonymizačních nástrojů lze také obejít filtry sloužící k cenzuře internetu. Přeposíláním dat přes prostředníka se filtr nedozví pravou adresu, ke které klient přistupuje, a nemůže ji tedy blokovat. Podle některých výzkumů bylo také zjištěno, že lidé, vystupující anonymně v nejrůznějších anketách, mají tendenci odpovídat pravdivěji, než když by byla jejich totožnost známa (16). V současnosti se také provádí velké množství výzkumů zaměřených právě na uživatele internetu. Za jejich zády dochází ke sledování jejich oblíbených aktivit, produktů a zvyklostí. Tyto výzkumy jsou pak vysoce ceněným zbožím, za které se platí nemalé peníze. I v tomto případě může anonymita přispět a to sice tím, že nasbíraná data nebude možné přiřadit ke konkrétnímu typu uživatele. Tím pádem nebude možné použít výzkumy na cílení reklamy, protože jednoduše nebude z výzkumů známo, na koho se tato reklama má zaměřit. Na druhou stranu, skrytí identity je využíváno i při šíření dětské pornografie nebo zahlazování stop po nelegální činnosti. Takoví lidé pak mohou páchat 23
2
2. Aspekty anonymity trestnou činnost beze strachu před dopadením. Anonymně vystupující lidé mají, pod vidinou nevystopovatelnosti, také sklon k porušování některých morálních a právních zásad.
2.2
Právní stránka anonymity
Ačkoli je internet celosvětová síť, jeho segmenty jsou závislé na legislativě území, na kterém se nachází. V některých zemích je dokonce zakázáno vlastnit anonymizační nástroje pod trestem odnětí svobody. Stejně tak na některých územích mají ISP povinnost zaznamenávat a analyzovat síťový provoz pro odhalení nelegální aktivity. Pokud může anonymita sloužit k dobrým ale i špatným účelům, jak jsou právně odpovědní poskytovatelé anonymizačních prostředků, přes které byla provedena nezákonná činnost? V tomto případě zde vystupuje pojem „Plausible deniability“, v překladu hodnověrné popření. Jde o stav, kdy obvinění lze odmítnout z důvodu nedostatečných důkazů. Majitel anonymizačního proxy serveru tedy nemůže být obviněn z toho, že přes jeho službu došlo k napadení cizí aplikace, protože neexistuje důkaz, že by tento útok provedl sám majitel.
2.3
Historie
Anonymita přitom není něco, co by vzniklo až s příchodem internetu. Z historie se dochovaly spousty odkazů o anonymně nebo pseudonymně vystupujících jedincích ve společnosti. Příkladem může být třeba William Shakespeare, jehož pravá identita dodnes a zřejmě už navždy nebude známa. Používali ji však i lidé, kteří o sobě chtěli zakrýt nějaké informace. Byly to například ženy, které pseudonymně vystupovaly pod mužskými přezdívkami k dosažení lepších podmínek. Stejně tak i dnes je používána v mnoha případech, například při zpovědi v kostelech nebo při sdělování výsledků testů a zkoušek.(19)
24
Kapitola
Proxy Jedním z nejjednodušších způsobů pro skrytí identity na internetu jsou tzv. Proxy servery. V zásadě jde o hardwarovou nebo softwarovou službu, která se stane prostředníkem v komunikaci mezi zdrojovým a cílovým počítačem. Klientem v komunikaci s cílovým počítačem se tedy stává sama Proxy a adresa původního počítače je skryta. Proxy pak předává odpovědi z cílového počítače zpět původnímu klientovi, který komunikaci započal. Obrázek 3.1 znázorňuje postavení proxy serveru při použití jako anonymizační služba.
Obrázek 3.1: Příklad umístění proxy serveru.
3.1
Příklady použití
Proxy v internetovém světě mají ale i jiný význam. Původním důvodem jejího vzniku bylo oddělovat vnitřní - lokální síť od veřejné s možností připojení více počítačů pod jednu IP adresu vnější sítě. Další možné způsoby použití pak jsou: • Umožnění přístupu více uživatelů k internetu, kdy se proxy stává prostředníkem mezi LAN a samotným internetem. 25
3
3. Proxy • Urychlení přístupu k datům. Proxy si pomocí cacheování2 drží v paměti často požadované infromace a v případě požadavku na tato data, vrátí odpověď ze své interní paměti, namísto dotazování se vzdáleného serveru. • Aplikování firemní bezpečnostní politiky, filtrace protékajících dat a ochrana před výnosem citlivých informací. • Obejití bezpečnostních pravidel pro dosažení cenzurovaného obsahu. • Logování internetového provozu, tvorba statistik ve využívání sítě. • Skenování protékajících dat na přítomnost malware a jiného nebezpečného obsahu. • V neposlední řadě také skrytí IP adresy uživatelů využívajících proxy. S postupem času bylo vytvořeno několik typů proxy serverů, které umožňují anonymizaci na internetu. Od nejjednodušších webových služeb, přes HTTP proxy až po, na protokolu nezávislých, SOCKS proxy.
3.2
Webové Proxy
Nejjednodušším případem proxy anonymizérů jsou služby poskytované jako webové proxy (obrázek 3.2).
Obrázek 3.2: Příklad webové proxy.(6) Jedná se o webovou aplikaci, které se v parametru předá URL adresa k zobrazení. Webová proxy poté sama stáhne požadovanou stránku a přepošle 2
26
Ukládání dat v mezipaměti.
3.3. HTTP a HTTPS Proxy ji zpět původnímu klientovi. Na serveru, odkud byla tato stránka stažena, je pak zalogována IP adresa proxy serveru, původce dotazu tak zůstává skrytý.
3.2.1
Programová realizace
Jelikož se jedná o webovou stránku, může být k realizaci použit scriptovací jazyk, jako je Python nebo PHP. Příkladem aplikací, které jsou napsány v těchto jazycích a poskytují proxy služby, jsou pak Python Proxy nebo Little PHP Proxy.
3.2.2
Bezpečnostní funkce
Před předáním stránky zpět uživateli může proxy odstranit potencionálně škodlivé části kódu, které by mohly vést k prozrazení pravé identity uživatele. Za škodlivý kód je považován JavaScript, Java Applety, Flash a další programovací jazyky interpretované na straně uživatele, které by mohly pomocí svého vlastního spojení se serverem obejít použití proxy a tím odhalit pravou IP adresu. Další z bezpečnostních opatření je náhrada všech odkazů na stažené stránce za vlastní adresu proxy serveru s původní adresou předanou v parametru. Tím se zajistí, že i ostatní části stránky, jako jsou obrázky nebo styly, budou nahrány s použitím proxy.
3.2.3
Výhody a nevýhody
Jelikož je celá služba realizovaná pomocí webového rozhraní, pro její použití stačí pouze internetový prohlížeč, není potřeba žádného dodatečného software. Nevýhodou je pak omezenost pouze na HTTP nebo HTTPS protokol. Zároveň, pokud uživatel komunikuje přes prostředníka, znamená to, že všechna data jsou zde viditelná v čisté formě, je tedy otázkou důvěry, zda uživatel věří poskytovateli této služby, že nebude odposlouchávat protékající data. Problémem může být i logování přístupů na proxy serveru. Protože k této službě uživatel přistupuje přímo pomocí svého připojení, proxy zná jeho pravou IP adresu. Pokud jsou informace o přístupech ukládány, mohou být později použity k odhalení skutečné identity lidí využívajících tuto službu.
3.3
HTTP a HTTPS Proxy
HTTP proxy slouží, stejně jak tomu bylo u webové proxy, k propojení dvou počítačů přes mezičlánek, kterým se stává proxy. V tomto případě však klient komunikuje pomocí HTTP nebo HTTPS protokolu. Uživatel se připojí k proxy serveru, předá adresu požadované stránky a pomocí parametru HOST3 také 3
Hlavička HTTP protokolu obsahující URL adresu serveru, na který se má dotaz odeslat.
27
3. Proxy adresu cílového serveru. Proxy server se pak sám dotáže cílového serveru a obdrženou odpověď předá zpět uživateli. Komunikace s proxy serverem pak vypadá například tak jako je uvedeno na obrázku 3.3 níže.
Obrázek 3.3: Příklad komunikace s HTTP proxy.
Pro zamezení odposlechu na lince mezi uživatelem a proxy serverem je možné využít HTTPS protokol, který zajistí šifrované SSL/TLS spojení. Výhodou této služby je i možnost tunelovat více protokolů, než jen samotné HTTP. Podporovány jsou například i FTP nebo IRC. Dalším pozitivem je, že většina internetových prohlížečů má v sobě již implementovanou podporu pro HTTP proxy, pro její použití pak stačí nastavit pouze adresu a port, na kterém proxy naslouchá. Nevýhodou pak může být opět fakt, že proxy zná pravou identitu svých uživatelů. Vedení jakýchkoli záznamů pak může znamenat velké bezpečnostní riziko jejích uživatelů.
3.4
SOCKS Proxy
Služba standardně naslouchající na portu 1080 slouží opět k přeposílání dat mezi klientem a cílovým serverem. Narozdíl od předchozích dvou, SOCKS proxy upravuje přímo hlavičky IP paketů, kde zaměňuje adresu odesílatele za svou vlastní. V současné době jsou používána především SOCKS verze 4 a verze 5. S verzí 5 došlo k přidání autentizace uživatelů, podpory UDP a IPv6 adresace. Pro širokou škálu svých možností byla také použita jako rozhraní některých komplexnějších anonymizačních nástrojů, jako jsou Tor nebo I2P. 28
3.5. Útoky
3.4.1
Výhody a nevýhody SOCKS
Významným kladem je nezávislost na použitém protokolu. Pomocí SOCKS je možné protunelovat jakékoliv TCP nebo UDP spojení. Nevýhodou je pak vlastnost některých programů, které si při překladu doménového jména nejprve samy dotazem na DNS server zjistí IP adresu cílového počítače, a až poté komunikují anonymně přes proxy. Pro pozorovatele to pak znamená, že může vidět adresy, s kterými uživatel komunikoval.
3.5
Útoky
V některých případech lze odhalit uživatele, který se skrývá pomocí proxy. Ať už pomocí úniku citlivých dat přímo v komunikaci, nebo aktivních útoků, vždy je zde velká závislost na použitém protokolu. Pro HTTP protokol to mohou být například útoky pomocí různých programovacích jazyků intepretovaných na straně uživatele. Obecným schématem útoku pak je sestavit přímé spojení s cílovým serverem, které dokáže obejít proxy a odhalit tak pravou IP adresu.
3.5.1
HTTPS
V případě webových prohlížečů a špatného nastavení použití proxy jen pro protokol HTTP je při přístupu přes HTTPS připojen klient přímo k cílovému serveru bez použití proxy. Test takového nastavení je pak možné provést pomocí tohoto scriptu:
Uživatel načte stránku s již připraveným iframe, který dodatečně zavolá HTTPS protokolem další stránku. Té v parametru předá IP adresu klienta použitou při komunikaci. Stránka poté zkontroluje, zdali jeho IP adresa načtená protokolem HTTP je shodná s IP adresou načtenou pomocí HTTPS. Možnou modifikací tohoto testu může být načtení obrázků nebo stylů namísto použití iframe. Pro ochranu před tímto útokem je třeba správně nastavit použití proxy serveru i pro HTTPS komunikaci nebo využít SOCKS proxy.
3.5.2
JavaScript
Některé webové proxy, při předávání odpovědi ze serveru zpět uživateli, nahrazují veškeré odkazy za jejich ekvivalent s použitím proxy. Stahování dodatečných dat, jako jsou obrázky nebo styly, se pak provádí opět pomocí proxy serveru. V případě, že z výsledné stránky není odstraněn JavaScript, dá se s jeho pomocí vytvořit přímý tunel s cílovým serverem. Script pro vytvoření takového spojení může vypadat například takto: 29
3. Proxy < s c r i p t type =" t e x t / j a v a s c r i p t "> img = document . c r e a t e E l e m e n t ( " img " ) ; img . s r c = " h t t p : / / " + " t e s t s e r v e r " ; document . body . appendChild ( img ) ; s c r i p t > Při načtení stránky dojde k vytvoření nového DOM elementu. Tím může být například obrázek nebo iframe. Pomocí JavaScriptu se mu přiřadí adresa testovacího serveru, kde dojde opět ke kontrole na shodnost IP adres. Tato metoda odhalení IP adresy je neúčinná, pokud proxy z předávaných dat odstraňuje JavaScriptový kód nebo pokud má uživatel vypnuté jeho zpracování. V současné době je však velké množství webových aplikací životně závislých právě na JavaScriptu a jeho vypnutím tak dojde i k jejich znefunkčnění.
3.5.3
Flash
Dalším způsobem pro odhalení pravé IP adresy je podle (17) vytvoření socketu v ActionScript pluginu AdobeFlash. Nekteré pluginy webových prohlížečů totiž nesdílí stejná nastavení proxy serverů jako samotný prohlížeč. V případě poslání požadavku na server za pomoci takového pluginu pak může dojít k úplnému odhalení identity uživatele. var xmlSocket : XMLSocket = new XMLSocket ( ) ; xmlSocket . c o n n e c t ( " t e s t s e r v e r " , 8 0 ) ;
3.5.4
DNS leak
Velké množství programů používajících SOCKS proxy si nejprve pomocí DNS dotazu zjistí IP adresu počítače, ke kterému poté přes proxy budou přistupovat. To ovšem znamená, že na DNS server přistupují ze své pravé IP adresy. Pokud má administrátor pod správou i DNS server, může tak pomocí logování DNS dotazů odhalit pravou identitu uživatele. Na obrázku 3.4 je vyobrazena komunikace mezi prohlížečem Opera a SOCKS proxy. Před započetím vlastní komunikace si prohlížeč nejprve sám zjistil IP adresu cílového serveru, čímž odhalil klientovu IP adresu. Protože anonymizační programy, jako jsou Tor nebo I2P, používají k snadné použitelnosti SOCKS rozhraní, dá se tento útok použít i v jejich případě.
30
3.5. Útoky
Obrázek 3.4: DNS leak webového prohlížeče Opera
31
Kapitola
VPN systémy Virtuální privátní síť (Virtual Private Network - VPN) je prostředek k propojení několika počítačů umístěných v různých segmentech sítě přes veřejný nezabezpečený kanál. Pomocí VPN tak mohou počítače komunikovat, jako by byly v jedné privátní síti. Veškerá komunikace mezi klienty je šifrována, nehrozí tedy možnost odposlechu. Tato služba se však dá využít i k propojení počítače s bránou, přes kterou bude směrován všechen datový provoz. Výsledkem tak je, podobně jak tomu bylo u proxy serveru, že uživatel na internetu vystupuje s IP adresou VPN brány.
4.1
Příklady využití VPN
Primárním úkolem této služby přitom není poskytování anonymity jejích uživatelů. Hlavním cílem VPN sítí bylo umožnit a zabezpečit připojení vzdálených počítačů do firemní sítě. Další možné použití VPN pak jsou: • Propojení dvou a více počítačů nebo privátních sítí do jedné společné. • Protunelování zašifrovaných dat skrz firewall pro obejití filtrů a cenzury. • Zajištění bezpečného provozu mezi koncovými body. • Změna osobní adresy za IP adresu brány VPN.
4.2
VPN anonymizační služby
V současné době existuje mnoho anonymizačních VPN. Obecně se jedná o sérii serverů umístěných v různých lokacích, s nimiž lze navázat VPN spojení. Uživatel si vybere server, který má fungovat jako výstupní brána do internetu a naváže s ním spojení pomocí podporovaného VPN protokolu. Od této chvíle bude všechna komunikace probíhat přes vybraný server. Zároveň uživatel na 33
4
4. VPN systémy internetu vystupuje pod IP adresou brány. V jednu chvíli může bránu využívat více uživatelů, všichni tito uživatelé pak vystupují pod stejnou IP adresou.
4.3
Bezpečnost
Bezpečnost různých typů VPN služeb je posuzována z pohledu délky klíčů a šifrovacích algoritmů použitých při komunikaci a pak také vlastní programové realizace nástrojů. V současné době jsou za bezpečné považovány služby IPsec a OpenVPN. Naopak zranitelným se ukázal být protokol PPTP, který má i přes četné nedostatky velkou podporu v systémech Microsoft Windows.
4.4
Výhody a nevýhody
Největší nevýhodou anonymizačních VPN je proudění dat opět pouze přes jeden server. Ten vlastní poskytovatel anonymizéru a je zde tedy nutná důvěra, že na výstupní bráně nedochází k logování jakýchkoli informací, které by později mohly vést k prolomení anonymity uživatelů. Stejně tak, jak tomu bylo u proxy serverů, i VPN trpí chybou DNS leak. Pomocí DNS dotazu odeslaného mimo VPN spojení odhalí svou pravou identitu spolu s navštívenými adresami jak pozorovatelům na síti, tak i majitelům dotazovaných DNS serverů. Vlastnost směrování veškerého síťového provozu na VPN nemusí být vždy nevýhodou. Lze ji tím pádem využít pro jakoukoli aplikaci bez nutnosti nastavování. O směrování se starají nižší vrstvy síťové komunikace. Výhodou pak je nízká latence, která je především u placených VPN služeb téměř srovnatelná s latencí dosaženou přímým přístupem bez použití anonymizéru.
34
Kapitola
Anonymní sítě Jedním z komplexnějších anonymizačních prostředků je onion routing. Jedná se o síť vzájemně spolupracujících routerů, které se stávají prostředníkem v komunikaci klienta a serveru.
5.1
Historie
První počátky podobné struktury, jako je onion routing, jsou známy již v roce 1981, kdy D. Chaum uveřejnil popis mixovací sítě, jež umožňuje anonymní emailovou komunikaci. Taková síť se skládala z velkého počtu uzlů (mixů), sloužících jako jednoduché remailery(1). Každý uzel pak mohl provádět různé bezpečnostní operace, například: • nashromáždění několika zpráv • přeuspořádání zpráv • vytvoření falešných zpráv • přešifrování zpráv • pozdržení některých zpráv Těmito bezpečnostními prvky se ztížila analýza průchozích dat a některé další pasivní i aktivní útoky na tuto službu. Kvůli těmto opatřením však vzrostla také latence takové sítě a pro použití u real time aplikací byl tento návrh nevhodný.
5.1.1
Onion routing
V roce 1995 pak dochází ke spuštění výzkumu financovaným Office of Naval Research v USA (ONR) a krátce poté vzniká koncept první generace onion 35
5
5. Anonymní sítě routingu. Jednalo se o popis struktury sítě skládající se z mnoha uzlů komunikujících pomocí asymetrické kryptografie. Každý uzel rozšifruje data pomocí svého privátního klíče (PK) a podle hlavičky získané z rozšifrované zprávy přepošle data dalšímu routeru v řadě. Každý router tak zná jen router před a za sebou. Router pak může k posílaným datům přidávat šum nebo prodlevu v přeposílání, čímž se ztížil útok pomocí časové analýzy protékajících dat. Taková implementace však měla problém s propustností. Kvůli použitým bezpečnostním opatřením měla vyšší latency, než bylo únosné pro služby jako jsou HTTP nebo IRC. Podle tohoto konceptu začaly vznikat první implementace takové sítě. Příkladem byla služba Freedome Network. Jednalo se o síť implementující oninon routing s pár rozdíly od původního konceptu (místo TCP protokolu byla implementovaná pomocí UDP a jednalo se o komerční síť). Tuto síť se však nepodařilo rozšířit tak, aby její použití pokrylo náklady, proto byl projekt v roce 2001 ukončen.(3)
5.1.2
Onion routing verze 2
V té době vznikl koncept nové, druhé, generace onion routingu rozšiřující původní návrh o bezpečnostní prvky a odlehčení některých vlastností komunikace. Nová struktura byla implementována ve službách, jako je například The Onion Router (Tor) nebo v trochu upravené podobě v projektu Invisible Internet project (I2P).
5.2
Tor
Jednou z nejznámějších implementací onion routingu se stal projekt nazvaný The Onion Router (Tor). Jeho vývoj začal v roce 2002, kdy byl spolufinancovaný armádou Spojených států amerických, poté ho převzala skupina The Free Heaven. Nyní je provozovaný dobrovolníky po celém světě. Program byl vydán jako open source, takže kdokoliv může přispět při vývoji, testování nebo odhalování chyb. Logo projektu Tor je uvedeno na obrázku 5.1.
Obrázek 5.1: Logo projektu Tor(10) Hlavním cílem Toru není šifrování protékajících dat, ale zajištění anonymity pro jeho uživatele. Útočník tak může nanejvýš vědět, že uživatel používá Tor, 36
5.2. Tor nikoliv však, jaká data přes něj posílá a nebo naopak, může znát, jaká data přes Tor protékají, ale už ne, kdo je původcem těchto dat. S možností volného napojení routeru do sítě totiž přichází problém. Pokud může kdokoliv připojit do sítě svůj router, může také provádět analýzu protékajících dat. Pro zachování anonymity v takovém případě pak byly stanoveny základní požadavky na vlastnosti takové sítě.
5.2.1
Vlastnosti Toru
Základní vlastností je poskytnutí dostatečné úrovně anonymity tak, aby nebyla příliš omezena použitelnost. Zjednodušeně to znamená vytvořit takový systém, jehož použití nebude omezené jen na některé typy aplikací a jeho používání nebude mít za následek neúnosné zvýšení latence. Dalšími požadavky byla možnost stanovit práva pro výstupní router, který směřuje data z Tor sítě zpátky do internetu. Jelikož je takový router provozovaný dobrovolníky, měl by umožňovat nastavení výstupní politiky tak, aby si člověk, který tento router provozuje, mohl zablokovat nebo povolit jen některé porty a aplikace, k jejichž anonymizaci chce přispět. Pro vyšší bezpečnost a odlehčení zatížení sítě při aktualizaci routerů o stavu sítě byly přidány directory server. Ty v síti vystupují jako databáze uchovávající celkovou strukturu sítě. Informace o síti upravují podle informací, které jim posílají samy routery a celý tento pohled na síť poté posílají ostatním routerům, aby měly co nejvíce aktuální pohled na síť. Dalšími požadavky na síť jsou kontrola integrity protékajících dat, zabezpečení komunikace mezi klientem a routerem a ochrana před zaplavením sítě. V neposlední řadě je zde pak vytvoření hidden services, což je taková služba, u níž nejde přesně určit její umístění. Může se jednat například o webovou stránku nebo IRC server přístupný pomocí Tor sítě. V takovém případě nejde vystopovat ani uživatele, který takovou službu používá, ani službu samotnou. Pro realizaci takové služby byly přidány randezvous servery, které slouží při navazování komunikace mezi klientem a hidden services.
5.2.2
Anonymní služby
Jelikož je rozhraní Toru tvořené pomocí SOCKS proxy, může tuto službu používat jakýkoliv program, který umí komunikovat s tímto rozhraním. Pro aplikace, jež neovládají tento protokol vznikly nástroje, které přemostí veškerou internetovou komunikaci na výše zmíněnou proxy. Z nejčastěji využívaných služeb tunelovaných přes Tor jsou webové prohlížeče, programy pro instant messaging IM jako je IRC, ICQ nebo SSH a jiné často používané služby.
5.2.3
Struktura sítě
Celá síť se skládá z onion routerů provozovaných dobrovolníky po celém světě. Tyto routery mají za úkol přeposílat zprávy, které obdržely. Jejich dalším 37
5. Anonymní sítě úkolem je například vytvářet šum na síti, čímž se ztíží možnost monitorování protékajících dat. Některé routery mohou sloužit zároveň i jako výstupní body (exit routery) do internetu. Ty pak komunikují přímo s cílovým serverem, kterému jsou data určena. To znamená, že na exit routeru musí být data již v takovém stavu, v jakém by byly, pokud by se posílaly přímo mimo Tor síť, například pro HTTP protokol to pak znamená, že data nejsou již nijak šifrovaná. Z toho také vyplývá, že se Tor nesnaží znečitelnit protékající data, ale pouze skrýt adresu jejich autora. Pokud pak klient bude přistupovat například ke svému účtu na sociálních sítích, jeho identita bude jednoduše odhalena. Pro zvýšení bezpečnosti by se tedy mělo používat šifrované spojení, takže ani exit router nemůže vidět, jaká data jsou posílaná kanálem nebo je dokonce měnit. Další nedílnou součástí jsou directory servery, které slouží jako databáze obsahující informace o celé síti. Těchto serverů se pak routery i klienti dotazují na aktuální stav sítě. Mimo jiné fungují i jako prostředek k měření a monitorování. V současné době je zde 9 directory serverů. Aby se zabránilo podvržení dat, servery mají vystavené certifikáty, pomocí kterých ověřují svou identitu. Zároveň slouží pouze pro aktualizaci routerů. Vstupním bodem se stává na klientovi nainstalovaná aplikace provozující nejčastěji SOCKS proxy. Tato aplikace je zodpovědná za vytvoření cesty v síti a navázání spojení s jednotlivými routery. Cesta v onion síti je zpravidla tvořena třemi routery, ovšem struktura sítě nijak délku neomezuje. Díky splnění požadavku, že každý router zná jen svého předchůdce a následovníka se i v případě, že první i poslední router v řetězci ovládá nechtěná autorita, nemůže zjistit, zdali jsou data přeposílaná přes první router ta samá, co prochází exit nodou. Pokud bychom komunikující strany označili jako Alice a Bob a Alice by chtěla posílat zprávy Bobovi, síť 5.2 by vypadala nějak takto: 5.2.3.1
Onion
Onion, podle které dostala celá tato síť svůj název, je cibulovitá struktura předávaná mezi jednotlivými routery po cestě k cíli. Je vytvořena na klientském počítači, kde se pomocí zvolených klíčů pro každý router vytvoří jedna vrstva struktury. Ta obsahuje posílaná data, informace o spojení a následujícím routeru v řadě. Celá struktura má velikost 512b, kde hlavička obsahuje vždy 15b. Aby router nebo pozorovatel v síti nemohl vědět, kolikátý uzel v řadě je, jsou data po odloupnutí jedné vrstvy zarovnána opět na 512b. 5.2.3.2
Onion proxy
Onion proxy (OP), neboli vstupní bod do celé sítě, běží na hostitelském počítači. Nejčastěji je realizovaný jako SOCKS proxy defaultně běžící na portu 9050, takže aplikace podporující SOCKS rozhraní nepotřebují žádné zvláštní 38
5.2. Tor
Obrázek 5.2: Složení cesty v Tor síti. Zelená čára představuje cestu, po které se předávají data v podobě cibulovité struktury.
úpravy nebo systémová práva, aby mohly komunikovat přes Tor síť. Jejím úkolem je vybrat podle speciálního algoritmu seznam routerů, z nichž se poté sestaví cesta v Tor síti. Do takto vytvořené cesty pak přeposílá data od aplikace. Dalším úkolem je periodicky měnit cestu každých 10 až 20 minut, aby se ztížila možnost analýzy protékajících dat. 5.2.3.3
Onion router
Onion router (OR) je základní jednotkou v onion síti. Jeho úkolem je přeposílat data po zvolené cestě. Vzhledem k tomu, že do sítě může po schválení administrátory přidat router prakticky každý, je mu při vytvoření záznamu v directory serveru vytvořen "long term key", jedná se o dvojici privátního a veřejného klíče, pomocí kterých poté autorizuje při komunikaci s directory servery. Periodicky jim zasílá informace o svém stavu a naopak, dotazuje se jich na aktuální stav celé sítě. Tyto klíče jsou pak použity i při navazování nové cesty přes OR. Míra anonymity poskytnuta Torem je z velké míry závislá na počtu routerů, k dnešnímu dni jich je přes 2800 a jsou umístěny po celém světě. Se vzrůstajícím počtem pak klesá možnost, že se cesta složí z routerů ovládaných útočníkem. 5.2.3.4
Exit router
Exit router (ER) funguje jako normální router s tím rozdílem, že má umožněno směřovat zprávy přímo do internetu. Z pohledu cílového serveru se tak v komunikaci stává klientem a jeho IP adresa je zaznamenána jako IP klientského počítače. 39
5. Anonymní sítě Pokud má exit router kontaktovat přímo cílový počítač, musí již mít data v takové formě, v které by byly, kdyby je posílal uživatel přímo bez použití Toru. To znamená, že v případě nešifrovaných spojení, jako je například HTTP nebo SMTP, má ER data v nezašifrované podobě. Tato data může však nejenom číst, může pozměnit i odpověď, kterou server zasílá zpátky uživateli. Doporučuje se tedy používat vždy šifrované spojení přímo až k cílovému serveru. ER přichází i s možností nastavení výstupní politiky. Pomocí konfiguračních souborů tak lze nastavit například zakázání nebo naopak povolení některých portů nebo šířka pásma, která se použije pro komunikaci pomocí Toru. Podle statistik je zde aktuálně přes 860 routerů, které umožňují routovat data ven do internetu. 5.2.3.5
Tor bridge
Někteří ISP mají ze zákona nebo z vlastní iniciativity nařízeno blokovat nebo sledovat Tor komunikaci. Toto nejčastěji provádí zablokováním portů, pomocí kterých Tor komunikuje. Dalším znakem používání Toru může být například konstantní velikost packetů o velikosti 512B. V případě, že ISP zaznamenají takovou komunikaci, packety automaticky zahazují. Takové jednání se děje nejčastěji v zemích, kde vládne internetová cenzura. Pro umožnění přístupu v takových podmínkách byly vytvořeny veřejné proxy servery "bridge", které slouží jako vstupní brány do Tor sítě. ISP pak nepozná, že jde ve skutečnosti o komunikaci v Tor síti, vidí pouze komunikaci s proxy serverem. 5.2.3.6
Directory server
Jedná se o centrální jednotku spravující seznam všech OR v síti. V původním návrhu onion routingu byl seznam OR předáván pomocí dotazování se sousedících routerů. To však vedlo k pravidelnému zaplavování sítě požadavky o aktualizaci databáze a tak i zvýšení celkového trafficu. Dalším znakem byla nedokonalost databáze routerů, každý OR znal jen routery, které znají jeho sousedé. V případě, že by se útočníkovi podařilo zjistit seznam routerů, které má klient v databázi, mohla by se tak zvýšit pravděpodobnost prolomení anonymity pomocí útoku na tyto OR. Dalším z možných problémů je podvrhnutí seznamu OR za routery ovládané útočníkem. Pro zjednodušení a vyhnutí se těmto problémům byly vytvořeny redundantní servery, které obsahují databázi všech OR vystupujících v síti. Jedná se o normální HTTP servery, jež dostávají od routerů informace o svém stavu a s pomocí asymetrické kryptografie distribuují svou databázi mezi ostatní routery a klienty. Aby nedošlo k podvržení directory serveru, jejich adresy jsou již předcacheované spolu s veřejnými klíči. V síti je aktuálně připojeno 6 serverů vystupujících jako directory servery. Do budoucna se plánuje, se 40
5.2. Tor zvyšujícím se počtem uživatelů, rozšířit počet takových serverů na 9, čímž se zvýší dostupnost k informacím o stavu sítě a zároveň se ztíží možnost zamezení aktualizací stavu sítě na jednotlivých OR. Všechny servery jsou spravovány manuálně administrátory, kteří schvalují přidání nových záznamů do databáze a tím i přidání routerů do sítě. Jednou z jejich dalších funkcí je monitorování celé sítě. Routery periodicky nahlašují serverům svůj stav a úkolem DR je pak pomocí Toru otestovat stav těchto routerů. V případě, že by se podařilo vyřadit z provozu všechny DR, jsou data cacheována jak u klienta, tak na všech OR v síti. 5.2.3.7
Hidden services
Jedná se o způsob, jak poskytovat anonymně služby, jako je webový server nebo instant messaging, aniž by došlo k odhalení lokace serveru, na kterém tyto služby běží. Každá HS má své doménové jméno skládající se z 16ti znaků odvozených od svého veřejného klíče a příponu „.onion“. Dále vlastní dvojici klíčů pro šifrované navázání spojení s uživateli a seznam routerů, které fungují jako introduction port. Všechny tyto informace tvoří deskriptor HS, který je bezpečně pomocí Toru předán directory serverům. Pokud jsou tyto služby schované z pohledu jejich IP adresy, jsou pak odolné i před útoky, jako je zahlcení velkým množstvím požadavků. V případě DDoS útoku na tyto služby je pak nucen útočit přes Tor sít, čímž bude zahlcena pouze část Tor síťě, nikoli cílový server. 5.2.3.8
Randezvous point
Ve chvíli, kdy se nějaký klient pokouší připojit k HS, vybere si jeden router ze seznamu, a přes 2 další routery s ním naváže spojení. Jeho úkolem poté je vyčkávat, dokud se HS nepřipojí a následně přeposílat data. Tento OR je spojen s klientem pomocí dvou dalších routerů. HS se pak připojuje standardně přes Tor síť pomocí dalších 3 uzlů.
5.2.4
Datové bloky
Jednotlivé OR spolu komunikují pomocí zabezpečeného protokolu TLS. Přeposílají si mezi sebou 2 typy datových bloků o fixní velikosti 512 bajtů. Tak jako packety, i tyto celky mají 2 složky, hlavičku a datovou část. Hlavička obsahuje identifikátor spojení (circID). Ten je zde uveden pro možnost tunelování více okruhů jedním TLS spojením. Pro každý router v sestavené cestě je zvolen jiný identifikátor. Dále je zde uveden příkaz (command), který specifikuje, co se má s daty vykonat. Předávané bloky jsou dvojího typu. Buď se jedná o kontrolní blok určený k vytvoření a následné správě okruhu, a nebo datový blok, který již nese vlastní data posílaná aplikací. 41
5. Anonymní sítě 5.2.4.1
Kontrolní blok
Kontrolní blok (na obrázku 5.3) je používán pro sestavení a správu navázaného okruhu.
Obrázek 5.3: Kontrolní blok Toru. (13) Je zpracováván routerem, který ho přijme. Pomocí příkazu pak provádí následující operace: • padding aktuálně používaný pro udržování spojení • create, created pro vytvoření nového okruhu a zaslání informace o vytvoření • destroy pro zrušení okruhu 5.2.4.2
Datový blok
Je použit pro přenos dat po vytvořeném okruhu. Protože je možné po jednom okruhu (jednom circID) používat více aplikací, je zde přidána doplňující hlavička obsahující identifikátor proudu TCP dat (streamID). Dále je zde délka posílaných dat a příkaz pro OR, co má s daty udělat. Datový blok je znázorněn na obrázku 5.4.
Obrázek 5.4: Datový blok Toru. (13) Příkazy v headeru jsou následující: • relay data pro přenos dat • relay begin pro otevření nového streamu • relay end pro čisté uzavření streamu • relay teardown pro uzavření streamu • relay connected zaslání informace o spojení • relay extend pro prodloužení okruhu o jeden router 42
5.2. Tor • relay extended pro zaslání stavové informace o prodloužení okruhu • relay truncate pro zrušení části okruhu • relay truncated pro zaslání infromace o zrušení části okruhu • relay sendme pro kontrolu před zahlcením • relay drop také pro kontrolu před zahlcením Hlavička i samotná data jsou pro každý router postupně zašifrována pomocí symetrické šifry AES používající 128 bitů dlouhý klíč. Klíče si dohodne OP s OR při vytváření okruhu. Aby se OP nedotazovala routerů přímo, přeposílá požadavky přes již vytvořené části okruhu. Jak je blok postupně přenášen sítí, každý router jej dešifruje pomocí dohodnutého klíče a přepošle jej dále po vytvořeném okruhu. To mimo jiné znamená i to, že data v čisté podobě zná pouze poslední router v řadě, ostatní OR vidí pouze zašifrovaná data.
5.2.5
Sestavení a využívání okruhu
V první generaci onion routingu se pro každý TCP stream vytvořil nový okruh. To bylo značně nákladné na čas, kvůli době, kterou si vyžádala část navazování spojení spolu s kryptografií. Pro urychlení bylo umožněno v Toru používat více aplikací pod jedním okruhem. Každý okruh má z bezpečnostních důvodů svou dobu expirace, po kterou je aktivní. Při vyexpirování okruhu se stávající zruší a místo něj se sestaví jíný. 5.2.5.1
Sestavení okruhu a přenos dat v Tor síti
Pro sestavení okruhu si OP nejprve zvolí routery, z kterých se cesta sestaví. Výběr provádí ze své databáze pomocí speciálního algoritmu, který aplikuje několik bezpečnostních opatření, jako je například požadavek, aby každý z routerů byl z jiné subsítě. Sníží se tak možnost, že se data budou přeposílat na území jednoho státu nebo dokonce jednoho ISP. Mimo pevná pravidla jsou zde četná nastavení, kterými lze specifikovat cestu v Tor síti. Nastavitelné jsou například délka cesty nebo staticky zvolený exit router. Po zvolení prvků v okruhu OP inkrementálně navazuje spojení s jednotlivými routery. Pomocí asymetrické kryptografie a veřejného klíče prvního routeru se pomocí Diffie-Hellman protokolu vymění symetrický klíč. Ten poté bude sloužit při další komunikaci mezi OP a OR. Symetrická kryptografie je zde použita z důvodu urychlení šifrování a dešifrování dat. Po navázání spojení s prvním routerem OP pošle příkaz relay extend pro prodloužení spojení. Router tento příkaz přijme a přepošle dalšímu routeru v řadě data s příkazem create. Data v odpovědi pak zabalí do struktury relay extended a pošle zpět tomu, kdo o relay extend požádal. Každý router tak 43
5. Anonymní sítě vidí pouze jeho předchůdce a následovníka. Postup pro sestavení cesty z dvou OR je vidět na obrázku 5.5.
Obrázek 5.5: Sestavení spojení mezi OR. Klient, Alice, požádá první router příkazem create o vytvoření spojení. Ten při úspechu pošle odpověď created. Poté mu Alice pošle příkaz Extend s údaji o druhém routeru. První router příkaz přijme a na uvedenou adresu pošle create. Toto se opakuje až do vytvoření spojení s posledním routerem v řadě, který pak přeposílá přijatá data do internetu. (13) Router zároveň nemůže jednoduše poznat, že je první v pořadí, protože se komunikace s ním nijak neliší od komunikace s dalšími OR po cestě. Další vlastností takového vytváření okruhu je, že není nijak omezena délka výsledné cesty. V cestě se tak dá využít více OR a tím získat vyšší jistotu anonymity. S delší cestou však lineárně vzrůstá výsledná latence celého okruhu, proto se cesta složená v onion síti skládá defaultně z 3 OR, což se ukázalo jako dobrý kompromis mezi latencí a úrovní výsledné bezpečnosti. Pro přenos dat se pak v okruhu nejprve pošle příkaz relay begin s náhodně zvoleným streamID. Poté se již posílá relay data pro přenos vlastní zprávy. Pro uzavření spojení se posílají příkazy relay teardown nebo relay end, čímž se zruší jednotlivé streamy. Po zrušení posledního streamu se zruší i vytvořený okruh. V případě komunikace s hidden servicests si OR pomocí Tor sítě stáhne deskriptor služby, ke které chce uživatel přistoupit. V síti si zvolí jeden z routerů, který bude vystupovat jako jeho randezvous point a bude čekat na příchozí komunikaci od HS. Poté se OP přes Tor připojí k jednomu z introduction pointů a sdělí mu adresu svého randezvous pointu. Introduction point poté přes již vytvořený kanál předá zprávu HS o příchozím spojení. Ta se poté opět přes Tor sít připojí na randezvous point, kde již může komunikovat s klientem. Celá cesta od klienta k HS je při standardní délce složena z šesti routerů a 44
5.2. Tor nastolení celé komunikace trvá průměrně 24 sekund.
5.2.6
Statistiky
Tor funguje od roku 2002, za svou dobu existence stačil nasbírat podle (4) přes 2800 OR vedených dobrovolníky po celém světě. Z těchto 2800 routerů přibližně 850 funguje zároveň jako exit router. Graf vývoje počtu OR v závislosti na čase je na obrázku 5.6.
Obrázek 5.6: Počet routerů v projektu Tor v čase. Modrá čára zvýrazňuje počet vstupních bran, červená počet všech routerů v síti. (4) Se zvyšujícím se počtem routerů vzrůstá také šířka pásma celé sítě (viz obrázek 5.7). K dnešnímu dni je propagována šířka pres 3000 mebibitů4 za sekundu, naměřené využití pak dosahuje 1750 Mib/s. Každý den používá Tor 400 000 lidí (podle (5)), z toho 80 000 lidí přistupuje přes veřejné proxy. O závislosti Toru i na politické situaci ve světě se můžeme přesvědčit na následujícím obrázku 5.8, který vyobrazuje použití Toru v roce 2011 v době, kdy Egyptem zmítaly nepokoje. Protože Tor není centralizovaná síť a nedochází zde k žádnému logování protékajících dat, jsou statistiky omezené jen na informace předávané od routerů, jako je jejich rychlost nebo stav využití a počet uživatelů dotazujících se directory serverů. Veškeré statistiky jsou uvedeny na adrese https: //metrics.torproject.org/.
5.2.7
Aplikace toru
Tor přichází s několika aplikacemi, které mají ulehčit jeho použití. Jsou to zejména Tor proxy, Torbutton a Vidalia. Z dalších aplikacích jsou tu pak 4
Jednotka přenosové rychlosti, 1Mib/s je 1 048 576 b/s.
45
5. Anonymní sítě
Obrázek 5.7: Šířka pásma Tor sítě. Zelená čára označuje propagovanou rychlost a fialová naměřené hodnoty vytížení sítě.(4)
Obrázek 5.8: Počet uživatelů Toru od poloviny roku 2011. (5)
Polipo, Proxychains a Privoxy. Aplikací vyvíjených Tor komunitou je mnohem více. Jejich úplný výčet, popis a možnost stažení můžeme najít na této adrese https://www.torproject. org/projects/projects.html.en. 5.2.7.1
Tor klient
Základní program sloužící k připojení do Tor sítě. Nejčastěji obsahuje i SOCKS proxy běžící defaultně na portu 9050. Na portu 9051 pak běží aplikace pro 46
5.2. Tor ovládání Tor klienta. Pomocí příkazů odesílaných na tento port se dá sestavit nový okruh, prodloužit stávající, resetovat klienta a podobně. Pro posílání dat Tor sítí je však možné využít i pomocí knihoven jako je například Orlib. Ta pak konkrétně umožňuje využití Toru v aplikacích vyvíjených na operačním systému Google Android.
5.2.7.2
Vidalia
Vidalia (obrázek 5.9) je program určený pro grafické ovládání Tor klienta. S jeho pomocí jej lze jednoduše nastavit a poté i intuitivně ovládat. Pomocí konfiguračního okna je také možné připojit do sítě hidden services nebo zapnout Tor bridge. Velkou výhodou tohoto programu je mnoho podporovaných jazyků a také jeho přenositelnost jak na OS Linux, Microsoft Windows tak i na Apple OSX.
Obrázek 5.9: Tor Vidalia, okno se základními funkcemi.
5.2.7.3
Tor Browser Bundle
Prohlížeč Mozzila Firefox doplněný o bezpečnostní addony Torbutton, Noscript5 a HTTPS-everywhere6 . Je dodáván s Vidalia panelem, díky kterému jej lze jednoduše spravovat. 5
Addon prohlížeče Firefox určený k zakázání všech scriptů, které by mohly vést k odhalení pravé IP adresy uživatele. 6 Addon HTTPS-everywhere zajišťuje vynucení šifrovaného kanálu při každém spojení.
47
5. Anonymní sítě 5.2.7.4
Tor2Web
Jedná se o webovou službu umístěnou na adrese http://tor2web.org/, díky které je možné získat přístup k webové Hidden services bez použití Toru na lokálním počítači. Klient se pro přístup připojí na výše zmíněnou adresu a jako subdoménu uvede adresu hidden services. Brána se poté sama připojí ke skryté službě a přepošle požadavek od klienta. Výsledek předá zpět klientovi. Komunikace s bránou probíhá nešifrovaně. Pro pozorovatele na síti to pak znamená, že může vidět data a stránky, které uživatel stáhl a navštívil. Pro přístup k hidden services se tedy doporučuje využít lokálně nainstalovaný Tor. 5.2.7.5
Privoxy a Polipo
Jsou to aplikace, které byly původně navrhovány pro urychlení přístupu na web. V podstatě se jedná o cacheovací proxy, které lze použít i pro komunikaci s Torem. Rozdíl mezi nimi pak je, že Polipo přeposílá uživateli odpovědi z Tor sítě co nejdříve, zatímco Privoxy čeká na stažení celé stránky a až poté ji přepošle uživateli. 5.2.7.6
Proxychains
Proxychains je určena k přemostění síťové TCP komunikace jekéhokoliv programu přes SOCKS nebo HTTP proxy. Stává se tak řešením pro použití Toru v programech, které nemají nativní podporu SOCKS komunikace. Ukázku použití proxychains můžeme vidět na následujícím obrázku 5.10. Pozitivní vlastností tohoto programu je možnost nastavit více proxy serverů v cestě a tunelovat tak data přes více serverů. Alternativou pro OS Windows jsou například programy SocksCap nebo FreeCap.
5.2.8
Útoky
Během doby, co je Tor na světě, se stal jedním z hlavním anonymizačních programů. Strhává na sebe velkou pozornost jak uživatelů, kteří ho denodenně používají k bezpečné a anonymní komunikaci, tak i útočníků a organizací, které se snaží o prolomení jeho bezpečnosti. Díky jeho open source konceptu vznikly také skupiny lidí, kteří ho testují a snaží se jej prolomit k zvýšení jeho bezpečnosti.
5.2.9
Problémy a nevýhody Toru
Jedním z aktuálně největších problémů v komunikaci je chyba nazvaná DNS leak. Jedná se o stav, kdy aplikace využívající Tor nejprve samy provedou překlad doménového jména na IP adresu a teprve až poté anonymně komunikují s touto IP adresou. ISP nebo správce doménových serverů pak může 48
5.2. Tor
Obrázek 5.10: Tunelování síťové komunikace programu Opera přes Tor pomocí proxychains.
vidět pravé IP adresy uživatelů, kteří k serverům přistupují. Tímto problémem trpí například webové prohlížeče nebo SSH. Jednoduché, obecné a především bezpečné řešení tohoto problému zatím není. Ve webovém prohlížeči se dá použít program nazvaný Privoxy, který by měl veškeré DNS dotazy odfiltrovat. Jedním z dalších problémů je možné umístění ER. Pokud je výstupní bod umístěn v cenzurovaném území, uživatel využívající tento bod je také cenzurován. Případem mohou být výstupní body umístěné v Číně nebo v Severní Koreji. Dalším problémem je volnost přidání uzlu do Tor sítě. Jde sice o dobrou vlastnost projektu, pomocí které se celá sít velmi rychle rozrůstá, je zde však problém s důvěrou v jednotlivé takto přidané routery. Obecně se doporučuje všechnu komunikaci šifrovat pomocí SSL/TLS, aby ani poslední router v řetězci nebyl schopen vidět data v čisté podobě, nebo je nějakým způsobem modifikovat. Dalším doporučením je využívat především routery na území, kde místní legislativa neumožňuje snadno sledovat soukromí lidí. V současnosti již vyřešeným problémem je zvolení routerů pro sestavení okruhu tak, aby nebyly umístěny na jednom území. Stávalo se totiž, že byl celý okruh složen z routerů připojených do sítě pomocí jednoho ISP a tím pak vzrostla možnost odposlechu a následného prolomení anonymity. Jako bezpečnostní opatření byla přidána podmínka, že žádné 2 uzly v sestaveném okruhu nesmí být ze stejné subsítě.
5.2.10
Budoucnost Toru
Jednou z vlastností, které v blízké budoucnosti bude Tor mít, je omezení na maximální délku okruhu složeného z OR. Podle testů provedených vývojáři 49
5. Anonymní sítě Toru se pomocí cesty, jež byla několikrát vedena přes jeden OR, podařilo výrazně vytížit zdroje tohoto routeru a tím i zpozdit přeposílání regulerních dat. V případě prolinkování více takových routerů by se výrazně snížíla propustnost na jednotlivých OR, čímž by se zpomalila i služba pro normální uživatele. V současnosti Tor funguje pouze na protokolu IPv4, jednou z budoucích rozšíření bude možnost komunikace pomocí protokolu IPv6 spolu s možností provozování Toru na více IP adresách a portech.
5.3
I2P
Invisible Internet Project (I2P) (logo na obrázku 5.11) vznikl již v roce 2003. Jedná se opět o mixovací síť založenou na principu routerů, které si v I2P síti přeposílají zprávy od uživatelů. Projekt je vydán pod open source licencí a je spravován a rozšiřován především dobrovolníky po celém světě. V době svého vzniku se na jeho vývoji podílel pouze jeden člověk. Nyní má již větší uživatelskou podporu, svou velikostí se však stále řadí do menších anonymizačních sítí. Zvláštností může být, že velká část současných vývojářů setrvává v anonymitě a na veřejnosti vystupuje pouze pomocí přezdívek.
Obrázek 5.11: Logo projektu i2p. (2) Hlavním cílem tohoto projektu není zajistit uživatelům perfektní anonymitu, ale vytvořit takovou anonymní službu, aby finanční obnos a úsilí potřebné na její prolomení bylo co největší. Jednou z příjemných vlastností I2P může být její četná lokalizace. Program a administrační rozhraní bylo přeloženo mimo jiné i do češtiny.
5.3.1
Rozdíly I2P a Tor
Přeposílání zpráv funguje opět na bázi routerů, které přeposílají data, ovšem už místo onion routingu, kdy se předávala několikrát zabalená struktura s daty, se zde používá princip "garlic routingu". Jedná se o přeposílání několikrát zašifrované struktury, která ve své nejvnitřní slupce může obsahovat více zpráv pro více uživatelů. Výraznou změnou oproti Toru je také použití tunelů. Tunel je jednosměrné spojení vedoucí přes několik routerů. Každý I2P klient má vytvořených několik příchozích a odchozích tunelů. Při komunikaci odesílá data odchozím tunelem, odpověď se mu pak vrací pomocí příchozího tunelu. 50
5.3. I2P Oproti Toru zde není žádná centrální databáze pro vyhledání okolních routerů. Každý klient nebo router má svou lokální databázi (netDb), v které si sám udržuje informace o routerech a stavu sítě. Pro aktualizaci netDb se pak dotazuje okolních známých routerů na stav jejich databáze. Aby bylo možné při prvotním spuštění začít komunikovat, má základní instalace I2P přednastavených několik důvěrných routerů, u kterých aplikace může začít s rozšiřováním své netDb. Pro snadnou přenositelnost na různých operačních systémech byl pro implementaci zvolen jazyk Java. Příjemnou vlastností je pak možnost konfigurace I2P pomocí webového rozhraní, které se automaticky spustí při spuštění programu obsluhující I2P router. Webové rozhraní je defaultně přístupné na adrese localhostu na portu 7657. Narozdíl od Toru, I2P je zaměřeno více na samotnou anonymitu mezi uživateli v I2P síti, než na skrytí identity v okolním internetu. Protože jsou data posílána mezi uživateli, mohou být šifrována po celé cestě, což zabraňuje pozorovatelům na síti v odposlouchávání provozu. Dalším rozdílem je způsob komunikace, který se zde používá. Oproti architektuře klient - server, jak tomu je u Toru, probíhá zde komunikace na bázi point to point (P2P). V praxi to znamená, že komunikace mezi uživateli v I2P síti je rychlejší, než tomu tak je u Toru, nevýhodou pak je větší latence v případě přístupu na služby, které jsou umístěné mimo I2P síť. Pro tyto případy existují v síti routery nazvané "outproxy", jež mají povoleno směrovat data zpět do internetu. Těchto routerů je ale velmi málo, přístup k internetu mimo I2P sít je tedy velmi omezen počtem a kvalitou těchto routerů. V současné době je oficiálně provozován pouze jeden výstupní bod (vedený pod adresou false.i2p7 ), jehož služby využívá velký počet lidí, čímž se zvyšuje latence tohoto routeru.
5.3.2
Struktura
Základní jednotkou v I2P síti je opět router. Ten vystupuje v komunikaci jako proxy, která přeposílá data mezi ostatními routery. Současně se jedná o klientskou aplikaci, což znamená, že každý, kdo používá I2P, funguje zároveň jako router. Stejně jako u Toru, každý router pak zná jen svého přechůdce a následovníka. Tunel je cesta složená z více routerů. Jeden tunel má vždy jeden vstupní bod a jednu výstupní bránu. Při spuštění routeru dojde vždy k sestavení několika vstupních (inbound) a výstupních tunelů, přes které se poté bude provádět komunikace. Pro možnost tunelování aplikací používajících UDP spojení byla přidána i možnost vytvoření UDP tunelů. Pro jednu aplikaci je použit vždy jen jeden tunel. 7
Jedná se o adresu z I2P sítě.
51
5. Anonymní sítě Jak už bylo řečeno výše, routery mají svou lokální databázi (netDb), která obsahuje informace o všech známých routerech. Nachází se zde také tzv "LeaseSety", což je popis tunelů, v kterých se router nachází. Tato databáze se distribuuje mezi okolní routery, které ji přeposílají dál.
5.3.3
Komunikace v I2P síti
Ve chvíli, kdy router chce komunikovat s jiným routerem v síti, vyhledá ve své netDb adresu jeho vstupního tunelu. Vytvoří zprávu, kterou spolu se seznamem svých vstupních tunelů zašifruje veřejným klíčem routeru, s kterým chce komunikovat. Takto upravenou zprávu poté ještě několikanásobně zašifruje klíči jednotlivých routerů, které stojí v jeho výstupním tunelu. Šifrování provádí směrem od nejvzdálenějšího routeru po nejbližší. Svrchní slupka je tedy zašifrována klíčem nejbližšího routeru. Tuto strukturu poté přepošle do svého výstupního tunelu. Data jsou postupně dešifrována a předávána dalším routerům v řadě, až nakonec dorazí na vstupní bránu vstupního tunelu routeru, s kterým má být otevřena komunikace. Obrázek 5.12 znázorňuje cestu vytvořenou z tunelů 2 uživatelů v I2P síti.
Obrázek 5.12: Sestavení cesty z tunelů 2 uživatelů v I2P síti. (8)
Data jsou pak postupně předávána až k routeru vlastnící tento tunel. Průchod dat mezi uživateli v síti a typ šifrování je zobrazen na obrázku 5.13. V tuto chvíli, cílový router zná adresu protějšku a může s ním obdobným způsobem navázat spojení přes jeho vstupní tunel.
5.3.4
Aplikační rozhraní
I2P přichází s aplikačním rozhraním v podobě java knihoven, které se dají jednoduše přilinkovat při vývoji aplikace. Pro použití u ostatních aplikací jsou zde vytvořeny HTTP nebo SOCKS proxy běžící na localhostu. 52
5.3. I2P
Obrázek 5.13: Šifrování dat při komunikaci v I2P síti. Data jsou zabezpečena šifrou AES po celou dobu přenosu. (2)
5.3.5
Nastavení
Nastavení a ovládání klienta se provádí z webového prostředí, které defaultně běží na adrese localhost s portem 7656. Ukázka konfiguračního rozhraní je na obrázku 5.14. Toto rozhraní je přístupné pouze z localhostu a je spouštěno spolu se spuštěním routeru.
Obrázek 5.14: Nastavení I2P sítě.
53
5. Anonymní sítě
5.4
JAP
Java Anon Proxy (JAP) (logo projektu na obrázku 5.15), komerčně vydaná s četným rozšířením pod názvem JonDonym, je služba navržená v roce 2000 na univerzitě v Drážďanech. Projekt byl financován německým ministerstvem ekonomiky a technologií. V roce 2007 však toto financování skončilo a tím se stal finančně závislým čistě na svých uživatelých, kterým nyní poskytuje zvýhodněné placené služby oproti původní službě, kterou nabízí zdarma.
Obrázek 5.15: Logo projektu JAP. (7)
5.4.1
Struktura
Elementární jednotku zde představují routery nazvané mixy. Každý takový router má maximálně jedno příchozí a jedno odchozí spojení, pomocí kterého se spojují do kaskády mixů. Každý mix může být použit pouze v jedné kaskádě. Může být ale i volný, v tom případě není použit pro přenos zpráv. Routery jsou provozovány nezávislými poskytovateli z různých zemí, aby se ztížila možnost vystopování uživatelů. Kaskády mixů jsou zaznamenány v databázi nazvané InfoServis. Ta slouží pro klienty jako informátor o použitelných kaskádách. Mimo jiné, obsahuje i informace o stavu a vytíženosti jednotlivých poskytovatelů. Klientská aplikace pak slouží jako rozhraní mezi aplikací a prvním mixem kaskády, která byla vybrána pro komunikaci. Je realizovaná jako proxy rozhraní běžící na lokálním počítači. Data mohou být předána posledním mixem v kaskádě ještě proxy serveru, který pomocí cacheování dat slouží k urychlení provozu na síti. Celá struktura sítě je zobrazena na obrázku 5.16.
5.4.2
MixPacket
Jedná se o datovou strukturu, jež je přeposílána pomocí mixů skrz mix kaskádu. MixPackety mají fixní velikosti 998 bajtů a skládající se ze dvou částí, hlavi54
5.5. Útoky na anonymní sítě
Obrázek 5.16: Struktura sítě JAP. (9)
čky a vlastních dat. MixPacket je zašifrován veřejným klíčem každého mixu v kaskádě.
5.4.3
Vlastnosti
Program je napsán v jazyce Java a je podporován na velkém množství operačních systémů. Pro jeho použití stačí z domovské stránky projektu stáhnout balík určený pro daný operační systém. Příznivou vlastností programu je pak i jeho lokalizace do češtiny a názorný průvodce v nastavení služeb. Pro placenou službu je vyhrazena velká šířka pásma, což napomáhá ke snížení výsledné latence. Pro služby poskytované zdarma to bohužel neplatí a výsledná rychlost je srovnatelná s rychlostmi poskytovaných služeb Tor nebo I2P. U placené verze programu je pak zaručena absence jakýchkoli logů s proběhlými spojeními, které by mohly napomoci k zpětném identifikaci uživatelů. Placená služba zároveň nabízí mix kaskády složené z mixů umístěných v různých státech vedených nezávislými organizacemi. Pro případ odposlechu by tak musel útočník projít přes všechny tyto poskytovatele.
5.5
Útoky na anonymní sítě
Vzhledem ke své složitosti, mají anonymní sítě četnou řadu bezpečnostních chyb, které vyházejí buď ze základního konceptu nebo z programové realizace těchto sítí. Díky své otevřenosti však vznikla velká komunita lidí, která se tyto chyby snaží analyzovat a tím tak přispět k lepšímu zabezpečení těchto nástrojů. Vznikají dokonce i týmy specialistů, které hledají nové zranitelnosti a následně navrhují vývojářům řešení těchto chyb. 55
5. Anonymní sítě
5.5.1
ActionScript
Stejně jako u proxy serverů, i zde je v případě povoleného dynamického obsahu zpracovávaného na straně uživatele možnost navázat spojení se serverem vedoucí mimo kanál vytvořený anonymizační sítí. Jedná se zejména o pluginy, jako jsou AdobeFlash nebo Java applety. Script určený k navázání spojení bez pomocí proxy však nemusí prohlížeči poslat pouze stránka, na kterou uživatel přistupuje. Protože přes výstupní bod ze sítě protékají data v čistém tvaru, může i ten upravit odpověď serveru a vložit do ní daný script. Pro zabránění možnosti odposlechu a úpravy dat výstupním bodem v síti se doporučuje používat zabezpečené spojení. Například namísto HTTP protokolu to pak znamená použít HTTPS. Útočník se však může pomocí MITM8 dostat mezi komunikující strany a tím opět získá protékající data v nezašifrované podobě. Jediným problémem pak bude, že se uživateli zobrazí varování o chybném certifikátu cílového serveru.
5.5.2
Cross-protocol HTTP attack
V případě projektů Tor i I2P existují aplikace, jež mají umožnit snadné ovládání těchto nástrojů. U I2P je to webová stránka běžící defaultně na adrese localhost s portem 7657. U Toru pak démon naslouchající na portu 9051. Tyto kontrolní aplikace jsou přístupné pouze z localhostu, aby nikdo z okolního počítače nemohl změnit nastavení anonymizéru a tak ohrozit bezpečnost jeho uživatelů. Toto opatření už ale neplatí, pokud útočník využije některý z pluginů (například Java pluginu) ve webovém prohlížeči. Pomocí toho se lze připojit na kontrolní port a odhalit tak identitu uživatele. Ve skutečnosti se nemusí jednat ani o speciální plugin, pro realizaci tohoto útoku stačí jednoduchý HTML form, kterým uživatel odešle sadu příkazů na adresu kontrolní aplikace. Některé prohlížeče mají nastavené restrikce, na které porty se odmítnou připojit. Prohlížeč Mozzila Firefox se pro příklad odmítá připojit na port 25, kde běží server pro odesílání emailů. Kontrolní porty anonymizérů však v těchto restrikcích nejsou. Zároveň, ne všechny prohlížeče mají taková nastavení. I2P se proti tomuto útoku brání pomocí náhodně generovaných ID (19 znaků dlouhá čísla přidávaná do každého formuláře). Data odeslaná z formuláře provede pouze tehdy, pokud je odesláno i validní vygenerované ID. Pokud má uživatel povolené zpracování JavaScriptového kódu, lze tuto ochranu jednoduše obejít tím, že se nejprve z ovládací stránky vyzjistí ID formuláře a až poté se odešlou data i s validním ID. 8
Útok na šifrované spojení, při kterém se útočník pro klienta představí jako server se svým vlastním certifikátem, pro původní server se tváří jako klient a po navázání spojení přeposílá zprávy mezi komunikujícími stranami.
56
5.5. Útoky na anonymní sítě
5.5.3
Congestion attack
Další objevenou chybou popsanou v (14) je zneužití vlastnosti u projektu Tor, kdy sestavená cesta nemá omezenou maximální délku. Útočník tak může vytvořit okruh z velkého počtu routerů. Cestu může navíc vést jedním routerem vícekrát, což může sloužit k DoS útokům na Tor síť. Pokud totiž vytvoří mnoho okruhů vedoucí přes jeden router, zpomalí tak všechen provoz, který tento router zpracovává. Útočník pak může postupně zkoušet jednotlivé routery v síti a sledovat, zda se změní latence oběti. Pomocí toho lze vysledovat cestu, kterou útočník komunikuje v Tor síti. Testování a analýza tohoto útoku stejně tak jako rozšiřující informace jsou uvedeny zde (18).
5.5.4
Traffic analysis
Jedna z obecných metod pro prolomení anonymity v anonymních sítích je sledování protékajících dat a odhad jejich původu na základě časových záznamů. Pro realizaci tohoto testu bylo u oběti vynuceno refreshování stránky pomocí scriptu v jazyce JavaScript. V jiné části sítě se pak hledá pravidelnost v posílaných datech. Pomocí metod, jako jsou congestion attack nebo úprava protékajících dat, pak lze do protékajících dat vložit časové razítko, které budeme hledat v jiné části sítě. V reálném případě pak ISP oběti může vypozorovat cestu, kterou uživatel komunikuje až k cílovému serveru.
5.5.5
Packet replaying
V současné době již nefunkční útok na prolomení poskytnuté anonymity. Jedná se způsob replikace procházejících dat. Ve spojení s analýzou dat v síti by tak útočník mohl na jedné straně sítě replikovat data procházející od klienta a na druhé sledovat, zdali se na výstupních bodech zvýší počet procházejících dat. Zároveň může sledovat, zda jsou si data něčím podobná a ve výsledku tak určit pravou adresu uživatele, s kterou komunikuje. Pro zamezení tohoto útoku bylo do každého packetu přidáno pořadové číslo. Pokud router obdrží více dat se stejným pořadovým číslem, jsou data zahozena. Zduplikovaná data jsou tak zastavena u prvního routeru.
5.5.6
Modifikace protékajících dat
Nejde ani tak o útok na anonymitu uživatele, jako spíše o zneužití svého postavení v sestavené cestě. Pokud přes výstupní router procházejí nezašifrovaná data, může je router odposlouchávat nebo pozměnit. V případě FTP protokolu to pak může být náhrada příkazu CWD za RMD a podobně. 57
5. Anonymní sítě Může však jít i o úpravu dat, které router přeposílá zpět uživateli. Jedná se nejčastěji o vložení skriptu nebo aplikace, která má za úkol obejít nastavení proxy. Může být vložen také skript pro automatické refreshování stránky, čímž se zvýší možnost časové analýzy.
5.5.7
Útoky na používané aplikace
Důležitým opatřením je také používat pouze aplikace známé tím, že neohrozí anonymitu uživatele nějakým nečekaným přístupem do internetu. Příkladem může být PDF dokument, který může požadovat stažení dodatečných zdrojů z internetu, čímž dojde k prozrazení pravé IP adresy. Pro udržení anonymity by tedy měly být vynechány všechny programy, které mohou takto ohrozit anonymitu uživatele. Pro zmiňovaný PDF dokument nemusí uživatel ani spouštět samostatný program. Pokud má v prohlížeči nainstalovaný plugin Adobe PDF, může být útok proveden ihned bez možnosti zastavení.
5.5.8
Refresh attack
Jednoduchým avšak velmi účinným útokem se ukázalo refreshování stránky v prohlížeči uživatele. Pomocí JavaScript kódu nebo Meta tagu v HTML dojde k periodickému refreshování stránky každých pár minut. Pokud uživatel používá v prohlížeči nějaký addon na zapnutí proxy nastavení (u Toru tomu je například TorButton) a rozhodne se, že vypne anonymizér, po nastaveném čase dojde k refreshnutí stránky, která byla původně stažena anonymně. Tím dostane cílový server pravou IP adresu uživatele.
5.5.9
Sociální sítě
Nejedná se přímo o útok na anonymizační službu, ale spíše na anonymitu samotnou. Na zpravodajském protálu (11) byl popsán příběh člověka, který se snažil odhalit několik anonymně vystupujících uživatelů na internetu. Pomocí sociálních sítí vytipoval množinu lidí, která by mohla obsahovat i hledané jedince. Pomocí dlouhodobého sledování pak postupně omezoval vytýčenou množinu, až mu zbylo jen pár lidí, kteří byli pravděpodobně ti, které hledal. Při zužování okruhu hledaných přitom hrálo roli mnoho faktorů, jako například doba, kdy byli anonymní uživatelé a současně lidé z množiny online, jejich počítačové schopnosti, názory na okolní dění ve světě a podobně. Pomocí tohoto postupu bylo vybráno z množiny pár lidí, kteří s vysokou pravděpodobností odpovídali hledaným osobám. Takový postup je velmi náročný na čas, s dostatečnými informacemi však může být velmi účinný.
58
Kapitola
Detekce anonymizéru Spolu s používáním proxy serverů souvisí i jejich detekce a snaha o efektivní odhalení těchto služeb. Mnoho aplikací se snaží detekovat takto přistupující uživatele pro zkvalitnění svých služeb. Například pokud někdo vytváří internetovou anketu, u uživatelů vystupujících anonymně by nemohl určit, zda již hlasovali. Zároveň vzniklo mnoho botů, kteří využívají Tor a jiné anonymizační prostředky k hromadnému rozesílání spamu. Proto se snaží o detekci anonymizačních nástrojů a následnou blokaci takto přistupujících uživatelů. Pro tento účel vznikly testy, jako je zpětné skenování portů, reverzní dotazy do DNS, blacklisting známých adres anonymizérů nebo statistické metody založené na zaznamenávání přístupů.
6.1
Hlavičky komunikace
U proxy serveru je nejjednoduším případem, pokud se v hlavičkách (viz seznam hlaviček v tabulce 6.1) předává informace, že jde o komunikaci zprostředkovanou pomocí proxy. Některé proxy servery dokonce předávají i informace o uživateli, jehož požadavek zpracovávají. V HTTP komunikaci pak mohou uvést například i jeho IP adresu. Tabulka 6.1: Možné hlavičky nastavované při směrování proxy serverem HTTP_VIA HTTP_FORWARDED_FOR HTTP_FORWARDED HTTP_FORWARDED_FOR_IP X_FORWARDED_FOR X_FORWARDED HTTP_X_FORWARDED_FOR HTTP_PROXY_CONNECTION
59
VIA HTTP_X_FORWARDED HTTP_CLIENT_IP FORWARDED_FOR_IP FORWARDED_FOR FORWARDED CLIENT_IP
6
6. Detekce anonymizéru
6.2
Timezone test
V případě, že se v komunikaci vyskytuje hlavička obsahující datum nebo časovou zónu původního klienta, dá se tento údaj porovnat s hodnotou spočítanou z IP adresy. Pomocí databáze států a k nim přidělených IP adres se vybere ten, ke kterému IP adresa patří. Z toho se poté zjistí aktuální čas v dané lokaci a ten se pak porovná s hodnotou posílanou v hlavičce komunikace. Pokud hodnoty nesouhlasí, může to znamenat, že uživatel přistupuje z počítače umístěného v jiné zemi, než IP adresa, kterou používá.
6.3
Port scan
Jednou z dalších možností použitelných pro proxy servery je zpětné oskenování otevřených portů na přistupující IP adrese. Pokud má klient oveřené porty, které jsou známé svým využitím na proxy serverech, pak se nejspíše jedná o anonymizační službu. Možnými porty jsou: 8080, 80, 81, 1080, 6588, 8000, 3128, 553, 554, 4480.
6.4
Záznamy v rDNS
Některé proxy servery a výstupní brány mají zaregistrovaná doménová jména obsahující slovo "proxy", "anonymizer"nebo třeba "hide"ve svém názvu. Je zde tedy možnost vyhledání reverzních DNS záznamů (rDNS) patřících zfalšované IP adrese přistupujícího klienta. Pokud některý z těchto záznamů obsahuje slovo ze seznamu, je pravděpodobné, že jde o proxy server.
6.5
WIMIA
Test WIMIA (what is my IP address) byl poprvé použit na serveru http: //whatismyipaddress.com/proxy-check, kde se pomocí databáze uživatelů, kteří na stránku přistoupili předtím, vyhodnotí IP adresa klienta. Pokud je již uložena v databázi a je o ní známo, že na ni přistupují jiní lidé (pomocí jiných operačních systémů, jiných webových prohlížečů atd.), je pravděpodobné, že se jedná o IP adresu, na které běží proxy server.
6.6
Blacklist
Metoda použitelná především pro Tor síť, kdy jsou všechny exit routery známy. Pomocí seznamu IP adres dochází k blokaci uživatelů přistupujících z těchto výstupních bran. Takové řešení je využíváno především na IRC sítích, kde v minulosti docházelo k velkému využívání Toru ve spojení se spamovacími roboty.
60
Kapitola
Použití anonymizéru Jednou z částí této bakalářské práce je i popis použití výše zmíněných anonymizačních prostředků na operačních systémech Linux a Microsoft Windows. Popis je zaměřen především na často používané aplikace, jako jsou webové prohlížeče, programy pro IM a emailoví klienti. Nastavení v těchto programech je závislé na typu použitého anonymizéru. V případě proxy serveru a služeb, které využívají proxy rozhraní (Tor, I2P atd.) je potřeba, aby aplikace uměla komunikovat pomocí protokolu využívaného danou proxy. Pokud aplikace tuto komunikaci neumožňuje, je nasnadě použití nějakého programu, s jehož pomocí lze přemostit síťovou komunikaci vytvořenou aplikací. Pro VPN služby pak je nastavení jednoduché, pomocí VPN klienta dojde k vytvoření síťového rozhraní, na které bude směrován veškerý síťový provoz. Popis použití anonymizérů a nastavení ve vybraných programech je uveden v podkapitolách níže. Ať se jedná o jakoukoli aplikaci, vždy je doporučováno vypnout všechny části, jež nejsou bezpodmínečně nutné k jejímu běhu. Tím se sníží riziko, že bude zneužita chyba v některé z těchto součástí. U webových prohlížečů jsou to například pluginy pro čtení PDF souborů, Java applety atd.
7.1
Proxy
S anonymizační službou, jako je proxy a anonymizéry s proxy rozhraním, komunikují programy ve formě speciálního protokolu. Pro jejich použití lze v aplikaci nastavit adresu a port proxy serveru, popřípadě protokol, kterým má být komunikace prováděna. Příklad nastavení programu Mozzila Firefox pro použití SOCKS proxy serveru na adrese localhost a portu 90509 je na následujícím obrázku 7.1. V případě použití HTTP proxy je důležité zvolit použití tohoto nastavení i pro ostatní protokoly. Tím se zabrání odhalení pravé IP adresy při použití 9 Jedná se o adresu a port, na kterém defaultně běží proxy server klientské aplikace programu Tor.
61
7
7. Použití anonymizéru
Obrázek 7.1: Nastavení použití proxy v programu Mozzila Firefox.
jiného protokolu, než je HTTP. Pokud v aplikaci není implementován protokol pro proxy rozhraní, lze pomocí speciálního programu odchytit síťovou komunikaci a přeposlat ji na proxy server. Takovým programem je na Linuxu aplikace Proxychains, jejíž použití je zobrazeno na obrázku 5.10. Alternativou pro operační systém Microsoft Windows je například program SocksCap, který opět umožňuje přesměrování normálního síťového provozu přes proxy server. V současné době však již spousta aplikací umožňuje nastavit proxy rozhraní. Příklad nastavení v populárním IRC10 programu XChat znázorňuje obrázek 7.2.
Obrázek 7.2: Nastavení použití proxy v programu XChat. 10
62
Komunikační protokol pro komunikaci v reálném čase.
7.2. VPN
7.2
VPN
Druhým případem je použití VPN služeb. Jedná se o nastavení virtuální sítě, přes kterou bude směrován veškerý síťový provoz. Nastavení VPN je závislé na typu protokolu, který služba využívá a zároveň také na poskytovateli těchto služeb. U některých se dodává přímo specializovaný software, pomocí kterého se lze jednoduše připojit k VPN. Jiné zas využívají volně dostupných prostředků, jako je openSSH nebo PPTP klient. Po vytvoření virtuální sítě již není potřeba jakékoli konfigurace v používaných aplikacích. Jejich síťový provoz bude automaticky směrován přes šifrované spojení na nastavenou výstupní VPN bránu.
7.3
Tor
Tor v základní instalaci přichází spolu s bránou, jejíž použití v programech je identické, jako tomu bylo u SOCKS proxy serverů. V současnosti se také vyvíjí rozhraní (Orbot) použitelné přímo v podobě knihoven, které uživatelé mohou využít při tvorbě aplikace. Toto rozhraní je dostupné zatím jen pro operační systém Android. V základní verzi je na adrese localhost portu 9050 spuštěna SOCKS proxy, která směruje data do Tor sítě. Pro možnost ovládání onion proxy naslouchá na portu 9051 další aplikace, která umožňuje jednoduchou správu vytvořeného okruhu.
7.4
I2P
Protunelovat síťové spojení aplikace přes I2P jde hned několika způsoby. Pomocí administračního rozhraní (obrázek 7.3) lze nastavit několik typů proxy serverů přístupných pouze z localhostu. Takto nastavená rozhraní poté naslouchají na zvoleném portu na adrese localhost. Nastavení v aplikacích je poté identické jako u ostatních anonymizérů. Pro každou takto vytvořenou bránu se vytvoří vstupní a výstupní tunel z náhodně zvolených routerů v síti. Při prvním spuštění I2P klienta dochází k synchronizaci a vyhledávání ostatních routerů v okolí. Může tedy chvíli trvat, než se klient plně integruje do celé sítě.
63
7. Použití anonymizéru
Obrázek 7.3: Vytvořená vstupní rozhraní v nastavení I2P.
64
Kapitola
Ostatní anonymizační nástroje a koncepty 8.1
Remailery
Pro možnost posílání anonymních emailů byly vytvořeny tzv. remailery. Jde o speciální emailové služby, které (obdobně jako u proxy serverů) slouží jako prostředník v emailové komunikaci. Nejčastěji fungují na tom principu, že přijmou jim adresovaný email, který poté přepošlou na adresu uvedenou v hlavičce nebo těle zprávy. Namísto emailu pravého odesílatele je pak uvedena adresa remaileru.
8.2
Anonymní emailové schránky
Velmi často se vyskytne potřeba vlastnit anonymní schránku. To může být vhodné zejména pro lidi, kterým má být doručen email, jehož autor nesmí znát identitu příjemce. Jiným důvodem k použití může být například ochrana před spamem. Uživatel zamlčí svou pravou emailovou adresu a nevyžádaná pošta tak bude chodit na zfalšovaný email. Anonymní emailové schránky se staly řešením této potřeby. Nejčastěji se jedná o webové aplikace velmi podobné webmail aplikacím. Rozdílem je pak to, že při přístupu do schránky nepožadují žádné přihlášení.
8.3
Anonymní měna
Plně anonymní svět by se ovšem neobešel bez možnosti převodu financí, aniž by uživatel musel odhalit svou identitu. Pro takovou možnost platby na internetu byla vynalezena plně anonymní měna nazvaná BitCoin. Přišel s ní člověk pod pseudonymem Satoshi Nakamoto, který se, stejně jako vývojáři onion routingu, nechal inspirovat mixovacími sítěmi. Pomocí takové měny je 65
8
8. Ostatní anonymizační nástroje a koncepty možné přeposlat peníze mezi dvěma uživateli kdekoli na světě, kdy ani jeden z nich nebude znát pravou identitu toho druhého. I přesto, že je projekt zatím relativně nový, jsou již BitCoinové peníze směnitelné za americké dolary nebo eura. Budoucnost je však velice spekulativní. Protože jde o nadnárodní neregulovanou měnu, jeho použití může být zneužito k financování nelegálních aktivit, aniž by se dala vysledovat historie těchto transakcí. Také mnoho států ji odmítá z důvodu, že ji nemohou nijak regulovat a tím nemohou ovládat ani míru inflace na svém území.
66
Kapitola
Testování bezpečnosti Pro otestování bezpečnosti anonymizačních nástrojů bylo vybráno několik z výše popsaných útoků. Mnoho zmíněných technik je velmi finančně, ale i časově náročné, proto se toto testování omezí jen na malé množství testů, jejichž splnění je reálné s dostupnými prostředky. Testování bylo prováděno na notebooku Lenovo T520 se systémem OS Linux Ubuntu 10.04.2 LTS. Jako druhý testovací stroj byl použit Lenovo IdeaPad s10e s operačním systémem Microsoft Windows. Pro logování přístupů a hostování některých aplikací byl použit virtuální stroj se systémem Debian 6.0 a veřejnou IP adresou přístupnou z internetu.
9.1
Webová proxy
Pro první test byla vybrána webová proxy na adrese http://anonymizer.in/ anonymizer/ nastavená tak, aby neodstraňovala JavaScriptový kód ze stránky přeposílané uživateli. V prohlížeči na straně uživatele došlo k vykonání tohoto kódu, čímž se podařilo vytvořit tunel na server bez použití proxy. Na obrázku 9.1 je zobrazen access log webového serveru, z kterého byla stáhnuta HTML stránka z falešné IP adresy. Script vykonaný na straně uživatele poté přímou cestou zažádal o další stránku (test.php) a obešel tím použití webové proxy.
9.2
Java applet
Pro druhý test byl vytvořen jednoduchý Java applet, jehož jediným úkolem je připojit se k virtuálnímu serveru na port 80, kde dojde k zalogování tohoto požadavku. Pro přístup na stránku s appletem byl využit program Tor s prohlížečem Opera 11.64. Opět došlo k načtení stránky z falešné IP adresy, stáhnutí appletu a jím provedené spojení už ale bylo bez použití proxy. Java není nutnou podmínkou pro tento typ útoku. Lze využít i jiných pluginů, z nejčastějších to jsou Adobe Flash, Silverlight a podobně. 67
9
9. Testování bezpečnosti
Obrázek 9.1: Access log zobrazující přístup uživatele nejprve z webové proxy a poté přímou cestou za použití JavaScriptu.
9.3
PDF exploit
Jako další test je uvedeno zneužití chyby v programu Adobe PDF na čtení PDF souborů. Pomocí nástroje metasploit11 byl vytvořen PDF soubor s nainjectovaným shell kódem, při jehož otevření v aplikaci Adobe PDF došlo k vytvoření spojení na předem definovaný počítač bez použití proxy serveru. Tím došlo k odhalení pravé IP adresy uživatele. Pomocí tohoto spojení (na obrázku 9.2) má útočník také plnou kontrolu nad počítačem oběti.
Obrázek 9.2: Spojení s napadeným počítačem. Útočník má pomocí reverzního TCP spojení plnou kontrolu nad napadeným PC. Chyba v Adobe PDF je již delší dobu známa. Stažení infikovaného souboru by tedy měl odhalit každý lepší antivirový program. Zároveň byla vydána i záplata, která zabraňuje zneužití této chyby ve zmíněné aplikaci. Popsaný test ovšem ukazuje, že kromě samotného prohlížeče, i další programy mohou mít zásadní vliv na poskytnutou anonymitu. 11
68
Bezpečnostní framework obsahující nástroje pro penetrační testování.
Kapitola
Srovnání prostředků Pro porovnání prostředků jsem zvolil ukazatele zobrazující kvalitu v podobě bezpečnosti, cenu a výkon. Zároveň jsem hodnotil pouze služby poskytované zdarma z důvodu dostupnosti a finanční stránky věci.
10.1
Kvalita
Kvalitou a bezpečností se jednotlivé nástroje velmi liší. U proxy serverů a VPN služeb nabízených zdarma je nejistota, zda nedochází k ukládání logů komunikace. Zároveň poskytované služby jsou často omezené šířkou pásma nebo dobou, po kterou jsou aktivní. Spolehlivost těchto služeb je tedy velmi nízká. Anonymní sítě Tor, I2P a podobné se snaží vyřešit problém s logování na jednotlivých routerech v síti. Avšak pro vyšší anonymitu byla obětována použitelnost těchto služeb, kdy kvůli směrování dat mezi jednotlivými routery vzrostla latence celé komunikace. Zároveň míra poskytnuté anonymity je velmi závislá na velikosti takové sítě a protože se I2P i Tor řadí do menších sítí, s dostatečnými zdroji je možné prolomit i tyto služby. Placené VPN, proxy nebo sítě, jako je například JonDonym, poskytují svým uživatelům již služby vyšší kvality. Díky lepšímu finančnímu zázemí jsou schopny pokrýt uživatelské potřeby ve formě větší propustnosti a bezpečnosti služeb. Současně poskytovatelé placených služeb prohlašují o svých službách, že trpí absencí veškerých logů, které by v případě vyšetřování mohly vést až ke svým uživatelům. Kvalita anonymizérů je omezena také legislativou země, v které jsou tyto služby provozovány. Pokud má poskytovatel právní povinnost předat jakékoli uživatelské informace, které vlastní, patřičným orgánům, je jen otázkou, kolik těchto informací vlastně má. Pro větší bezpečnost je tedy doporučeno využívat služeb v zemích, kde je vysoce ceněno soukromí osob. 69
10
10. Srovnání prostředků
10.2
Výkon
Jednou z hodnocených veličin je také rychlost stahování, kterou služby nabízí. Pro změření rychlosti downloadu byl na virtuálním serveru umístěn 10Mb veliký soubor obsahující náhodně vygenerovaná data. Na lokálním počítači byl poté spuštěn speciální script, jehož úkolem je stáhnout tento soubor a vypsat naměřenou rychlost. Tento program byl spuštěn pro jednotlivé výše popsané anonymizéry. Pro test byl vybrán poskytovatel VPN služeb nazvaný SecurityKISS. Poskytovatele testovaného proxy rozhraní pak představuje nezisková organizace Torservers.net. Naměřené výsledky byly zapsány v tabulce níže. Tabulka 10.1: Rychlost stahování u jednotlivých anonymizérů. Přímá cesta Tor I2P Proxy VPN
1172.48 Kb/s 303.8 Kb/s 20.03 Kb/s 70.63 Kb/s 633.78 Kb/s
Do testování nebyl schválně zařazen anonymizační nástroj JAP z důvodu omezení na velikost stahovaného souboru12 . Zároveň uvedené hodnoty jsou pouze orientační. Anonymizační sítě jsou velmi dynamické struktury. Vytvořené cesty, které byly použity pro účely testování, nemusí v budoucnu fungovat. Zároveň se při příštím spojení může vytvořit cesta nová a tím bude jiná i latence. Stejně tak u proxy serveru mohou být výsledky různé v závislosti na zvoleném poskytovateli. U placených služeb je rychlost samozřejmě vyšší.
10.3
Cena
V případě srovnání ceny jsou zde proxy a VPN služby poskytované zdarma, bezpečnost a kvalita těchto služeb je však velmi nízká. Zároveň jsou zde zdarma nabízené anonymizační sítě jako je Tor nebo I2P, ani ty však nejsou doporučeny pro vysoký stupeň anonymity. Svou rozsáhlostí a složitostí trpí na četné bezpečnostní chyby vzniklé při programové realizaci nebo přímo při návrhu jejich základního konceptu. V případě placených služeb jsou zde již lepší výsledky. Pro vysoký stupeň zabezpečení se doporučuje využít spíše některých z placených VPN. Ty jsou placené za poskytnutí anonymity, s čímž souvisí i mazání záznamů o uživatelských aktivitách.
12
70
Maximální velikost jsou 2Mb.
Závěr V této bakalářské práci jsem se snažil popsat nástroje, s jejichž pomocí lze dosáhnout anonymity na internetu. Záměrně jsem neuvedl výčet společností, které tyto prostředky poskytují. Takové seznamy se rychle mění, kvalita upadá a naopak nové vznikají. Uvedením takového seznamu by tato práce zanedlouho ztratila na aktuálnosti. Zaměřil jsem se tedy spíše na popis jednotlivých konceptů, které má uživatel k dispozici a může je tak využít pro své potřeby. Popsal jsem jejich strukturu, výhody i nevýhody a známé útoky, z nichž některé jsem se pokusil pro studijní účely zrealizovat. Během psaní této práce jsem si také uvědomil, že anonymizace není tak úplně triviální záležitost. Opravdové anonymity uživatel dosáhne jen tak, že bude neustále držet krok s moderními technickými trendy a do jisté míry také změní styl svého života. I přesto, že se bude snažit sebevíc, vždy zde bude možnost, jak takto nabytou anonymitu prolomit. Pokud bych měl zhodnotit popsané prostředky a vybrat z nich právě jeden, který bych použil já osobně, vybral bych službu VPN. Z popisovaných možností, Tor ani I2P nemají takový výkon, aby pokryly mé potřeby. Zároveň jde o velmi složité koncepty, které spolu se svou rozsáhlostí přináší i řadu bezpečnostních chyb. Ani jednoduché proxy nemají takové možnosti a bezpečnost, které poskytuje VPN. Otázkou zůstává, kterou společnost bych zvolil, jako svého poskytovatele anonymizačních služeb. Po měsících bádání a sledování aktuálního stavu těchto společností ve světě jsem dospěl k názoru, že i velká společnost, s kterou jsou lidé dlouhodobě spokojeni, může jednou zradit své uživatele. Jediným spolehlivým poskytovatelem je tedy člověk sám, jen u sebe totiž má jistotu absence veškerých záznamů, které by ho později mohly identifikovat. Tato bakalářská práce pro mě však měla i jiný přínos. Pomocí veřejných komunikačních kanálů jsem poznal vývojáře a širokou komunitu, která kolem anonymizačních nástrojů vznikla. Poznal jsem jejich jiskru, s kterou každý den přispívají pro zlepšení těchto služeb a tím se tak snaží zlepšit svět. Budoucnost anonymity na internetu je také otázkou. Stejně tak, jako internet samotný, vše se velmi rychle vyvíjí a nikdo nemůže vědět, co se stane zítra, natož v přístích měsících.
71
Literatura (1) History of Onion Routing. http://onionrouting.wikia.com/wiki/ History_of_Onion_Routing. (2) I2P Anonymous Network. http://www.i2p2.de/. (3) Onion Routing Brief Selected History. http://www.onion-router.net/ History.html. (4) Tor Metrics Portal: Network. https://metrics.torproject.org/ network.html. (5) Tor Metrics Portal: Users. https://metrics.torproject.org/users. html. (6) Using PHProxy. http://booki.flossmanuals.net/ circumvention-tools/_draft/_v/1.0/using-phproxy/. (7) Anonym durchs Web. http://www.chip.de/artikel/ Download-Special-Gratis-Spurenvernichter-4_18841612.html, 2006. (8) Tunnel Implementation. http://www.i2p2.de/tunnel-alt.html, 2010. (9) ANONdroid v. 00.00.008 : JonDonym proxy client for Android released. http://thehackernews.com/2011/12/ anondroid-v-0000008-jondonym-proxy.html, 2011. (10) Tor / Vidalia software bundle for Windows - latest stable version - mirror copies. https://p10.secure.hostingprod.com/@spyblog.org.uk/ ssl/anonion/index.html, 2012. (11) Anderson, N.: How one man tracked down Anonymous—and paid a heavy price. http://arstechnica.com/tech-policy/2011/02/ how-one-security-firm-tracked-anonymousand-paid-a-heavy-price/, 2011. (12) Dehn, G.: Whistleblowing: A New Perspective. iacconference.org/ documents/cs60a.pdf, 2001. 73
Literatura (13) Dingledine, R.; Mathewson, N.; Syverson, P.: Tor: The SecondGeneration Onion Router. In Proceedings of the 13th USENIX Security Symposium, August 2004. (14) Evans, N.; Dingledine, R.; Grothoff, C.: A Practical Congestion Attack on Tor Using Long Paths. In Proceedings of the 18th USENIX Security Symposium, August 2009. (15) Foundation, E. F.: Panopticlick. https://panopticlick.eff.org/. (16) Freislebenová, Z.: ŘEŠENÍ PROBLÉMU LATERALITY Z HLEDISKA VÝKONU POVOLÁNÍ. http://is.muni.cz/th/322067/pedf_b/ Bakalarska_prace.txt, 2011. (17) G, T.; Abbott; Lai, K. J.; aj.: Browser-Based Attacks on Tor. In Proceedings of the Seventh Workshop on Privacy Enhancing Technologies (PET 2007), editace N. Borisov; P. Golle, Ottawa, Canada: Springer, June 2007. (18) Nathan S. Evans, C. G., Roger Dingledine: A Practical Congestion Attack on Tor Using Long Paths. grothoff.org/christian/tor.pdf. (19) Palme, J.: Anonymity. In Anonymity on the Internet, duben 2012.
74
Příloha
Seznam použitých zkratek AES Advanced Encryption Standard CPU Central Processing Unit DDoS Distributed Denial of Service DNS Domain Name System ER Exit Router FTP File Transfer Protocol HS Hidden Service HTTPS Hypertext Transfer Protocol Secure HTTP Hypertext Transfer Protocol I2P Invisible Internet Project ICQ I Seek You IM Instant Messaging IP Internet Protocol IPsec IP Security IRC Internet Relay Chat ISP Internet Service Provider JAP Java Anonymous Proxy NAT Network Address Rranslation OP Onion proxy 75
A
A. Seznam použitých zkratek OR Onion router OS Operating system P2P Peer-to-peer PDF Portable Document Format PHP Hypertext Preprocessor PPTP Point-to-Point Tunneling Protocol rDNS Reverse DNS SMTP Simple Mail Tansfer Protocol SOCKS SOCKet Secure SSH Secure Shell SSL Secure Sockets Layer TCP Transmission Control Protocol TLS Transport Layer Security Tor The Onion Router UDP User Datagram Protocol URL Uniform Resource Locator VPN Virtual Private Network
76
Příloha
Obsah přiloženého CD
readme.txt...................................stručný popis obsahu CD src impl ........................................... zdrojové kódy testů thesis ...................... zdrojová forma práce ve formátu LATEX text ....................................................... text práce thesis.pdf ............................. text práce ve formátu PDF thesis.ps ................................ text práce ve formátu PS 77
B