Hlavní navigace

GNUnet - Anonymní peer to peer síť

23. 12. 2004
Doba čtení: 5 minut

Sdílet

GNUnet je peer to peer síť, která podobně jako FreeNet zajišťuje anonymitu svých uživatelů.

Peer to peer sítě umožňují vzájemné sdílení souborů mezi svými členy. Ačkoliv sdílení souborů je možné provádět i jinými způsoby např. pomocí HTTP nebo FTP, peer to peer sítě jsou oblíbené zejména pro možnost sdílení copyrightovaných souborů, které není možné beztrestně legálně šířit bez zakoupení patřičných distribučních práv. Ačkoliv je možné šiřitele těchto materiálů i v peer to peer sítích velice snadno vystopovat, v praxi se to stává mnohem méně často než při použití výše zmíněných klasických metod.

Proč tomu tak je? Pro účast v peer to peer sítích je potřeba instalace klientského software, který lidem honícím piráty jejich administrátoři naneštěstí nenainstalovali. Naopak honit piráty publikující na webu je snadné, neboť Google je nejlepší práskač na Internetu.

V poslední době se ale rozmáhá hon na piráty i v peer to peer sítích, a tak jsou jejich uživatelé značne nervózní z faktu, že se jejich IP adresa dá v sítích typu Gnutella, Fast track, Direct Connect, Napster velmi snadno vystopovat. To samé platí pro technologii IRC i pro novinku zvanou Bit Torrent. Proto se objevují technologie, které znesnadňují zjištění, kdo si co a od koho nahrává. GNUNet je jedna taková.

Instalace

Pro reálné využití budete kromě vlastní GNU Net potřebovat také knihovnu libextractor a nějakou embedded databázovou knihovnu nebo MySQL. Podporované knihovny jsou db3, tdb a gdbm.

Výrobce doporučuje použití gdbm. Radim Kolář doporučuje v GNUnet/src/ap­plications/af­s/module/low_tdb­.c nahradit volbu TDB_NOMMAP volbou TDB_NOLOCK a použít tdb. Přístup k databázi je chráněn mutexem, takže je i v multi-threadingovém prostředí GNUnetu bezpečný.

V adresáři contrib/ najdete script autoinstall, který gnunet přeloží, naistaluje binárky a init script, vytvoří default konfiguraci, a to dokonce i do homediru všech uživatelů, a gnunet spustí. Pokud používáte Linux, mělo by to pro začátek stačit.

Konfigurace

je uložena v /etc/gnunet.conf. Za pozornost stojí pouze několik položek:

  1. Odkud stahovat seznamy ostatních uzlů

    HOSTLISTURL = "http://www.ovmj.org/GNUnet/download/hostlist http://www.woodtick.co.uk/hostlist http://consumer.woodtick.co.uk/hostlist" 
  2. Aktivovat si podporu pro chat

    APPLICATIONS = "afs chat tbench tracekit"
  3. Nastavit jméno síťového interface. Nutné zejména u FreeBSD.

    INTERFACE = vx0
  4. Nastavit bandwith limit v bytech/sec

    INTERFACES = vx0
    MAXNETUPBPSTOTAL        = 7000
    MAXNETDOWNBPSTOTAL      = 7000
  5. Pokud jsme za firewallem, je nutné ještě

    LIMITED = YES
  6. Gnunet standardně využívá pro TCP a UDP komunikaci port 2086. Za účelem znesnadnění detekce lze transporty překonfigurovat např. na UDP port 53 a TCP port 80. Gnunet preferuje UDP transport před TCP, TCP před HTTP a HTTP před SMTP.

  7. V konfiguraci vás jistě zaujmou volby ANONYMITY-RECEIVE a ANONYMITY-SEND. Obě zatím nechte vypnuté, nebo si s GNUnetem moc neužijete.

Spuštění

GnuNet daemon se spouští příkazem gnunetd. Tento daemon komunikuje s ostatními uzly v síti a zpracovává požadavky od uživatelských utilit gnunet-*. Toto uspořádání je podobné jako u projektu gift. Po prvním spuštění se gnunetd začne rozlížet po síti a hledat další uzly. Tuto aktivitu zrovna moc nepřehání, a tak se zatím věnujte něčemu jinému, např. kompilaci Mozilly, a nechte ho chvíli být. Doba potřebná k alespoň minimální aktivaci je cca 15 minut. K tomu, aby GNUnet síť byla prakticky použitelná, je nutné, aby gnunetd nalezl minimálně desítky funkčních uzlů. Pokud jste si v konfiguraci nastavili anonymizaci, budete jich potřebovat o řád víc. Nalezené uzly si vypíšete příkazem gnunet-peer-info.

