Freenet

**Freenet** je peer-to-peer program, ktorý umožňuje anonymné a necenzurovateľné zdieľanie informácií. Freenet funguje tak, že pôvodné súbory (informácie) rozdelí na menšie zašifrované súbory, ktoré distribuuje medzi uzlami (počítačmi) v sieti, čím vytvára distribuované úložisko dát. Žiaden z uzlov tak nevie, aké kúsky informácii má u seba uložené. Jednotlivé uzly taktiež preposielajú požiadavky, takže žiaden z nich nevie, kto požaduje konkrétne zašifrované súbory.

## Obsah
Freenet na rozdiel od Tor-u nie je určený na prehliadanie stránok na internete. Skôr sa podobá na tor hidden service, pretože umožňuje prehliadať len obsah vnútri siete.

Pomocou Freenetu možno prehliadať internetové stránky v sieti Freenet a ďalšími programami a doplnkami Freenet využiť na diskutovanie, nahrávanie a sťahovanie súborov alebo posielanie emailov vnútri siete.

### Diskusné programy

; Frost: Frost je diskusný program, ktorý zároveň umožňuje nahrávanie a sťahovanie súborov. Napriek tomu, že je kvôli princípom svojho fungovania náchylný na spam a denial-of-service útok a vývojari ho neodporúčajú používať, je najpopulárnejším diskusným programom v sieti Freenet.

; Freenet Messaging System (FMS): FMS je diskusný program, ktorý rieši niektoré problémy Frostu pomocou hodnotenia ostatných identít (trust list). FMS sťahuje len správy od identít, ktorým dôverujete a od identít, ktorým dôverujú tieto identity. Tým vytvára tzv. sieť dôvery.

; Sone: Sone je sociálna sieť vnútri siete Freenet.

; FLIP: FLIP je program, ktorý umožňuje diskutovať vnútri siete Freenet pomocou IRC protokolu.

### Ďalšie nástroje
; jSite : jSite je program určený na nahrávanie internetových stránok do siete Freenet.

; Infocalypse : Infocalypse je nadstavba nad revízny program Mercurial (softvér).

## Technický návrh
Freenet ukladá v sieti jednotlivé súbory a umožňuje k ním prístup pomocou príslušného kľúča. Súbor uložený v sieti je distribuovaný po celej sieti a uložený v niekoľkých rôznych uzloch (počítačoch). Šifrovanie a preposielanie výrazne sťažuje odhadnúť, ktorý uzol niečo nahral do siete, kto to sťahuje alebo kde je vôbec konkrétny súbor uložený. To zabezpečuje anonymitu všetkých účastníkov a znemožňuje cenzúru. Takýto prístup zároveň môže právne ochrániť prevádzkovateľov jednotlivých Freenet uzlov.

### Distribuované úložisko dát
Na rozdiel od iných peer-to-peer programov Freenet nielen prenáša dáta medzi jednotlivými uzlami, ale zároveň ich aj ukladá. Každý uzol poskytuje určitý diskový priestor zvolený prevádzkovateľov, kde sa ukladajú dáta. V súčasnosti takto Freenet poskytuje dátové úložisko o veľkosti viac než 120 terabajtov.

Keď chce niekto zdieľať súbor v sieti Freenet, musí ho najprv nahrať. Počas nahrávania sa súbor rozdelí na menšie časti, ktoré sa zašifrujú a spolu s vytvorenými samoopravnými časťami sa každá z nich viacnásobne uloží na niekoľko uzlov. Výhodou takéhoto prístupu je, že dostupnosť súboru nezávisí na pôvodnom uzle, ktorý už môže byť vypnutý. Nevýhodou naopak je, že žiaden ďalší uzol nie je zodpovedný za dostupnosť súboru.

Nevýhodou naopak je, že Freenet "zabúda". Nepopulárne súbory sa časom stratia zo siete. Pre zotrvanie súboru v sieti je potrebné, aby bol pravidelne nahrávaný alebo aby bol dostatočne populárny. Populárne súbory sa totiž v sieti uložia na viacero uzlov, čím sa stanú dostupnejšie.

### Sieť
Freenet je postavený na princípe small world network. Každý uzol sa pripojí len k niektorým ďalším uzlom, ktoré sú pripojené k iným uzlom, čím sú dostupné dáta z celej siete aj bez priameho spojenia.

Freenet nerozlišuje klienta a server. Každý uzol sa správa ako server, čiže u seba ukladá a preposiela dáta a zároveň môže slúžiť ako klient, čiže umožní prevádzkovateľovi uzla prehliadať obsah siete.

### Kľúče
Každý súbor (informácia) v sieti Freenet má svoj kľúč, pomocou ktorej sa dá zobraziť. Existuje niekoľko druhov kľúčov:
* *CHK* (*Content Hash Keys*) - môže ísť napríklad o .pdf dokument, kde kľúč je SHA-256 hašom tohto dokumentu. Takto si môže každý uzol overiť, či niektorý iný uzol nepozmenil pôvodný súbor.
* *SSK* (*Signed Subspace Keys*) - je kľúč podpísaný pôvodným uzlom. Žiaden iný uzol nedokáže vytvoriť rovnaký kľúč, čo sa využíva pri tvorbe internetových stránok v sieti Freenet, aby bolo možné overiť, že každá novšia verzia stránky pochádza od majiteľa rovnakého privátneho kľúča.
* *USK* (*Updateable Subspace Keys*) - je v podstate len obálkou pre SSK kľúč, pomocou ktorej Freenet dokáže vyhľadať aktuálnu najnovšiu verziu SSK kľúča. Používa sa pri tvorbe internetových stránok v sieti, kedy ostatným používateľom stačí poznať USK kľúč, čím dostanú aktuálnu verziu stránky.
* *KSK* (*Keyword Signed Keys*) - je špeciálny druh SSK kľúča, kde kľúč pozostáva z názvu pôvodného súboru, napríklad KSK@subor.txt Nevýhodou je, že viacero ľudí môže vložiť rôzne súbory s rovnakým KSK kľúčom, čo v sieti Freenet nazýva spamovaním.

## Darknet a Opennet
Od verzie 0.7 Freenet podporuje darknet aj opennet pripojenie.

### Opennet
Každý uzol pozná niekoľko centrálnych uzlov (seed nodes), prostredníctvom ktorých sa dokáže potom automaticky pripojiť na ďalšie uzly. Tento proces prebieha pokým je uzol spustený a automaticky bez zásahu prevádzkovateľa. Nevýhodou je, že prevádzkovateľ uzla nepozná dôveryhodnosť uzlov, na ktoré je automaticky pripojený. Výhodou je, že môžete používať Freenet bez toho, aby ste poznali niekoho ďalšieho, kto ho taktiež používa.

Tieto centrálne uzly (seed nodes) prevádzkujú dobrovoľníci.

### Darknet
Darknet pripojenie vytvára prevádzkovateľ uzla tým, že sa pripojí na konkrétne uzly prevádzkované ľudmi, ktorých pozná a dôveruje im. Takto sa výrazne znižuje riziko možných útokov zameraných na odhalenie identity a zároveň sťažuje prevádzkovateľovi internetového pripojenia detegovať, že v jeho sieti niekto používa Freenet.

Nevýhodou je, že musíte poznať niekoho, kto taktiež používa Freenet a zároveň je dôveryhodný.

## Referencie

## Externé odkazy
* The Freenet Project
* Freenet Frequently Asked Questions 
* Sťahovanie súborov v sieti Freenet

## Zdroje

Kategória:Spoločné používanie súborov

Kategória:Kryptografický softvér