Hlavní navigace

Provoz anonymního serveru v doméně .onion přes Tor

S přibývajícími snahami se směšnými názvy SOPA, ACTA a PIPA, jejichž záměr ale zas tak vtipný není, se budou čím dál častěji objevovat požadavky o anonymizaci uživatelů. Pro ně existuje dostatek funkčních řešení, ale co servery? Ty jsou podstatně víc na ráně a snadno se vypínají. Naštěstí i tohle řeší Tor.

Tweetni to Odměnte autora  Jak to funguje?

SOPA, PIPA, ACTA a další podobné zákony se snaží zatočit s ilegálním sdílením obsahu, ale zároveň přitom útočí na svobodu slova a z onoho „káceného lesa“ lítají pořádně velké třísky. Poškodí to tedy nejen ty, kteří porušují autorská práva, ale ve výsledku všechny, kteří chtějí sdílet jakoukoliv citlivou informaci.

Pokud tedy chceme sdílet nějaké citlivé informace, jsme postaveni před poměrně zásadní otázku: Jak to udělat anonymně? Řekněme, že se nám do rukou dostala nová podoba smlouvy ACTA, kterou se snaží jednající strany utajit (ACTA byla skutečně původně projednávána tajně – pozn. autora). Těžko ji jen tak vystavíme na svůj blog nebo své rodinné stránky. To by mělo dvě nevýhody: takový web se dá rychle vypnout a zároveň je možné jednoduše dohledat toho, kdo dokument zveřejnil.

Tor: nejen tam, ale i ven

O známé anonymizační síti Tor toho už bylo napsáno hodně, před několika lety jsme podrobně popsali princippoužití ve Firefoxu. Teď tedy jen velmi stručně k principu. Jedná se o neorganizovanou síť počítačů, které fungují jako přestupní uzly a dokáží příchozí data předat dalšímu uzlu v řadě. Klient, který chce komunikovat anonymně, si z těchto uzlů vytvoří náhodnou trasu, přes kterou nechá svá data směrovat. Aby ani uzly nevěděly, kdo, kam a co posílá, zašifruje klient svá data několikrát za sebou. Výsledek je proto zabalený jako cibule (proto The Onion Router – Cibulový směrovač).

Každý uzel v řadě dokáže dešifrovat jen vrchní slupku, pod kterou se ukrývá informace o tom, kam dál má balík dat poslat. Každý router tedy zná předchozí i následující krok, ale nezná celou trasu, neví, co se přenáší, odkud to bylo vysláno, ani kde to nakonec skončí. Až poslední uzel totiž vybalí finální data (aniž to předem tušil) s cílovou adresou. Navíc se celá trasa průběžně mění a i konečný obsah může být zašifrovaný. Tolik ve stručnosti k principu Toru.

Obvykle je Tor nasazován na uživatelské straně, aby se uživatel ukryl před zvědavými zraky svého poskytovatele a/nebo správce serveru, se kterým hodlá komunikovat. Poskytovatel uvidí jen šifrovanou komunikaci s různými počítači po celém světě, správce serveru uvidí příchozí požadavek třeba odněkud z Irska, ale nebude schopen zjistit, kdo doopravdy data stahuje.

Přestože je výše zmíněný případ standardním nasazením, je možné to udělat i obráceně: za síť Tor ukrýt i samotný server. Pokud tedy bude Tor nasazen na obou stranách jako komunikační rozhraní, nebude ani jedna strana vědět o té druhé vůbec nic. Tedy kromě toho, že existuje. Ani klient ani server nebudou identifikovatelní, protože budou ukryti za vrstvou anonymizačních uzlů, které jim zprostředkují komunikaci.

Praxe aneb jako se .cz mění v .onion

Abyste mohli ukrýt svůj server za Tor, musíte nejprve nějaký server mít. Tor nijak neomezuje provozované služby, nemusíte se tedy spokojit jen s HTTP, můžete používat i SSH, SMTP, IMAP4 a cokoliv dalšího vás napadne. To podstatné je, že nebudete prozrazovat svou IP adresu, protože budete provozovat skrytou službu (anglicky hidden service).