Anti leech

Znáte pořekadlo „Když chceš sklízet, musíš nejdřív sázet“? Gnunet je jeho materializací. Na rozdíl od sítě Direct Connect, která požaduje od uzlů minimální počet sdílených souborů, jde GNUnet ještě dál. Každý uzel v GNUnetu přiřazuje ostatním uzlům prioritu, která je založena na počtu úspěšných odpovědí během vyhledávání či na počtu bloků souborů, které od tohoto uzlu obdržel.

Pokud tedy na svém uzlu nic nemáte, dostanete nulovou prioritu. Naštěstí GNUNet umožňuje i migraci obsahu, takže pokud ji necháte zapnutou , časem k vám nějaké části souborů domigrují.

Požadavky uzlů s vyšší prioritou jsou vyřizovány přednostně. Pokud je síť alespoň trochu zatížená, nedostanete od ostatních uzlů téměř nic. Toto omezení se netýká požadavků na prohledávání. Přeloženo do praxe: 40kB JPEG můžete klidně tahat desítky minut, pokud jej vůbec stáhnete. Uzly jsou v síti GNUnet identifikovány svým public klíčem, nikoliv IP adresou, takže i pokud jste na dialupu, není pro vás nic ztraceno a můžete pracovat na zvýšení své reputace.

Jdeme sázet

GNUnet umožňuje publikování jednak jednotlivých souborů a jednak jmených prostorů, které jsou téměř shodné s ekvivalentem v síti FreeNet. Jmené prostory jsou chráněny asymetrickou kryptografií, což zabraňuje jejich neoprávněné modifikaci ostatními uživateli.

Pokud nechcete použít vlastní jmenný prostor, je možné soubory vložit pod vámi zvolená nebo automaticky vygenerovaná klíčová slova. Klíčová slova lze spamovat – tj. úmyslně zvolit termíny zavádějící na scestí. V síti GNUNet se na rozdíl od FreeNetu jmenné prostory moc často v praxi nepoužívají.

Sázet lze pomocí command line utility gnunet-insert nebo pomocí grafického rozhraní gnunet-gtk. Sázení pomocí gnunet-insert vypadá takto:

(hsn@ttyv2):/tmp% gnunet-insert -V -m application/x-iso -k bsd -k BSD -k netbsd -k NetBSD -k iso -k ISO -k image -k cdrom -D "NetBSD 1.6.2 i386 installation  ISO" NetBSD-i386-1.6.2.ISO
Working on file /tmp/NetBSD-i386-1.6.2.ISO...
159366144 of 690257920 bytes inserted 

a trvá zhruba tři hodiny na 300Mhz Pentiu. Tuto dobu nejvíce ovlivňuje použitý databázový backend (zde gdbm).

Co v GNUnetu najdete

Obvyklý obsah p2p sítí: filmy, mp3, pdf knihy, herní cdrom image, pornografii. Překvapilo mě, že díla Satanova jsou zde zastoupena v mnohem menším počtu, než by člověk po zkušenostech s ostatními peer to peer sítěmi očekával. Najít se dají i RPM balíky a CDROM image hlavních distribucí. Prohledávat lze i přes WWW rozhraní.

Cloud 24 - tip 1

Pro snadnější práci s GNUnetem doporučuji použití grafické nadstavby gnunet-gtk. Práce z příkazové řádky je možná, ale nešikovná především kvůli velké délce gnunet URL, a tak ji lze doporučit jen pro skriptovací účely. Přátele příkazové řádky ovšem potěší hezky napsané manuálové stránky k jednotlivým příkazům.

GNUnet vs. FreeNet

Pokud bychom ignorovali drobné technické rozdíly v implementaci těchto sítí, tak z ryze praktického hlediska má GNUnet lepší vyhledávání a FreeNet zase rychlejší downloady a větší uživatelskou základnu. Žádná z těchto technologií mě ale nepřesvědčila tak, abych ji v praxi používal.

Byl pro vás článek přínosný?

Autor článku