Freenet
Aluksi Darknetin sijainnit on jaettu satunnaisesti. Tämä tarkoittaa, että pyyntöjen reititys on periaatteessa satunnaista. Opennetissä yhteydet muodostetaan liittymispyynnöllä, joka tarjoaa optimoidun verkkorakenteen, jos olemassa oleva verkko on jo optimoitu. Vastikään aloitetussa Freenetissä tiedot jakautuvat siis jokseenkin satunnaisesti.
Kun sijainnin vaihtaminen (Darknetissä) ja polkujen taittaminen (Opennetissä) etenevät, lähellä toisiaan olevilla solmuilla on yhä useammin läheiset sijainnit ja kaukana olevilla solmuilla kaukaiset sijainnit. Tiedot, joilla on samanlaiset avaimet, tallennetaan samaan solmuun.
Tuloksena on, että verkko organisoituu itsestään hajautetuksi, klusteroituneeksi rakenteeksi, jossa solmut pyrkivät pitämään hallussaan tietoalkioita, jotka ovat avainavaruudessa lähellä toisiaan. Tällaisia klustereita on todennäköisesti useita eri puolilla verkkoa, ja mikä tahansa dokumentti kopioidaan useita kertoja riippuen siitä, kuinka paljon sitä käytetään. Tämä on eräänlainen ”spontaani symmetrian rikkoutuminen”, jossa alun perin symmetrinen tila (kaikki solmut ovat samanlaisia ja niillä on satunnaiset alkuavaimet toisilleen) johtaa erittäin epäsymmetriseen tilanteeseen, jossa solmut erikoistuvat tietoihin, joilla on toisiinsa läheisesti liittyvät avaimet.
On olemassa voimia, joilla on taipumus aiheuttaa klusteroitumista (jaettu läheisyydentuntemusdata leviää kaikkialle verkkoon), ja voimia, joilla on taipumus hajottaa klustereja (yhteisesti käytetyn datan paikallinen välimuistiin tallentaminen). Nämä voimat ovat erilaisia riippuen siitä, kuinka usein tietoa käytetään, niin että harvoin käytetty tieto on yleensä vain muutamassa solmussa, jotka ovat erikoistuneet kyseisen tiedon tarjoamiseen, ja usein käytetyt kohteet ovat levinneet laajalle koko verkkoon. Tämä automaattinen peilaaminen ehkäisee aikoja, jolloin verkkoliikenne ylikuormittuu, ja kehittyneen verkon älykkään reitityksen ansiosta n-kokoisen verkon pitäisi vaatia keskimäärin vain log(n)-aikaa asiakirjan hakemiseen.
KeysEdit
Avaimet ovat hasheja: avainten läheisyydestä puhuttaessa ei ole olemassa semanttisen läheisyyden käsitettä. Siksi avainten läheisyyden ja aineistojen samanlaisen suosion välillä ei ole korrelaatiota, kuten voisi olla, jos avaimilla olisi jokin semanttinen merkitys, jolloin vältyttäisiin suosittujen aiheiden aiheuttamilta pullonkauloilta.
Freenetissä on käytössä kaksi pääasiallista avainten lajia, Content Hash Key (CHK) ja Signed Subspace Key (SSK). SSK:n alatyyppi on Updatable Subspace Key (USK), joka lisää versioinnin sisällön turvallisen päivittämisen mahdollistamiseksi.
CHK on asiakirjan SHA-256-hash (salauksen jälkeen, joka itsessään riippuu selkotekstin hashista), ja näin ollen solmu voi tarkistaa, että palautettu asiakirja on oikea hashtaamalla sen ja vertaamalla digestiä avaimeen. Tämä avain sisältää Freenetissä olevien tietojen lihan. Se sisältää kaikki binääridatan rakennuspalikat sisältöä varten, joka toimitetaan asiakkaalle uudelleenkokoamista ja salauksen purkamista varten. CHK on luonteeltaan ainutlaatuinen ja tarjoaa väärentämisen varman sisällön. Jos vihamielinen solmu muuttaa CHK:n alla olevaa dataa, seuraava solmu tai asiakas havaitsee sen välittömästi. CHK:t vähentävät myös tietojen redundanssia, koska samoilla tiedoilla on sama CHK, ja kun useat sivustot viittaavat samoihin suuriin tiedostoihin, ne voivat viitata samaan CHK:hon.
SSK:t perustuvat julkisen avaimen salaukseen. Tällä hetkellä Freenet käyttää DSA-algoritmia. SSK:lla lisätyt asiakirjat allekirjoittaa lisääjä, ja jokainen solmu voi tarkistaa tämän allekirjoituksen varmistaakseen, että tietoja ei ole peukaloitu. SSK:iden avulla voidaan luoda Freenetiin todennettavissa oleva pseudonyymi identiteetti, ja yksi henkilö voi lisätä useita asiakirjoja turvallisesti. SSK:lla lisätyt tiedostot ovat käytännössä muuttumattomia, koska toisen samannimisen tiedoston lisääminen voi aiheuttaa törmäyksiä. USK:t ratkaisevat tämän lisäämällä avaimiin versionumeron, jota käytetään myös päivitysilmoituksen antamiseen avaimille, jotka on rekisteröity kirjanmerkeiksi web-käyttöliittymässä. Toinen SSK:n alatyyppi on avainsanalla allekirjoitettu avain (Keyword Signed Key, KSK), jossa avainpari luodaan tavanomaisella tavalla yksinkertaisesta ihmisen luettavissa olevasta merkkijonosta. Asiakirjan lisääminen KSK:n avulla mahdollistaa asiakirjan hakemisen ja salauksen purkamisen, jos ja vain jos pyynnön esittäjä tuntee ihmisen luettavissa olevan merkkijonon; tämä mahdollistaa helpommat (mutta vähemmän turvalliset) URI:t, joihin käyttäjät voivat viitata.
Leave a Reply