Předpokládejme, že máte funkční server a na něm na localhostu běží na portu 8080 webový server a také na 2222 provozujete SSH. Obojí chcete sdílet anonymně. Samozřejmě je jedno, na kterém portu služby poběží, můžete klidně zachovat standardní porty. Pro názornost ale budeme uvažovat tyto pozměněné porty.

Budeme také potřebovat balíček Tor, zcela jistě ho najdete ve své distribuci. V Debianu stačí nainstalovat stejnojmenný balíček tor. Poté musíte zeditovat konfiguraci a přidat do ní novou skrytou službu. Otevřete proto soubor /etc/tor/torrc a přidejte (nebo odkomentujte a upravte) následující řádky:

HiddenServiceDir /var/lib/tor/mujtorserver/
HiddenServicePort 80 127.0.0.1:8080
HiddenServicePort 22 127.0.0.1:2222

Těchto sekcí můžete mít ve své konfiguraci samozřejmě neomezený počet. Každá z nich pak bude reprezentovat jeden skrytý server. Na něj pak budou vždy vyvedeny ty reálné porty, které si určíte. Samozřejmě musíte pro každou skrytou službu vybrat jiný adresář. Ten musí být navíc zapisovatelný uživatelem, pod kterým Tor běží.

Teď už stačí jen Tor klienta restartovat a služba je na světě. Vytvoří se vám další rozhraní, ke kterému se budou moci uživatelé připojovat přes Tor. Na něm bude na port 80 přesměrován váš web server a na portu 22 se budete moci spojit skrze SSH. Protože vše běží přes Tor, nemusí mít váš server ani veřejnou IP adresu. Službu tedy můžete klidně provozovat doma na svém notebooku.

Aby uživatelé měli možnost se vůbec připojit, budou potřebovat speciální Tor adresu. Tu naleznete právě v adresáři /var/lib/tor/mujtorserver/, který jste zadali v konfiguraci. Tam naleznete dva důležité soubory: private_key a hostname. První jmenovaný obsahuje veřejný a tajný klíč k vaší službě. Nesmíte ho dát z ruky, jinak může být vaše identita vyzrazena (viz další kapitolu).

Nás teď ale bude zajímat soubor hostname. Jedná se o textový soubor, který obsahuje doménové jméno vaší nové skryté služby. To není zařazeno do globálního DNS systému, ale jen do Toru. Používá doménu prvního řádu .onion a má tvar například: duskgytldkxiuqc6.onion. Pokud jej uživatel zadá na běžném počítači, samozřejmě se nikam nedostane. Pokud má ale nainstalovaný Tor, bude připojen k vašemu skrytému serveru. Toto nové jméno skryté služby můžete bez problémů rozdávat.

Co když uživatel nemá Tor?

To se týká situace Tor2Tor, tedy kdy uživatel také používá Tor. Obě strany jsou tak plně anonymní a neví nic o svých pravých IP adresách. Existuje ovšem mnoho situací, kdy takto robustní řešení nepotřebujeme. Nechceme nutit uživatele používat Tor, aby se podívali na náš obsah a stáhli si ho. Pokud v takovém modelu není třeba zajistit anonymitu uživatelů, je možné využít webovou Tor proxy.

Ta provede „překlad“ z Toru do běžného webu. Nijak se tím neomezují uživatelé, kteří chtějí Tor použít, ti stále mohou zůstat anonymní. Nejznámější službou tohoto typu je tor2web.org. Používá se velmi jednoduše: jako doménu třetího řádu uvedete onion hostname. Navštívíte tedy adresu ve tvaru duskgytldkxiuq­c6.tor2web.org a dostanete se na server za Torem, přičemž spojení vám zprostředkuje zmíněná webová služba. Pozor ovšem na to, že jako uživatel nejste anonymní.

