Freenet

A Darknetben a helyszínek kezdetben véletlenszerűen vannak elosztva. Ez azt jelenti, hogy a kérések útválasztása lényegében véletlenszerű. Az Opennetben a kapcsolatokat egy csatlakozási kéréssel hozzák létre, amely optimalizált hálózati struktúrát biztosít, ha a meglévő hálózat már optimalizált. Tehát egy újonnan indított Freenet-ben az adatok némileg véletlenszerűen lesznek elosztva.

Ahogy a helycsere (a Darknetben) és az útvonal összehajtás (az Opennetben) előrehaladtával az egymáshoz közel lévő csomópontok egyre inkább közeli helyeket, a távol lévő csomópontok pedig távoli helyeket kapnak. A hasonló kulcsokkal rendelkező adatokat ugyanazon a csomóponton fogják tárolni.

Az eredmény az lesz, hogy a hálózat önszerveződően egy elosztott, klaszteres struktúrává alakul, ahol a csomópontok inkább olyan adatelemeket tárolnak, amelyek a kulcstérben közel vannak egymáshoz. Valószínűleg több ilyen klaszter is lesz a hálózatban, bármelyik dokumentumot többször is megismétlik, attól függően, hogy mennyire használják. Ez egyfajta “spontán szimmetriatörés”, amelyben egy kezdetben szimmetrikus állapot (minden csomópont azonos, egymás számára véletlenszerű kezdeti kulcsokkal) egy erősen aszimmetrikus helyzethez vezet, ahol a csomópontok olyan adatokra specializálódnak, amelyek kulcsai közel állnak egymáshoz.

Vannak olyan erők, amelyek inkább klaszteresedést okoznak (a közös közeli adatok terjednek a hálózatban), és olyan erők, amelyek inkább felbontják a klasztereket (a gyakran használt adatok helyi gyorsítótára). Ezek az erők eltérőek lesznek attól függően, hogy milyen gyakran használják az adatokat, így a ritkán használt adatok általában csak néhány olyan csomóponton lesznek, amelyek az adott adatok szolgáltatására specializálódtak, a gyakran használt elemek pedig széles körben eloszlanak a hálózatban. Ez az automatikus tükrözés ellensúlyozza azokat az időszakokat, amikor a webes forgalom túlterhelté válik, és egy kiforrott hálózat intelligens útválasztásának köszönhetően egy n méretű hálózatnak átlagosan csak log(n) időre van szüksége egy dokumentum lekérdezéséhez.

KeysEdit

A kulcsok hash-ek: a kulcsok közelségéről beszélve nincs szemantikai közelség fogalma. Ezért nem lesz összefüggés a kulcs közelség és az adatok hasonló népszerűsége között, mintha a kulcsok valamilyen szemantikai jelentést hordoznának, így elkerülhetők a népszerű témák által okozott szűk keresztmetszetek.

A Freenet-en a kulcsoknak két fő fajtája van használatban: a Content Hash Key (CHK) és az Signed Subspace Key (SSK). Az SSK-k egyik altípusa az Updatable Subspace Key (USK), amely a tartalom biztonságos frissítésének lehetővé tétele érdekében verziókezeléssel egészül ki.

A CHK egy dokumentum SHA-256-os hash-ja (a titkosítás után, amely maga is a plaintext hash-jától függ), és így egy csomópont ellenőrizheti a visszaküldött dokumentum helyességét hash-olással és a digest kulcsával való összevetésével. Ez a kulcs tartalmazza a Freeneten lévő adatok húsát. Ez hordozza az összes bináris adat építőelemét a tartalomhoz, amelyet az ügyfélnek kell átadni az újra összerakáshoz és a dekódoláshoz. A CHK természeténél fogva egyedi, és hamisíthatatlan tartalmat biztosít. Ha egy ellenséges csomópont megváltoztatja a CHK alatt lévő adatokat, azt a következő csomópont vagy az ügyfél azonnal észleli. A CHK-k csökkentik az adatok redundanciáját is, mivel ugyanazokhoz az adatokhoz ugyanaz a CHK tartozik, és ha több webhely hivatkozik ugyanazokra a nagy fájlokra, akkor ugyanarra a CHK-ra hivatkozhatnak.

Az SSK-k nyilvános kulcsú kriptográfián alapulnak. Jelenleg a Freenet a DSA algoritmust használja. Az SSK-k alapján beillesztett dokumentumokat a beillesztő írja alá, és ezt az aláírást minden csomópont ellenőrizni tudja, hogy az adatokat ne hamisítsák meg. Az SSK-k ellenőrizhető álneves személyazonosság létrehozására használhatók a Freeneten, és lehetővé teszik, hogy egyetlen személy több dokumentumot is biztonságosan beillesszen. Az SSK-val beillesztett fájlok gyakorlatilag megváltoztathatatlanok, mivel egy második, azonos nevű fájl beillesztése ütközést okozhat. Az USK-k ezt úgy oldják meg, hogy a kulcsokhoz egy verziószámot adnak, amely a webes felületen könyvjelzőként regisztrált kulcsok frissítési értesítésére is szolgál. Az SSK egy másik altípusa a kulcsszóval aláírt kulcs (Keyword Signed Key, KSK), amelyben a kulcspár szabványos módon egy egyszerű, ember által olvasható karakterláncból generálódik. Egy dokumentum KSK használatával történő beillesztése lehetővé teszi a dokumentum visszakeresését és visszafejtését, ha és csak akkor, ha az igénylő ismeri az ember által olvasható karakterláncot; ez kényelmesebb (de kevésbé biztonságos) URI-ket tesz lehetővé a felhasználók számára, amelyekre hivatkozhatnak.

Leave a Reply