Freenet

I början är platserna i Darknet fördelade slumpmässigt. Detta innebär att dirigeringen av förfrågningar i huvudsak är slumpmässig. I Opennet upprättas anslutningar genom en join-förfrågan som ger en optimerad nätverksstruktur om det befintliga nätverket redan är optimerat. Så uppgifterna i ett nystartat Freenet kommer att fördelas något slumpmässigt.

I takt med att location swapping (på Darknet) och path folding (på Opennet) fortskrider kommer noder som ligger nära varandra att i allt högre grad ha nära platser, och noder som ligger långt bort kommer att ha avlägsna platser. Data med liknande nycklar kommer att lagras på samma nod.

Resultatet är att nätet kommer att självorganisera sig till en distribuerad, klustrad struktur där noderna tenderar att hålla dataobjekt som ligger nära varandra i nyckelutrymmet. Det kommer förmodligen att finnas flera sådana kluster i hela nätverket, där varje givet dokument replikeras många gånger, beroende på hur mycket det används. Detta är ett slags ”spontan symmetribrytning”, där ett ursprungligen symmetriskt tillstånd (alla noder är likadana, med slumpmässiga initiala nycklar för varandra) leder till en mycket asymmetrisk situation, med noder som kommer att specialisera sig på data som har nära besläktade nycklar.

Det finns krafter som tenderar att orsaka klusterbildning (data om delad närhet sprids över hela nätverket) och krafter som tenderar att bryta upp kluster (lokal cachelagring av data som används ofta). Dessa krafter kommer att vara olika beroende på hur ofta data används, så att sällan använda data tenderar att finnas på bara några få noder som är specialiserade på att tillhandahålla dessa data, och ofta använda objekt kommer att spridas brett över hela nätverket. Denna automatiska spegling motverkar de tillfällen då webbtrafiken blir överbelastad, och på grund av ett moget nätverks intelligenta routning bör ett nät av storlek n i genomsnitt endast kräva log(n)-tid för att hämta ett dokument.

KeysEdit

Nycklar är hash: det finns ingen föreställning om semantisk närhet när man talar om nyckelns närhet. Därför kommer det inte att finnas någon korrelation mellan nyckelnärhet och liknande popularitet av data som det skulle kunna finnas om nycklarna uppvisade någon semantisk betydelse, vilket gör att man undviker flaskhalsar som orsakas av populära ämnen.

Det finns två huvudvarianter av nycklar som används på Freenet, Content Hash Key (CHK) och Signed Subspace Key (SSK). En undertyp av SSK är Updatable Subspace Key (USK) som lägger till versionering för att möjliggöra säker uppdatering av innehåll.

En CHK är en SHA-256-hash av ett dokument (efter kryptering, som i sig självt beror på hash av klartexten) och därmed kan en nod kontrollera att det återgivna dokumentet är korrekt genom att hasha det och kontrollera digesten mot nyckeln. Denna nyckel innehåller köttet av uppgifterna på Freenet. Den innehåller alla binära databyggstenar för det innehåll som ska levereras till klienten för återmontering och dekryptering. CHK är unik till sin natur och ger ett manipuleringssäkert innehåll. En fientlig nod som ändrar data under en CHK kommer omedelbart att upptäckas av nästa nod eller klienten. CHK:er minskar också redundansen av data eftersom samma data kommer att ha samma CHK och när flera webbplatser hänvisar till samma stora filer kan de hänvisa till samma CHK.

SSK:er är baserade på kryptografi med offentliga nycklar. För närvarande använder Freenet DSA-algoritmen. Dokument som läggs in under SSK:er signeras av den som lägger in dem, och denna signatur kan verifieras av varje nod för att säkerställa att uppgifterna inte är manipulerade. SSK:er kan användas för att skapa en verifierbar pseudonym identitet på Freenet och gör det möjligt för flera dokument att införas säkert av en enda person. Filer som läggs in med ett SSK är i praktiken oföränderliga, eftersom det kan orsaka kollisioner om en andra fil med samma namn läggs in. USKs löser detta genom att lägga till ett versionsnummer till nycklarna som också används för att ge uppdateringsmeddelanden för nycklar som registrerats som bokmärken i webbgränssnittet. En annan undertyp av SSK är Keyword Signed Key, eller KSK, där nyckelparet genereras på ett standardiserat sätt från en enkel människoläsbar sträng. Genom att infoga ett dokument med hjälp av en KSK kan dokumentet hämtas och dekrypteras om och endast om den som begär dokumentet känner till den människoläsbara strängen; detta möjliggör bekvämare (men mindre säkra) URI:er för användarna att hänvisa till.

Leave a Reply