Portál AbcLinuxu, 25. dubna 2024 14:06

Tor – jak být anonymní na Internetu

9. 11. 2009 | Jan Hrach
Články - Tor – jak být anonymní na Internetu  

V článku se seznámíme s tím, co je to Tor a jak pracuje. Naučíme se nainstalovat klienta, nastavit tzv. node, exit point a zkonfigurovat skrytou službu (hidden service).

Obsah

Zkontrolujte si, jestli je používání Toru ve vaší zemi (pořád ještě) legální. Například na Slovensku se nad provozovateli Tor nodů stahují mračna. Pokud by to prošlo, bylo by Slovensko pravděpodobně první zemí na světě s takovým zákonem.

Co je to Tor?

link

Tor (The Onion Router) je síť (a zárověň název softwaru – klienta) určená pro ochranu před analýzou a filtrováním provozu ze strany vašeho poskytovatele (organizace, vlády…). Má více funkcí – anonymní a téměř necenzurovatelný přístup k Internetu a možnost provozu služby, u které nikdo nemůže zjistit, kde se fyzicky nalézá, ani ji zcenzurovat.

Jak to funguje?

link

Základní myšlenkou je provoz sítě tzv. nodů (někdy též nazývaných relays), což jsou povětšinou počítače dobrovolníků rozmístěné různě po světě, přes které je směrován provoz. V době psaní tohoto článku jich je aktivních asi 1600 (a přibývají) a sítí je směrováno asi 400 Mbps trafficu.

Pokud chce Alice komunikovat s Bobem, vybere si tři nody v síti (v některých případech jich může být více; čtyři nebo pět).

tor schematko

Alice vezme data pro Boba, nalepí na ně lísteček s adresou Boba a zašifruje je veřejným klíčem počítače 3. Na získaný balíček nalepí lísteček s adresou počítače 3 a celé to zašifruje veřejným klíčem počítače 2. Na tento balíček nalepí lísteček s adresou počítače 2 a celé to zašifruje veřejným klíčem počítače 1 a odešle počítači 1. The Onion Router se to jmenuje, protože výsledný balíček má slupky jako cibule.

Počítač 1 dostane balíček, rozšifruje jej svým soukromým klíčem, vypadne na něj jiný balíček a na něm je nalepena adresa počítače 2. Tak jej předá počítači 2. Ten jej rozšifruje svým soukromým klíčem a vidí, že získal další balíček, s adresou počítače 3. Počítač 3 udělá to samé a balíček pošle Bobovi.

Tím je zaručeno, že každý nod ví pouze od koho balíček dostal a komu ho má předat dál, ale nemůže zjistit, komu ve skutečnosti balíček patří, ani kdo ho odeslal.

Exit node

link

Pokud se Bob nenachází v síti Tor, ale někde v Internetu, Alice si jako poslední počítač v řetězci vybere nějaký z takzvaných exit nodů. To jsou nody, kterým když přijde balíček, po jehož rozšifrování na ně vypadne cedulka s adresou někde v Internetu, rozšifrovaný balíček na tuto adresu pošlou (a případnou odpověď potom pošlou zpět).

Nyní přejdeme k té praktičtější části.

Instalace klienta

link

Ve většině linuxových distribucí vám stačí nainstalovat balíček tor. Po instalaci by se měl samovolně spustit démon a v logu (obvykle /var/log/tor/log) začnou naskakovat hlášky:

[notice] No current certificate known for authority ides; launching request.
[notice] No current certificate known for authority gabelmoo; launching request.
[notice] No current certificate known for authority dannenberg; launching request.
[notice] I learned some more directory information, but not enough to build a circuit: We have no network-status consensus.
[notice] I learned some more directory information, but not enough to build a circuit: We have only 0/1595 usable descriptors.
[notice] I learned some more directory information, but not enough to build a circuit: We have only 96/1594 usable descriptors.

Přičemž za chvíli (v manuálu se udává až 20 minut, ale záleží na kvalitě připojení, mně to na megabitovém kabelu trvalo asi půl minuty) se konečně objeví

[notice] We now have enough directory information to build circuits.
[notice] Tor has successfully opened a circuit. Looks like client functionality is working.

Na localhost:9050 (lze změnit v konfiguračním souboru /etc/tor/torrc) se nyní otevřela SOCKS proxy. Můžeme si ji například ve Firefoxu nastavit a zkusit načíst nějakou stránku typu WhatIsMyIP. Po chvíli čekání by se měla zobrazit IP adresa nějakého cizího počítače.

Ovšem naše radost nebude trvat dlouho. Tor nám totiž v logu pravděpodobně vynadá.

[warn] Your application (using socks4 to port 80) is giving Tor only an IP address.
 Applications that do DNS resolves themselves may leak information. Consider using Socks4A
 (e.g. via privoxy or socat) instead. For more information, please see
 http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#SOCKSAndDNS.

Problém je v tom, že Firefox si doménové jméno přeloží proti lokálnímu překladači a nastavené SOCKS proxy pošle jenom IP adresu. Problém: Pokud útočník poslouchá naše DNS dotazy, může tím zjistit, kam se připojujete (a například někteří operátoři podvrhnout falešnou odpověď). Vyřešit se to dá tím, že si ve své aplikaci zvolíte, aby používala SOCKS 4a, ve které se proxy předávají pouze doménová jména. Jenže některé populární webové prohlížeče verzi 4a nepodporují. Takže je potřeba mezi Tor a prohlížeč vložit něco, co se bude pro prohlížeč chovat jako „normální“ HTTP proxy a pro Tor jako klient SOCKS 4a. My použijeme Privoxy.

Po její instalaci vložíme do konfiguračního souboru (/etc/privoxy/config) jediný řádek.

