Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Zprovoznění a popis funkčnosti FreeNet
Autor: Tomáš František Kašpar
Předmět: 4iz110 (úterý 12:45)
Vyučující: Radomír Palovský
Datum vytvoření: 3. 12. 2016
Datum odevzdání: 6. 12. 2016
2
I. Obsah
II. Úvod: ................................................................................................................................................. 3
III. Definice .............................................................................................................................................. 3
IV. Historie ............................................................................................................................................... 4
V. Jak to funguje? .................................................................................................................................... 5
Data ............................................................................................................................................................ 5
Směrování ................................................................................................................................................... 5
Přístup k datům – Klíče ................................................................................................................................ 6
CHK – Content Hash Keys ........................................................................................................................ 6
SSK - Signed Subspace Keys .................................................................................................................... 7
USK – Updateable Subspace Keys ............................................................................................................. 7
KSK – Keyword Signed Keys ................................................................................................................... 8
VI. Útoky ve freenetu ................................................................................................................................ 8
Harvesting ................................................................................................................................................... 8
Analýza provozu .......................................................................................................................................... 8
Útoky na korelace ........................................................................................................................................ 8
Připojení na všechny .................................................................................................................................... 8
VII. Instalace .............................................................................................................................................. 9
Požadavky: .................................................................................................................................................. 9
Instalace: ..................................................................................................................................................... 9
Nastavení pří prvním spuštění: .................................................................................................................... 11
Programy pro freenet .................................................................................................................................. 12
jSite:...................................................................................................................................................... 12
Freemail ................................................................................................................................................ 12
Frost ...................................................................................................................................................... 12
Sone ...................................................................................................................................................... 12
Freenet Messaging systém (FMS) ............................................................................................................ 12
VIII. Závěr ................................................................................................................................................ 13
3
II. Úvod:
Cílem této semestrální práce je shrnout veškeré informace o technologii Freenet, první část bude
teoretická a v druhé části bude praktický popis toho, jak se technologie v praxi používá.
Teoretická část obsahuje samotnou definici Freenetu, jak to vlastně funguje a v neposlední řadě
také jeho slabiny a případné útoky spolu s návodem jak jim předejít. Druhá část je již čistě
praktická s návodem jak nainstalovat programy pro použití této technologie. Také praktické
využití jednotlivých možností, včetně informací jak jich využít. Po přečtení této práce by každý
měl vědět co to vlastně Freenet je, jaké má využití a umět ho použít.
III. Definice
Freenet je peer-to-peer, cenzuře odolná platforma pro komunikaci. Používá decentralizované
rozdělení dat a pro publikování a komunikaci používá software dostupný zdarma.1
Vlastními slovy to znamená následující:
Pokud nahrajete soubor na freenet tak vám ho rozdělí na více menších souborů, které následně
uloží na počítačích ostatních uživatelů (uzlů). Zároveň, vzhledem k tomu, že tato platforma
funguje na peer-to-peer principu, to znamená, že vy také poskytujete část svého úložného
prostoru na disku k ukládání souborů ostatních uživatelů, nicméně jsou zašifrované, takže nevíte,
co je u vás zrovna uloženo.
Stejně tak pokud požadujete nějaký soubor, který si chcete stáhnout tak nevíte, kde jsou
jednotlivé části uložené a uzly si přeposílají části souborů dokud nedojdou k uživateli, který o ně
požádal.
1 Wikipedia: Freenet. [Cit. 5. 12.2016] https://sk.wikipedia.org/wiki/Freenet
4
IV. Historie
První zmínka o Freenetu je z roku 1999 kdy Ian Clarke napsal nepublikovanou práci s názvem
"A distributed decentralized information storage and retrieval system", která následně byla
přepracována spolu s jeho dalšími kolegy na publikaci "Freenet: A Distributed Anonymous
Information Storage and Retrieval System" vydanou v roce 2001.2 Podle webové stránky
http://citeseerx.ist.psu.edu/ byla tato publikace jednou z nejvíce citovaných v roce 2002 v oblasti
informatiky3.
První verze byla vydána v již v roce 2000, ve které byla naprogramována čistě základní
funkčnost a principy technologie.
Zásadní změny se odehrály ve verzi z 8. května 2008 a to 0.7. První změnou byl přechod
z protokolu TCP na UDP které mělo za cíl rychlejší přenos informací mezi uzly. Ale tou
nejdůležitější byla podpora opennetu a darknetu zároveň.
Opennet znamená možnost připojit se do freenetu i přesto, že neznáte nikoho, kdo tuto službu
již používá. Připojíte se prostřednictvím takzvaných seed nodes, které provozují dobrovolníci a
dovolí vám se přes ně připojit i přesto že vás neznají. Samozřejmě s tím souvisí jisté nebezpečí,
protože jste napřímo propojeni s někým koho neznáte a tím pádem zranitelní vůči útokům.
Darknet je pravým opakem, připojit se můžete pouze za předpokladu, že znáte někoho kdo již
na freenetu funguje. Snižuje se tím riziko útoků na vás, protože s uzly s kterými jste propojeni,
jsou pro vás důvěryhodné. Pokud by takto fungovali všichni tak je prakticky nemožné se do
takovéto sítě dostat a to i například pro vašeho poskytovatele internetu nebo i úřady.
Poslední verze byla vydána před pěti měsíci, takže na systému se stále pracuje a je aktuální.
2 Wikipedia: Freenet. [Cit. 5. 12.2016] https://en.wikipedia.org/wiki/Freenet 3 Citeseerx [Cit. 5. 12. 2016] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.10.4919
5
V. Jak to funguje?
Freenet je vlastně jedno velké úložiště dat složené z mnoha malých částí úložného prostoru na
uživatelských zařízeních. Nikdo ale neví, co a kde je vlastně uloženo, pokud od souboru nemá
klíč. Klíč uživatel obdrží, jakmile do sítě nahraje soubor a klíč může poté dále šířit a tím pádem i
soubor.
Princip freenetu je postavený na konceptu zvaném „Small world network“ nebo také „Síť malého
světa“ což znamená, že vám k připojení do sítě stačí znát pár uživatelů této sítě a vlastně už znáte
všechny přes známého známého. Tímto způsobem by mělo být možné připojit se ke komukoliv
připojeného do této sítě.
Data
Každý z připojených uživatelů si musí vyhradit místo na svém disku, do kterého se budou
soubory ukládat. Nevýhodou této sítě je, že nemáte v podstatě žádnou kontrolu nad tím, co máte
právě uloženo na svém počítači, protože soubory jsou zašifrovány. Dokonce nemáte ani možnost
soubor vymazat, jediná možnost jak soubor zmizí je, že přestane být populární, v této chvíli, kdy
ho nikdo nestahuje, sám zmizí. Freenet při instalaci sám navrhuje, jak velké by mělo být vaše
úložiště podle skutečné velikosti vašeho disku a kapacity RAM, protože samozřejmě větší
úložiště potřebuje k provozu více vyrovnávací paměti, ale k požadavkům na hardware se
dostaneme později.
Směrování
Směrování v síti freenet je na počátku vždy náhodné, protože díky anonymitě sítě nemáme žádné
informace o ostatních uzlech a tím pádem ani o souborech. Nicméně pokud jeden uzel bude
nahrávat více souborů tak se jeho soubory na základě podobnosti jejich klíčů (kvůli stejnému
majiteli) začnou slučovat do clusterů a ukládat se poblíž sebe, tím pádem vytvoří jakési hlavní
cesty k souborům, pokud je stahuje čím dál tím více lidí. Samozřejmě čím více je dokument
stahován, tím více se kopíruje po síti, aby byl všem rychle dostupný.
6
Přístup k datům – Klíče
Základní myšlenka freenetu je o tom že nevíte co kde je a tím pádem potřebuje klíč k nalezení
souboru a klíč k dešifrování souboru. Pro každý soubor v síti freenetu existuje hned několik typů
klíčů, které jsou druhem URI (URI (celým názvem Uniform Resource Identifier – „jednotný
identifikátor zdroje“) je textový řetězec s definovanou strukturou, který slouží k přesné
specifikaci zdroje informací (ve smyslu dokument nebo služba), hlavně za účelem jejich použití
pomocí počítačové sítě, zejména Internetu.4) například: “freenet:[email protected]”.
Pro přístup ke konkrétnímu souboru ve freenetu, můžete použít například FProxy, nicméně
potřebujete vždy znát klíč k datům a můžete ho vložit do následujícího odkazu
http://localhost:8888/klíč a nebo prostě kliknout na link obsahující již klíč.
Existují 4 základní typy klíčů používaných ve freenetu5:
CHK - Content Hash Keys
SSK - Signed Subspace Keys
USK - Updatable Subspace Keys
KSK - Keyword Signed Keys
CHK – Content Hash Keys
Tento klíč se používá pro soubory se statickým obsahem jako například mp4 nebo PDF. Tyto
klíče jsou zajímavé tím, že obsahují takzvaný hash souboru („Hašovací funkce je matematická
funkce (resp. algoritmus) pro převod vstupních dat do (relativně) malého čísla. Výstup hašovací
funkce se označuje výtah, miniatura, otisk, fingerprint či hash (česky též někdy jako haš)“6).
Toto tedy znamená, že žádné dva soubory, které mají jiný obsah, nemohou mít stejné klíče,
protože jakmile se změní obsah tak se hash naprosto radikálně změní. Klíč se skládá ze třech
částí: hash souboru, klíč pro odšifrování souboru a popis kryptografických použitých nastavení.
4 Wikipedia: Uniform Resource Identifier [Cit. 5. 12. 2016] https://cs.wikipedia.org/wiki/Uniform_Resource_Identifier 5 Freenetproject: Documentation [Cit. 5. 12. 2016] https://freenetproject.org/documentation.html#understand 6 Wikipedia: Hašovací funkce [Cit. 6. 12. 2016] https://cs.wikipedia.org/wiki/Ha%C5%A1ovac%C3%AD_funkce
7
Typický CHK klíč vypadá následovně:
CHK@Hash souboru, Klíč pro odšifrování, použité nastavení
Reálný příklad:
CHK@SVbD9~HM5nzf3AX4yFCBc-
A4dhNUF5DPJZLL5NX5Brs,bA7qLNJR7IXRKn6uS5PAySjIM6azPFvK~18kSi6bbNQ,AAEA--8
CHK je nejdůležitější klíč, všechny soubory nad 1kB jsou nakonec rozděleny na jeden nebo více
32kB CHK.
SSK - Signed Subspace Keys
Tyto klíče se používají pro stránky, které se často mění, například webová stránka kde se musí
informace často obměňovat, aby byly aktuální. Pouze uživatel, který má tajný klíč k této stránce,
ji může editovat.
Klíč je stejně jako CHK složený z několika částí, v tomto případě z pěti: veřejný hash klíč
(jednoznačně identifikuje soubor), dešifrující klíč dokumentu, nastavení šifrování, slovo vybrané
autorem dokumentu a verze stránky
Typický CHK klíč vypadá následovně:
SSK@veřejný hash klíč, dešifrující klíč dokumentu, nastavení šifrování/uživatelem vybrané slovo-
verze
Reálný příklad:
CHK@SVbD9~HM5nzf3AX4yFCBc-
A4dhNUF5DPJZLL5NX5Brs,bA7qLNJR7IXRKn6uS5PAySjIM6azPFvK~18kSi6bbNQ,AAEA--8
Autor vygeneruje dva druhy klíčů, jeden veřejný (pro návštěvníky stránky) a jeden soukromý
(pro sebe, pro editaci).
USK – Updateable Subspace Keys
USK jsou v podstatě vylepšením pro klíče SSK, nejčastěji se používají pro jednoduché hledání
poslední verze stránky. Mají stejnou strukturu jako klíče SSK, s tím rozdílem, že na konci místo
verze, je možno vyplnit jakékoliv kladné nebo záporné číslo. Pakliže vyplníte kladné číslo,
například 5, zobrazí se vám nejnovější verze po páté. Příklad:
USK@GB3wuHmt[..]o-eHK35w,c63EzO7u[..]3YDduXDs,AQABAAE/mysite/5/
Naopak pokud zadáte záporné číslo, například -7, budete hledat verzi 7 plus další čtyři, tedy až
do 11. Pokud najde jenom 7, dostanete pouze 7, pokud ale najde i další, tak opět prohledá dalších
8
5 verzí a takto bude hledat, dokud nenarazí na prázdnou pětici verzí a pak vrátí tu poslední,
kterou našel. Příklad:
USK@GB3wuHmt[..]o-eHK35w,c63EzO7u[..]3YDduXDs,AQABAAE/mysite/-7/
KSK – Keyword Signed Keys
Tento typ klíče povoluje vytvořit velmi jednoduchou adresu, přes kterou se dá dostat k souboru,
může vypadat například takto:
Protože ovšem ve freenetu neexistuje žádná registrace domén tak je možné, že několik uživatelů
vytvoří soubor se stejnou adresou (KSK klíčem). Ovšem velkou výhodou je, že jsou pro člověka
snadno zapamatovatelné, tím pádem dostupné.
Tento klíč může obsahovat buď přesměrování na CHK adresu nebo přímo obsahovat soubor.
VI. Útoky ve freenetu
Harvesting
Týká se prakticky pouze opennetu, čili připojení přes neznámé, hlavní uzly. Útočník může
snadno zjistit identitu hlavních uzlů a podle nich již identifikovat zbytek sítě jelikož většina
uživatelů bude připojena právě přes ně. Takto fungují státní firewally v zemích jsou kde freenet a
podobné služby zakázány. Obrana proti tomuto existuje pouze na úrovni přechodu na darknet,
neboli připojení před důvěryhodné známé uzly.
Analýza provozu
Pokud je útočník připojen do jakékoliv sítě jak má možnost sbírat data o provozu a dokáže
vystopovat přemisťování dat z určitého uzlu na další, takže už může vědět, kde se přesně jaká
data nacházejí. Bohužel proti tomuto druhu „napadení“ zatím obrana neexistuje.
Útoky na korelace Pokud se útočník připojí na nějaký uzel a rozpozná klíče, které byly požadovány tak podle nich
může zjistit, s kým uzly sousedí. Tento druh útoku velice náročný a pro útočníka je jednodušší
vzhledem k tomu, že jsou k uzlu stejně připojeni, „napíchnout“ uživateli klávesnici.7
Připojení na všechny Pokud má útočník dostatečnou šířku pásma tak by se teoreticky v opennetu mohl připojit na
úplně všechny a s dostatečným výpočetním výkonem by mohl vytěžit veškeré informace o
pohybech v sítí. Nicméně tento útok vzhledem k velikosti sítě není moc pravděpodobný.8
7 Wiki freenet: FAQ [Cit. 5. 12. 2016] https://wiki.freenetproject.org/FAQ#Correlation_attacks 8 Wiki freenet: Opennet Attacks [Cit. 5. 12. 2016] https://wiki.freenetproject.org/Opennet_attacks
9
VII. Instalace
Požadavky:
K zprovoznění služby budete potřebovat jeden z následujících operačních systémů: windows
xp/vista/7. Jak to tak u windows už bývá, pravděpodobně bude freenet fungovat i na ostatních
verzích nicméně nejsou otestovány a označeny jako stabilní. Druhou možností je použít linux
kde by neměl být problém naistalovat na jakoukoli verzi. Zajímavostí je, že je teoreticky je
možnost naistalovat freenet i na mobilní telefon s androidem, nicméně spíše na starších verzích
které podporovali aplikace v pozadí.9
Freenet vyžaduje minimálně 128MB RAM nicméně, aby byl i po instalaci operační systém
použitelný je potřeba minimálně 512MB. Procesor by měl stačit se 400Mhz. A protože freenet
bude využívat vaše úložiště je potřeba, abyste mu vyhradili minimálně 100MB nicméně
doporučeno je 1GB.
A samozřejmě protože vše funguje přes javu tak na zařízení musí být nainstalována.
Instalace:
Tento návod se bude zabývat pouze instalací na zařízeních windows.
Na stránkách projektu freenetproject.org/download nalezneme instalátor, stáhneme a spustíme.
9 Wiki freenet [Cit. 16. 12. 2016] https://wiki.freenetproject.org/Installing/POSIX
10
Zvolíme český jazyk, protože od minulého roku je podporován.
V tuto chvíli už jenom proklikáme instalátorem podle našeho uvážení, kam chceme program
naistalovat, jestli chceme zástupce na ploše atd.
Po úspěšné instalaci by se nám měl otevřít prohlížeč s následujícím s výchozím nastavením, ke
kterému se dostaneme v další části. Také na liště by se měla objevit ikonka freenetu, která
indikuje, že je freenet spuštěný.
11
Nastavení pří prvním spuštění:
Při prvním spuštění se nám zobrazí na výběr z následujících možností:
První možností je připojit se k libovolnému uživateli freenetu, tato možnost je samozřejmě
možná jenom v zemích kde je freenet legální jak jsme si již vysvětlili dříve. Také jste velmi
zranitelní proti útokům.
Druhou možností je připojovat se pouze k přátelům/lidem které znáte. To znamená, že jste méně
náchylní vůči útokům, protože všechny ve svém bezprostředním okolí znáte. Nicméně pokud
znáte málo lidí, může se stát, že vaše síť bude mít třeba jenom 4 členy a do velké sítě se vůbec
nepřipojíte.
Poslední možností je detailní nastavení, ve kterém si může nastavit opravdu cokoliv.
Já si vyberu možnost první, protože nikoho na freenetu bohužel neznám.
V další části nastavení si vyberete, jak velkou část disku chcete alokovat pro úložiště freenetu.
Nastavení menší části bude znamenat, že můžete mít problém se stahováním souborů atd. Při
nastavení větší části zase se zpomalením zařízení, na kterém fungujete.
12
V dalším kroku už jenom nastavíte rychlost připojení k internetu, freenet si vezme polovinu
vašeho připojení a více nebude využívat.
A tím nastaveni končí a už jsme připojeni k freenetu.
Programy pro freenet
jSite:
je grafická aplikace, ve které můžete vytvářet a spravovat vaše vlastní freenetové stránky. Umí
také nahrávat soubory.
Freemail
Je emailový systém pro freenet, je vlastně pluginem který je nicméně potřeba dodatečně
stáhnout. Umí posílat ostatním uživatelům anonymní zprávy s použitím prakticky standartního
emailového klienta.
Frost
Komunikační diskuzní program, který zároveň umožňuje nahrávání i stahování souborů.
Sone
Plugin pro freenet který implementuje sociální síť, navrženou podle facebooku.
Freenet Messaging systém (FMS)
Také diskuzní program, konkurent Frostu. Hodnotí uživatele a stahuje zprávy pouze od těch,
kterým důvěřuje a od těch kterým tito uživatelé důvěřují. Vytváří tedy sít důvěry.
13
VIII. Závěr
Freenet je určitě velmi zajímavou alternativou jiných podobných sítí jako například Tor atd.
Velkou výhodou oproti standartnímu internetu je, že pokud chcete něco publikovat, nemusíte
vlastnit server ani registrovat doménu. Velikou nevýhodou je dle mého názoru nemožnost
vymazat jakýkoliv soubor, jakmile je dostatečně populární tak ze sítě prostě nezmizí. Nicméně
není stále dostatečně populární, aby nahradila klasický internet, a to se dle mého názoru nikdy
nastane, pokud nezačne platit nějaká veliká cenzura. Potom by freenet mohl být zajímavou
cestou.