Další podobnou službou je Onion.to. Funguje úplně stejně, můžete tedy navštívit testovací stránku duskgytldkxiuq­c6.onion.to. Opět byste měli vidět obsah i bez Tor klienta.

Jak to funguje?

Ukázali jsme si, jak se taková skrytá služba realizuje, vy se teď ale určitě ptáte: „Je to skutečně tak bezpečné a anonymní?“ Abychom to zjistili, musíme pochopit, jak skryté služby v Toru fungují. Už jsme si vysvětlili jejich praktickou realizaci a teď se zase ponoříme do nudné (i když v tomto případě spíše zajímavé) teorie.

Aby byla skrytá služba dostupná, musí mít uživatelé možnost ji kontaktovat. Server si při vytváření služby náhodně vybere několik uzlů sítě Tor, představí se jim a vytvoří si s nimi trvalé tunely. Tyto tunely samozřejmě běží přes další Tor uzly, takže vše je stále anonymní. Vybrané uzly tedy netuší, kdo je přesně kontaktoval.

Skrytý server předá vybraným uzlům svůj veřejný klíč a požádá je, aby fungovaly jako „randevů body“, tedy místa setkání. Přes tyto body a jejich tunely je tedy možné server nakonec kontaktovat. Aby se uživatelé (respektive klientské aplikace) dozvěděly, které body to vlastně jsou, vznikne takzvaný „hidden service descriptor“ čili popis skryté služby. To je soubor obsahující informace o místech setkání, který je podepsán privátním klíčem serveru.

Tento soubor dat je poté (opět anonymně) pomocí speciálního protokolu vložen do distribuované hash tabulky, která je v Tor síti dostupná a obsahuje seznam všech podobných skrytých služeb. Aby byla v tabulce služba identifikovatelná, používá se otisk veřejného klíče, který už jsme viděli jako šestnáctiznakové doménové jméno. Toto jméno je tedy unikátně spojeno s podepsaným záznamem v hash tabulce a tento záznam vás zase dovede ke kýženým vstupním bodům, které vás spojí se samotným serverem. Pokud se chcete dozvědět o spojení další detaily, doporučuji dokumentaci k Toru.

Z toho plyne několik důležitých věcí. Zcela zásadní v tomto systému je pár veřejného a privátního klíče. Pokud byste jej ze serveru ztratili, někdo by se mohl vydávat za vaši službu a fungovat třeba jako man-in-the-middle. Vydal by totiž nové pokyny místům setkání a vytvořil by vlastní tunely i záznam v hash tabulce s vašim podpisem.

Za druhé doménové jméno .onion je pevně svázáno s těmito klíči. Pokud tedy chcete zajistit dostupnost své služby kdykoliv v budoucnu, určitě si soubor s klíči dobře zálohujte. Pokud o ně přijdete, nebudete schopni znovu vytvořit skrytou službu se stejným jménem a přijdete tak o uživatele, kterým budete muset znovu distribuovat nové doménové jméno.

Anonymita skrze Tor je tedy zajištěna poměrně dobře, ale musíme si uvědomit, že existuje celá řada pastí. Kromě zmíněné ztráty privátního klíče je tu především riziko v napadení vašeho serveru. Pokud se útočník připojí přes Tor a podaří se mu získat plný přístup k systému, může se podívat na reálnou IP adresu stroje. Je proto třeba zajistit takové prostředí, aby to buď nebylo možné (virtualizace, zamezení přístupu k jiným než Tor serverům a podobně), nebo aby to bylo co nejkomplikovanější. Bezpečnost serveru je už ale nad rámec tohoto článku.

Pomalu, ale jistě

Je třeba počítat s tím, že podobný anonymní přístup je výrazně pomalejší než klasické přímé připojení k serveru. Jednak je třeba navázat řadu spojení navíc, mnohokrát šifrovat a dešifrovat, ale hlavně je síť Tor poměrně zatížená. Pokud však potřebujete světu předat data anonymně nebo pustit uživatele do tajného prostoru, jedná se o velmi atraktivní možnost.