forward-socks4a   /               127.0.0.1:9050 .

Prohlížeč nyní překonfigurujeme na HTTP proxy na portu 8118 a varování by se již neměla zobrazovat.

Hidden service

link

Skryté služby jsou služby dostupné pouze v síti Tor, u nichž nikdo není schopen určit, na kterém počítači vlastně běží. Můžete je použít, pokud chcete například publikovat názory nekompatibilní s aktuální politickou situací. Vyznačují se adresou ve tvaru několiknáhodnýchznaků.onion, například kpvz7ki2v5agwt35.onion (pokud vám běží Tor, můžete si kliknout). Pro přístup na ně budete potřebovat přístup ke klientu Tor a váš prohlížeč se nesmí pokoušet překládat adresy lokálně (protože se mu to nepodaří – TLD .onion na kořenových jmenných serverech pochopitelně neexistuje). Linkovaná stránka je něco jako rozcestník v síti Tor.

Provoz nodu (relay) a exit pointu

link

node

link

Pokud by všichni síť jen využívali, neměl by kdo platit konektivitu… Pokud tedy máte počítač s rozumnou linkou a chcete k provozu sítě přispět, můžete z něj udělat node nebo exit point.

Provoz nodu je velmi jednoduchý. V konfiguračním souboru stačí odkomentovat několik řádek a restartovat Tor.

# jak se chceme v síti jmenovat
Nickname JendaH

# adresa našeho počítače
Address gomora.hrach.eu

# kolik pásma chceme obětovat průměrně
RelayBandwidthRate 50 KBytes
# a ve špičce
RelayBandwidthBurst 70 KBytes

# kdyby měl někdo potřebu nás kontaktovat
ContactInfo Random Person <nobody AT example dot com>

# na jakém portu budeme poslouchat
ORPort 9001

# jen pokud jsme za maškarádou a máme přesměrovaný port,
# tak sem dáme adresu a port, pod kterou jsme dosažitelní zvenku
ORListenAddress 12.34.56.78:9001

# nechceme exit (viz dále)
ExitPolicy reject *:*

Za několik hodin by se váš server měl objevit v síti. To uvidíte například na stránce TorStatus. Pokud se neobjeví, mrkněte do logu, určitě je tam nějaká chybová hláška.

exit point

link

Pokud chcete umožnit přístup ze sítě Tor k Internetu, můžete ze svého počítače udělat exit node. Můžete povolit jen určité adresy a/nebo porty. Ve výchozím nastavení jsou pochopitelně často zneužívané porty (25/SMTP) zakázány, nicméně je stejně vhodné trochu utáhnout opasek. Například takto (platí, že první pravidlo vyhrává):

ExitPolicy accept *:22,accept *:80,accept *:443,accept *:5222,reject *:*

Nicméně počítejte s tím, že přes váš server poteče ven všelijaký humus, například Wikipedia vám znemožní upravovat články (nájezdy spammerů) a mohou vám chodit abuse maily. Nějaké materiály k nahlédnutí:

Hidden service

link

A dostáváme se k poslednímu bodu – provozu vlastní skryté služby. Předpokládám, že vám na localhostu běží (například) webserver s obsahem, který chcete přes síť Tor poskytovat. Pochopitelně takto můžete poskytovat i třeba IRC, Jabber nebo SSH.

V konfiguračním souboru najděte, upravte a odkomentujte tyto řádky:

# kam se uloží klíč a název služby, adresář musí být zapisovatelný
HiddenServiceDir /var/log/tor/moje_sluzba/
# port, na kterém chceme propagovat službu do sítě a skutečná adresa služby
# může být i na jiném počítači
HiddenServicePort 80 127.0.0.1:80

Restartujeme Tor. Ve zvoleném adresáři se objevily dva soubory – hostnameprivate_key. Raději si je zazálohujeme – pokud budeme chtít spustit službu se stejnou adresou na jiném počítači, stačí je do zvoleného adresáře nakopírovat.

V souboru hostname je název služby. Ten zkusíme zadat do prohlížeče (v případě, že jsme nastavovali webserver) a pokud se zobrazí kýžená stránka, hurá!

Klikátka

link

Pro obsluhu Toru byla stvořena celá řada klikátek. Pro Linux je asi nejznámější a nejpovedenější TorK, pro Windows dokonce existuje takzvaný Browser Bundle, což je snadno instalovatelná portable verze Firefoxu spojená s Torem a určená pro instalaci na flash disk. Ale o tom možná někdy příště…

Závěr

link

Osobně doufám, že Tor nebude v příštích letech potřeba stále více, ale sám tomu moc nevěřím…:-/

Související články

Šifrování s TrueCrypt
Šifrování s TrueCrypt – 2 (skryté oddíly, výkon)
Podepisování a šifrování s GnuPG
Šifrované filesystémy - I
Šifrované filesystémy - II
ProFTPD + MySQL + Quota + šifrování
IPSec v kernelu 2.6 - I
IPSec v kernelu 2.6 - II
OpenSSH - bezpečně a pohodlně
SSL - je vaše bezpečné připojení opravdu zabezpečené?
SSL - 1 (certifikáty)
SSL - 2 (elektronický podpis)
IPSec na Linuxu, krok za krokem - 1
IPSec na Linuxu, krok za krokem - 2
Reportáž: Smart Card Forum 2009
Seriál: Privoxy

Odkazy a zdroje

Tor

Další články z této rubriky

V sobotu se uskuteční konference CryptoFest
Pozor na androidové aplikace
Silent Circle představil bezpečný smartphone Blackphone 2
Android je bezpečnější, řada hrozeb však stále přetrvává
Avast varuje před nebezpečnými aplikacemi v Google Play

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.