<<

Zprovoznění a popis funkčnosti

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

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

2

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 3

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 4

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

5

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 6

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

7

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 , 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 8

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 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 9

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

10

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.

11

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.

12

VIII. Závěr

Freenet je určitě velmi zajímavou alternativou jiných podobných sítí jako například 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.

13