Výhodou je, že v případě potřeby může být anonymní i uživatel, ale díky webovým Tor proxy to není nutný požadavek. Můžete zachovat i uživatelsky poměrně přívětivý přístup. Nezapomeňte také, že můžete Tor síti pomoci tím, že vytvoříte další z mnoha uzlů, které jej obsluhují. Pomůžete ostatním, ale i sami sobě.

Petr Krčmář

Petr Krčmář

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Vystudoval elektroniku se zaměřením na počítačové systémy, nyní se zabývá médii, především těmi elektronickými.

Ohodnoťte jako ve škole:
Průměrná známka 1,30
Tweetni to Odměnte autora  Jak to funguje?

Zabezpečení TCP/IP na Linuxu - třídenní workshop

V tomto praktickém workshopu se podíváme na počítačovou síť z hlediska zabezpečení. Předvedeme si vybrané druhy útoků a zkusíme si proti nim vytvořit obranu.

       

Přehled názorů

inu..
KapitánRUM 1. 2. 2012 00:44
Nový
├ 
Re: inu..
martin 1. 2. 2012 01:14
Nový
├ 
Re: inu..
fikejz 1. 2. 2012 02:14
Nový
│
└ 
Re: inu..
asdf 1. 2. 2012 08:19
Nový
└ 
Re: inu..
FerdaBrabenec 6. 2. 2012 16:41
Nový
Bezpečnost
Plague 1. 2. 2012 01:46
Nový
└ 
Re: Bezpečnost
tuxmartin :-) 1. 2. 2012 02:06
Nový
 
├ 
Re: Bezpečnost
Anonym 1. 2. 2012 08:24
Nový
 
└ 
Re: Bezpečnost
pepazdepa 1. 2. 2012 08:46
Nový
 
 
├ 
Re: Bezpečnost
Jan Ťulák 1. 2. 2012 09:44
Nový
 
 
│
└ 
Re: Bezpečnost
Zoner 1. 2. 2012 20:27
Nový
 
 
└ 
Re: Bezpečnost
28c3 1. 2. 2012 13:45
Nový
Aktualita balicku v distribucich
OR 1. 2. 2012 01:47
Nový
├ 
Re: Aktualita balicku v distribucich
jehovista 1. 2. 2012 02:29
Nový
│
├ 
Re: Aktualita balicku v distribucich
OR 1. 2. 2012 02:40
Nový
│
└ 
Re: Aktualita balicku v distribucich
jan krcmar 1. 2. 2012 13:20
Nový
└ 
Re: Aktualita balicku v distribucich
pb. 1. 2. 2012 06:19
Nový
 
└ 
Re: Aktualita balicku v distribucich
_pepak 1. 2. 2012 08:29
Nový
 
 
└ 
Re: Aktualita balicku v distribucich
pb. 1. 2. 2012 08:47
Nový
 
 
 
└ 
Re: Aktualita balicku v distribucich
28c3 1. 2. 2012 13:59
Nový
Zistenie používania
Vadimo 1. 2. 2012 07:22
Nový
├ 
Re: Zistenie používania
LaZ 1. 2. 2012 07:48
Nový
│
└ 
Re: Zistenie používania
OR 1. 2. 2012 14:28
Nový
├ 
Re: Zistenie používania
x 1. 2. 2012 15:33
Nový
└ 
Re: Zistenie používania
Zoner 1. 2. 2012 21:02
Nový
 
└ 
Re: Zistenie používania
Epsi 2. 2. 2012 07:15
Nový
Freenet
Epsi 1. 2. 2012 07:39
Nový
└ 
Re: Freenet
cronjob 1. 2. 2012 09:21
Nový
 
├ 
Re: Freenet
Epsi 1. 2. 2012 11:38
Nový
 
