Top Banner
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
13

Zprovoznění a popis funkčnosti FreeNet

Nov 15, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Zprovoznění a popis funkčnosti FreeNet

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

Page 2: Zprovoznění a popis funkčnosti FreeNet

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

Page 3: Zprovoznění a popis funkčnosti FreeNet

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

Page 4: Zprovoznění a popis funkčnosti 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

Page 5: Zprovoznění a popis funkčnosti FreeNet

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ý.

Page 6: Zprovoznění a popis funkčnosti FreeNet

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

Page 7: Zprovoznění a popis funkčnosti FreeNet

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

Page 8: Zprovoznění a popis funkčnosti FreeNet

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:

[email protected]

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

Page 9: Zprovoznění a popis funkčnosti FreeNet

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

Page 10: Zprovoznění a popis funkčnosti FreeNet

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ý.

Page 11: Zprovoznění a popis funkčnosti FreeNet

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.

Page 12: Zprovoznění a popis funkčnosti FreeNet

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.

Page 13: Zprovoznění a popis funkčnosti FreeNet

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.