├ 
Re: Freenet
x 1. 2. 2012 15:36
Nový
 
└ 
Re: Freenet
Falke 1. 2. 2012 16:35
Nový
 
 
└ 
Re: Freenet
Linuxový otaku. 1. 2. 2012 20:35
Nový
Rychlost
Pindal 1. 2. 2012 07:46
Nový
└ 
Re: Rychlost
MilanK 1. 2. 2012 09:26
Nový
 
├ 
Re: Rychlost
xmrk 1. 2. 2012 10:07
Nový
 
└ 
Re: Rychlost
x 1. 2. 2012 15:38
Nový
 
 
└ 
Re: Rychlost
HH 1. 2. 2012 16:14
Nový
 
 
 
└ 
Re: Rychlost
MilanK 1. 2. 2012 17:11
Nový
 
 
 
 
├ 
Re: Rychlost
JardaP . 1. 2. 2012 17:47
Nový
 
 
 
 
│
└ 
Re: Rychlost
SPECZ 3. 2. 2012 11:52
Nový
 
 
 
 
└ 
Re: Rychlost
OR 2. 2. 2012 14:24
Nový
Srab
Ja 1. 2. 2012 09:33
Nový
├ 
Re: Srab
MilanK 1. 2. 2012 09:48
Nový
│
└ 
Re: Srab
SPECZ 3. 2. 2012 11:54
Nový
└ 
Re: Srab
Jan Ťulák 1. 2. 2012 09:50
Nový
 
├ 
Re: Srab
xmrk 1. 2. 2012 10:11
Nový
 
│
└ 
Re: Srab
wellczech 1. 2. 2012 17:13
Nový
 
└ 
Re: Srab
_pepak 1. 2. 2012 10:22
Nový
 
 
└ 
Re: Srab
x 1. 2. 2012 15:42
Nový
 
 
 
└ 
Re: Srab
_pepak 1. 2. 2012 16:33
Nový
 
 
 
 
└ 
Re: Srab
Falke 1. 2. 2012 17:31
Nový
 
 
 
 
 
├ 
Re: Srab
Lukas 1. 2. 2012 23:11
Nový
 
 
 
 
 
│
└ 
Re: Srab
Lukas 1. 2. 2012 23:13
Nový
 
 
 
 
 
│
 
└ 
Re: Srab
KapitánRUM 1. 2. 2012 23:29
Nový
 
 
 
 
 
└ 
Re: Srab
Anonym 2. 2. 2012 08:20
Nový
 
 
 
 
 
 
└ 
Re: Srab
Sten 2. 2. 2012 13:46
Nový
 
 
 
 
 
 
 
└ 
Re: Srab
xmrk 2. 2. 2012 16:10
Nový
 
 
 
 
 
 
 
 
└ 
Re: Srab
SPECZ 3. 2. 2012 12:03
Nový
zajima prednaska o tom jak se blokoval tor
PANiKA 1. 2. 2012 10:05
Nový
├ 
Re: zajima prednaska o tom jak se blokoval tor
Khj 1. 2. 2012 10:23
Nový
└ 
Re: zajima prednaska o tom jak se blokoval tor
Khj 1. 2. 2012 10:23
Nový
 
└ 
Re: zajima prednaska o tom jak se blokoval tor
Milank 2. 2. 2012 08:44
Nový
Freenet project
Shaman79 1. 2. 2012 10:07
Nový
└ 
Re: Freenet project
Sten 1. 2. 2012 13:16
Nový
Re: Provoz anonymního serveru v doméně .onion přes Tor
JardaP . 1. 2. 2012 12:04
Nový
EXPERIMENTAL SOFTWARE
visudo 1. 2. 2012 15:16
Nový
SSL pro weby Internet Info?
OR 1. 2. 2012 15:44
Nový
└ 
Re: SSL pro weby Internet Info?
Petr Krčmář 1. 2. 2012 15:48
Nový
 
├ 
Re: SSL pro weby Internet Info?
Radovan Garabík 1. 2. 2012 16:04
Nový
 
├ 
Re: SSL pro weby Internet Info?
x 1. 2. 2012 16:19
Nový
 
├ 
Re: SSL pro weby Internet Info?
OR 1. 2. 2012 16:56
Nový
 
└ 
Re: SSL pro weby Internet Info?
gsdfgsdfgsd 7. 2. 2012 15:03
Nový
4 znaky
Zdenek - 1. 2. 2012 18:47
Nový
tak vím nevím je ten tor vůbec svobodnej???
...lk... 1. 2. 2012 21:39
Nový
└ 
Re: tak vím nevím je ten tor vůbec svobodnej???
OR 2. 2. 2012 13:56
Nový
I2P...
Rivon 1. 2. 2012 21:52
Nový
└ 
Re: I2P...
Jerry12 2. 2. 2012 17:27
Nový
Jsem proti ACTA, ale odměnu si autoři zaslouží!
Linuxový otaku. 1. 2. 2012 23:10
Nový
└ 
Re: Jsem proti ACTA, ale odměnu si autoři zaslouží!
OR 2. 2. 2012 14:14
Nový
 
└ 
Re: Jsem proti ACTA, ale odměnu si autoři zaslouží!
Sten 2. 2. 2012 16:33
Nový
 
 
└ 
Re: Jsem proti ACTA, ale odměnu si autoři zaslouží!
Tom 5. 2. 2012 17:06
Nový
 
 
 
└ 
Re: Jsem proti ACTA, ale odměnu si autoři zaslouží!
Sten 5. 2. 2012 19:28
Nový
 
 
 
 
└ 
Re: Jsem proti ACTA, ale odměnu si autoři zaslouží!
j 6. 2. 2012 16:12
Nový
Vzkaz pro p. Krcmare - bude pokracovani ??
onion_world 2. 2. 2012 07:35
Nový
├ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
onion_world 2. 2. 2012 07:38
Nový
├ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
Peter S. 2. 2. 2012 12:07
Nový
│
└ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
onion_world 2. 2. 2012 14:50
Nový
│
 
└ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
Peter S. 2. 2. 2012 22:06
Nový
│
 
 
└ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
onion_world 2. 2. 2012 23:33
Nový
├ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
OR 2. 2. 2012 14:21
Nový
│
└ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
onion_world 2. 2. 2012 14:42
Nový
│
 
├ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
Petr Krčmář 2. 2. 2012 15:28
Nový
│
 
│
├ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
onion_world 2. 2. 2012 23:46
Nový
│
 
│
├ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
flamenco 4. 2. 2012 00:55
Nový
│
 
│
├ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
onion_world 6. 2. 2012 11:03
Nový
│
 
│
└ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
ppp 6. 12. 2012 08:17
Nový
│
 
└ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
OR 2. 2. 2012 22:23
Nový
│
 
 
└ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
onion_world 2. 2. 2012 23:42
Nový
│
 
 
 
└ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
OR 3. 2. 2012 12:55
Nový
│
 
 
 
 
└ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
OR 3. 2. 2012 13:16
Nový
│
 
 
 
 
 
└ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
OR 3. 2. 2012 16:35
Nový
└ 
Re: Vzkaz pro p. Krcmare - bude pokracovani ??
Petr Krčmář 6. 2. 2012 22:45
Nový
Svobodný a anonymní internet půjde vybudovat
Ivan Nový 2. 2. 2012 08:45
Nový
TOR a cookies atd.
NTPT 3. 2. 2012 09:49
Nový
├ 
Re: TOR a cookies atd.
Sten 3. 2. 2012 13:13
Nový
└ 
Re: TOR a cookies atd.
j 6. 2. 2012 16:15
Nový
chybný odkaz
ky 6. 2. 2012 12:50
Nový
Detekcia TOR
LacoMelisko 7. 2. 2012 17:08
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem