Freenet (software)
Freenet | |
---|---|
![]() | |
Grundlæggende data | |
Vedligeholder | Freenet -projektet [1] |
Forlagsår | 25. juli 2000[2] |
Nuværende version | 0.7.5 bygge 1490[3] ( 14. marts 2021 ) |
operativ system | Platform uafhængig |
programmeringssprog | Java |
kategori | Sikkerhedssoftware , anonymitet , peer-to-peer |
Licens | GNU General Public License |
Tysktalende | Ja |
freenetproject.org |
Freenet er en peer-to-peer software til oprettelse af et computernetværk , hvis formål er at lagre data på en distribueret måde og derved modvirke censur og muliggøre anonym udveksling af oplysninger. Dette mål skal nås gennem decentralisering , redundans , kryptering og dynamisk routing . Freenet udvikles som gratis software under GPL . I forenklede termer kan Freenet ses som en vagabond- datalager , som alle deltagere kan få lige adgang til ( peer-to-peer ). Centrale navneservere, serverharddiske og lignende strukturer undgås konsekvent på en konstruktiv måde. Kun det almindelige internets overførselsfunktionalitet er påkrævet. Ifølge udviklernes vurdering er det stadig en prøveversion .
historie
I 1999 beskrev den irske studerende Ian Clarke et "distribueret decentraliseret informationslagrings- og hentningssystem" i et papir. [4] Kort efter udgivelsen begyndte Clarke og et lille antal frivillige at implementere denne idé som gratis software.
I marts 2000 var den første version klar til offentliggørelse. I den følgende periode var der megen omtale om Freenet, men pressen var hovedsageligt bekymret over effekterne på ophavsrettigheder og mindre med målet om fri kommunikation. Den akademiske verden var også optaget af Freenet: Ifølge CiteSeer var Clarkes papir det mest citerede videnskabelige dokument inden for datalogi i 2000.
Freenet udvikles distribueret ved hjælp af Internettet. Projektet grundlagde nonprofit "The Freenet Project Inc." og har siden september 2002 ansat Matthew Toseland som fuldtidsprogrammerer, som betales af donationer og provenu fra offshoot-produkter . Derudover arbejder andre frit.
I januar 2005 var det planlagt at omskrive den næste version, Freenet 0.7, fuldstændigt. I midten af april 2005 begyndte Freenet-udviklerne at tale på den åbne mailingliste om at designe Freenet som et såkaldt Darknet , hvilket betyder, at adgang kun kan finde sted på "invitation" af eksisterende deltagere. (Se afsnittet Darknet for detaljer.) Dette element er den vigtigste nye funktion i 0.7.
Ideen bag det planlagte Freenet 0.7 blev derefter præsenteret af Ian Clarke og matematiker Oskar Sandberg ved to hackerbegivenheder, den 29. juli 2005 på den 13. DEFCON og den 30. december 2005 på den 22. Chaos Communication Congress (22C3). [5] [6]
I begyndelsen af april 2006 blev den første alfa -version af Freenet 0.7 offentliggjort.
Andre
I slutningen af 2003 havde en gruppe ved navn Freenet-China oversat programmet til kinesisk og distribueret det i Folkerepublikken Kina på cd'er og disketter . [7] Den kinesiske computer og internetfiltre blokerer ordet "Freenet" (pr. 30. august 2004). [8] Freenet internetforbindelser er blokeret for versioner før 0.7. Dette var muligt, fordi der indtil da blev genereret et par forudsigelige bytes i begyndelsen af en forbindelsesetablering.
En analyse, der blev offentliggjort i maj 2004, viser, at de fleste Freenet -brugere på det tidspunkt kom fra USA (35%), Tyskland (15%), Frankrig (11%), Storbritannien (7%) og Japan (7%).[9] Denne analyse er sandsynligvis baseret på deltagerens IP-adresseliste, som blev leveret af projektet til versioner før 0.7, og tager derfor ikke hensyn til separate Freenet-netværk som Freenet-Kina.
brug
Hver bruger forsyner Freenet med en del af deres harddisk som hukommelse. Du deler ikke bestemte mapper eller filer med andre, som det er tilfældet med konventionel fildeling , men reserverer en vis mængde harddiskplads (i størrelsesordenen gigabyte ), som Freenet bruger uafhængigt med krypterede bits af data fra netværket .
Brugen af Freenet kan sammenlignes med WorldWide Web (WWW). Ved hjælp af en hvilken som helst browser kan du surfe på Freenet, som du er vant til fra WWW. FProxy -programmodulet fungerer som et lokalt serverprogram og er generelt tilgængeligt på http: // localhost: 8888 /. Fra denne indgangsside kan du anmode om eller uploade individuelle Freenet -adresser, og der findes links til et lille antal Freenet -websteder, som fungerer som det første kontaktpunkt på Freenet.
En freesite repræsenterer for Freenet nogenlunde det samme, som websteder repræsenterer for WWW. Dette er dokumenter, der er tilgængelige via Freenet -gatewayen. De kan indeholde links til andre gratis websteder eller til andre data, der kan tilgås ved hjælp af en Freenet -nøgle.
Ved hjælp af såkaldte Activelinks kan distributionen af udvalgte gratis sider fremmes. Hvis du medtager et lille billede af en anden freesite på din egen freesite, promoveres dette automatisk, når dit eget freesite er indlæst med billedet.
Det tager relativt lang tid at indlæse indhold, da Freenet sætter sikkerhedsprioriteter. I begyndelsen kan det tage flere minutter, fordi deltageren endnu ikke er godt integreret i Freenet -netværket. Kun gennem integrationen lærer programmet, hvilke andre deltagere der bedst kan sende anmodninger til.
anvendelsesområde
Ud over den enkle offentliggørelse af oplysninger er Freenet velegnet til tidsforsinket kommunikation, hvilket betyder, at både en slags e-mail- system og diskussionsfora med fordel kan bygge videre på Freenet.
En meget almindelig type gratis websted er blogs (weblogs), som Freenet -brugere omtaler som "flogs" (freelogs). Et særligt incitament for etableringen er den anonymitet, hvormed man kan offentliggøre sine rapporter på Freenet.
WebOfTrust: Spam-resistent, anonym kommunikation
Med WebOfTrust-plug-in tilbyder Freenet et anti-spam-system, der er baseret på anonyme identiteter og tillidsværdier. Enhver anonym identitet kan give positiv eller negativ tillid til enhver anden anonym identitet. De kendte identiteters tillidsværdier slås sammen for at kunne vurdere ukendte identiteter. Kun data fra identiteter med ikke-negativ tillid vil blive downloadet.
Nye identiteter kan gøres kendt via Captcha -billeder. De løser captchas af andre identiteter og får en tillid til 0 fra disse identiteter. Som et resultat er de synlige for disse identiteter, men ikke for andre. Hvis de derefter skriver meningsfulde indlæg, kan de modtage positiv tillid (> 0), så de bliver synlige for alle identiteter, der har tillid til de tillidsfulde identiteter.
Software til Freenet
Der er speciel software til upload af data, hvilket især gør det lettere at udveksle større filer. Disse er internt opdelt i små stykker ( opdelte filer ) og om nødvendigt forsynet med redundante datablokke ( fejlkorrektion ).
Tekniske detaljer
funktionalitet
Alt indhold gemmes i såkaldte nøgler . Nøglen er klart afledt af indholdets hashværdi og har intet at gøre med indholdet hvad angår udseende. (For eksempel kan en tekstfil med grundloven have nøglen YQL .) Nøglerne gemmes i en såkaldt distribueret hashtabel .
Hver deltager gemmer ikke kun det indhold, de tilbyder sig selv. Det såkaldte - i stedet er alt indhold på de forskellige computere noder (engelske noder) - distribueret. Valget af, hvor en fil gemmes, foretages ved routing . Over tid har hver node specialiseret sig i bestemte nøgleværdier.
Lagringen på computeren er krypteret og uden den respektive brugers viden. Denne funktion blev introduceret af udviklerne for at give Freenet -brugere mulighed for troværdigt at nægte kendskab til de data, der tilfældigvis holdes klar til netværket i den lokale hukommelse, der er forbeholdt Freenet. [10] Indtil videre kendes der imidlertid ingen sager i retspraksis, i hvert fald i Tyskland, hvor muligheden blev brugt til at nægte viden, så effektiviteten af denne foranstaltning ved tyske domstole ikke er blevet afklaret.
Når en fil skal downloades fra Freenet, søges der efter routingalgoritmen. Anmodningen sendes til en node, hvis specialisering er så meget som muligt på den ønskede nøgle.
Eksempel: Vi leder efter HGS -nøglen. Vi er forbundet til andre Freenet -noder, der har følgende specialiseringer: ANF, DYL, HFP, HZZ, LMO. Vi vælger HFP som adressat for vores anmodning, fordi dets specialisering kommer tættest på den nøgle, vi leder efter.
Hvis adressaten ikke har nøglen i hukommelsen, gentager han proceduren, som om han selv ville have nøglen: Han sender anmodningen videre til den knude, der efter hans mening er bedst specialiseret i den.
Og sådan fortsætter det. Når en node endelig har den fil, den leder efter, transporteres den fra stedet til den oprindelige rekvirent. Men denne transport finder sted via alle noder, der er involveret i forespørgselskæden . Dette design er et centralt element i Freenet. Det tjener til at bevare anonymiteten af kilden og modtageren. For hvis du selv modtager en anmodning, kan du ikke vide, om anmoderen selv vil have filen eller kun vil videresende den.
Når filen overføres, gemmer nogle computere en kopi i deres hukommelse. Populære filer når mange computere i Freenet -netværket. Dette øger sandsynligheden for, at yderligere anmodninger om denne fil vil blive gennemført hurtigere.
Upload af en fil til Freenet fungerer på en meget lignende måde: Freenet leder også efter noden her, hvis specialisering kommer tættest på nøglen. Dette er nyttigt, så filen er der, hvor anmodningerne om sådanne nøgler sendes.
Da formålet med at uploade ikke er at finde nogen med dataene efter et par omdirigeringer, sættes der på forhånd en værdi for, hvor ofte dataene omdirigeres.
Problemer
For at Freenet skal fungere, skal du have adressen på mindst en anden bruger ud over selve programmet. Projektet understøtter integrationen af nye noder ved at tilbyde en opdateret samling af sådanne adresser ( seednodes ) på sit websted . Men når dette tilbud forsvinder eller er utilgængeligt for en person med begrænset adgang til internettet, bliver det første forbindelsespunkt et problem. Af sikkerhedshensyn og netværkstopologi er det desuden mere ønskeligt, hvis private frøknude fordeles mellem venner.
Lavhastigheds-, asymmetriske eller kortlivede noder kan hindre datastrømmen. Freenet forsøger at modvirke dette med intelligent routing (se routing ).
Freenet kan ikke garantere permanent lagring af data. Da lagerplads er begrænset, er der en afvejning mellem udgivelse af nyt indhold og opbevaring af gammelt indhold.
nøgle
Freenet har to typer nøgler.
Content-hash-nøgle (CHK)
CHK er datalagringsnøglen på lavt niveau . Den oprettes ved at hasche indholdet af den fil, der skal gemmes. Dette giver hver fil en praktisk talt unik, absolut identifikator ( GUID ). Op til version 0.5 / 0.6 SHA-1 bruges til dette.
I modsætning til URL'er kan du nu være sikker på, at CHK -referencen refererer til præcis den fil, du mente. CHK'er sikrer også, at identiske kopier, der uploades til Freenet af forskellige personer, automatisk flettes, fordi hver deltager beregner den samme nøgle til filen.
Signeret delrumsnøgle (SSK)
SSK bruger et asymmetrisk kryptosystem til at oprette et personligt navnerum, som alle kan læse, men kun ejeren kan skrive til. Først genereres et tilfældigt nøglepar. For at tilføje en fil skal du først vælge en kort beskrivelse, for eksempel politik / tyskland / skandale . Filens SSK beregnes derefter ved at hasche den offentlige halvdel af delrumsnøglen og den beskrivende tegnstreng uafhængigt, sammenkoble resultaterne og derefter hash -resultatet igen. Signering af filen med den private halvdel af nøglen muliggør verificering, da hver node, der behandler SSK -filen, bekræfter dens signatur, før den accepteres.
For at hente en fil fra et undernavnsrum skal du kun bruge dette nøgles offentlige nøgle og den beskrivende tegnstreng, hvorfra SSK kan gengives. For at tilføje eller opdatere en fil skal du have den private nøgle for at oprette en gyldig signatur. SSK'er muliggør tillid, fordi de garanterer, at alle filer i undernavnsrummet blev oprettet af den samme anonyme person. Så de forskellige praktiske anvendelsesområder for Freenet er mulige (se anvendelsesområde ).
Traditionelt bruges SSK'er til indirekte at gemme filer ved at indeholde pointer, der peger på CHK'er frem for at gemme selve dataene. Disse "indirekte filer" kombinerer læsbarhed for mennesker og autentisering af forfatteren med hurtig verifikation af CHK'er. De tillader også, at data opdateres, mens den refererende integritet bevares: For at opdatere uploader dataejeren først en ny version af de data, der modtager en ny CHK, da indholdet er anderledes. Ejeren opdaterer derefter SSK, så den peger på den nye version. Den nye version vil være tilgængelig under den originale SSK, og den gamle version vil fortsat være tilgængelig under den gamle CHK.
Indirekte filer kan også bruges til at opdele store filer i mange bidder ved at uploade hver del under en anden CHK og en indirekte fil, der peger på alle bidderne. I dette tilfælde bruges CHK imidlertid også mest til den indirekte fil. Endelig kan indirekte filer også bruges til at oprette hierarkiske navnerum, hvor mappefiler peger på andre filer og mapper.
SSK kan også bruges til at implementere et alternativt domænenavnesystem til noder, der ofte ændrer deres IP -adresse. Hver af disse noder ville have deres eget underrum og kunne kontaktes ved at hente deres offentlige nøgle for at finde den aktuelle adresse. Sådanne adresseopløsningsnøgler eksisterede faktisk op til version 0.5 / 0.6, men de er blevet afskaffet.
Beskyttelse mod overdrevne anmodninger
Forespørgsler og uploads leveres med en HTL (engelsk humle til live baseret på TTL , det vil sige, hvor ofte kan de videresendes?), Hvilket reduceres med 1 efter hver videresendelse. Der er en øvre grænse for startværdien, så netværket ikke belastes af handlinger med latterligt høje værdier. Den aktuelle værdi er 20: Hvis en anmodning ikke returnerer et resultat efter så mange hop, er indholdet sandsynligvis ikke tilgængeligt - eller routingen fungerer ikke, men højere HTL'er hjælper heller ikke. Det samme gælder for upload: efter 20 humle bør information formidles tilstrækkeligt. (Denne spredning kan helt sikkert stige ved forespørgsel på dataene.)
Routing
I Freenets routing videresendes en anmodning fra behandlingsnoden til en anden, specialiseringen, er så ensartet som muligt efter ekspeditørens opfattelse, den søgte nøgle.
Freenet har således taget imod de to hovedalternativer:
- Et centralt indeks for alle tilgængelige filer - den enkleste routing, f.eks. Brugt af Napster - er sårbar på grund af centraliseringen.
- Formidling af anmodningen til alle tilsluttede noder - f.eks. Brugt af Gnutella - spilder ressourcer og er ikke skalerbar .
Den måde, hvorpå Freenet beslutter, hvem der skal videresende den til, udgør kernen i Freenet -algoritmen.
Gammel routing
Freenets første routingsalgoritme var relativt enkel: Hvis en node videresender en anmodning om en bestemt nøgle til en anden node, og sidstnævnte kan opfylde den, er adressen på en returnerende node angivet i svaret. Det kan - kun muligvis - være den person, der gemte dataene lokalt. Det antages, at den angivne knude er en god adresse til yderligere forespørgsler til lignende nøgler.
En analogi til afklaring: Fordi din ven Heinrich var i stand til med succes at besvare et spørgsmål om Frankrig, burde han også være en god kontaktperson for et spørgsmål om Belgien.
På trods af sin enkelhed har denne fremgangsmåde vist sig at være meget effektiv, både i simuleringer og i praksis. En af de forventede bivirkninger var, at noder har tendens til at specialisere sig inden for bestemte nøgleområder. Dette kan ses analogt med, at folk specialiserer sig inden for bestemte fagområder. Denne effekt blev observeret med rigtige Freenet -noder i netværket; følgende billede repræsenterer nøglerne gemt af en knude:
X -aksen repræsenterer nøglerummet , fra tast 0 til tast 2160 -1. De mørke striber viser områder, hvor noden har detaljeret viden om, hvor anmodninger om sådanne nøgler skal dirigeres.
Hvis noden lige var blevet initialiseret, ville nøglerne være jævnt fordelt over nøglerummet. Dette er en god indikator for, at routingsalgoritmen fungerer korrekt. Noder specialiserer sig, som i grafikken, gennem effekten af feedback, når en node med succes svarer på en anmodning om en bestemt nøgle - det øger sandsynligheden for, at andre noder videresender anmodninger om lignende nøgler til den i fremtiden. Over en længere periode sikrer dette den specialisering, der er tydeligt synlig i diagrammet ovenfor.
Næste generations routing (NGR)
NGR er designet til at træffe beslutninger om routing meget smartere ved at indsamle omfattende information for hver knude i routingtabellen, herunder svartid ved anmodning om bestemte nøgler, procentdelen af anmodninger, der har fundet oplysninger, og den tid det tog at etablere en første forbindelse. Når en ny anmodning modtages, bruges disse oplysninger til at estimere, hvilken knude der sandsynligvis vil være i stand til at hente dataene på mindst mulig tid, og det vil være den knude, hvortil anmodningen vil blive dirigeret.
Data Svar estimat
Den vigtigste værdi er estimatet af, hvor lang tid det vil tage at få dataene, når der foretages en forespørgsel. Algoritmen skal opfylde følgende kriterier:
- Han skal være i stand til at foretage fornuftige gæt om nøgler, som han endnu ikke har set.
- Det skal være progressivt: hvis ydelsen af en node ændrer sig over tid, bør det repræsenteres. Men han må ikke være overdrevent følsom over for de seneste udsving, som afviger væsentligt fra gennemsnittet.
- Det skal være skalafrit : Forestil dig en naiv implementering, der opdeler nøglerummet i et antal sektioner og har et gennemsnit for hver. Forestil dig nu en node, hvor de fleste af de indgående anmodninger er i en meget lille del af nøglerummet. Vores naive implementering ville ikke være i stand til at repræsentere variationer i responstid i dette lille område og ville derfor begrænse nodens evne til nøjagtigt at estimere routingtiden.
- Det skal være effektivt programmerbart.
NGR opfylder disse kriterier: Der vil være Bevar referencepunkter - det er der konfigurerbar, 10 er en typisk værdi - som i første omgang er jævnt fordelt over nøglerummet. Hvis der er en ny routingstidsværdi for en bestemt nøgle, vil de to punkter, der er tættest på den nye værdi, tilnærme den. Omfanget af denne tilnærmelse kan ændres for at justere, hvor "glemsom" estimatoren er.
Diagrammet overfor viser, hvordan to referencepunkter ( blå ) flyttes mod den nye værdi ( rød ).
Hvis der skal oprettes et estimat for en ny nøgle, viser den grønne linje tildelingen af det estimerede svar til nøglen.
Håndtering af forskellige filstørrelser
Der er to tidsværdier, der skal overvejes, når vi modtager et DataReply:
- Tiden til svarets begyndelse kommer.
- Tidspunktet for dataoverførslen.
For at kombinere disse to aspekter til en værdi bruges begge tal til at estimere den samlede tid mellem afsendelse af anmodningen og overførslen . For overførselstiden antages det, at filen har den gennemsnitlige længde af alle data i lokal lagring.
Nu har vi en enkelt værdi, der kan sammenlignes direkte med andre tidsmålinger på anmodninger, selvom filerne har forskellige størrelser.
Hvad skal man gøre, hvis dataene ikke findes
Hvis en anmodning har passeret det maksimale antal noder i henhold til HTL (se Beskyttelse mod overdrevne anmodninger ), sendes meddelelsen "Fil ikke fundet" ( DataNotFound , for kort DNF ) tilbage til forespørgeren.
En DNF kan have to årsager:
- Dataene er tilgængelige i Freenet, men kunne ikke findes. Denne DNF ville afsløre en mangel i routingen af de involverede knuder. Vi kalder dette DNF for ulovligt i det følgende.
- Dataene findes ikke engang. Denne DNF ville ikke vise nogen mangler. Vi kalder det legitimt herunder.
Der er ingen praktisk måde at finde ud af, om en DNF er legitim eller ulovlig. Lad os for et øjeblik gå ud fra, at vi kan identificere ulovlige DNF'er. Så ville omkostningerne være tiden til at modtage det illegitime DNF plus sende en ny anmodning andre steder.
Vi kan estimere førstnævnte ved at se på, hvor lang tid tidligere DNF'er fra den særlige knude tog - i forhold til anmodningens HTL: En anmodning med HTL = 10 vil gå igennem dobbelt så mange noder som en med HTL = 5 og derfor tage omkring to gange så lang tid at returnere DNF. Vi kan estimere den anden værdi ved at tage den gennemsnitlige tid, det tager at modtage data.
Lad os nu forestille os en Freenet -node med perfekt routing, hvis eneste DNF -output ville være legitimt: for hvis dataene var i netværket, ville det finde det med sin perfekte routing. DNF's andel af svarene, som denne knude ville returnere, ville være lig med den legitime DNF's andel. En sådan knude kan praktisk talt ikke eksistere, men vi kan tilnærme den ved at lede efter den node med den laveste andel af DNF i vores routingtabel.
Nu kan vi beregne tidsomkostningerne for DNF'er, og vi kan også tilnærme, hvor stor en andel af DNF'er, der er legitim - og som derfor ikke betragtes som tidstab. Dette giver os mulighed for at tilføje en estimeret omkostning til routingstid for hver node til at tage højde for DNF'er.
Hvordan man håndterer mislykkede forbindelser
Vi kan ikke interagere med stærkt overbelastede noder. Vi kan redegøre for denne mulighed ved at gemme det gennemsnitlige antal mislykkede forbindelser for hver node, og hvor længe hver enkelt varede. Disse værdier føjes til den estimerede routingtid for hver node.
Viden opnået
Et af problemerne i Freenet, der i øjeblikket observeres af NGR, er den tid, det tager for en Freenet -knude at akkumulere tilstrækkelig viden om netværket til at rute effektivt. Dette er især skadeligt for Freenets brugervenlighed, da første indtryk er kritiske for nye brugere, og dette er normalt det værste, da det sker, før Freenet -noden effektivt kan dirigere.
Løsningen er at opbygge en vis kvalificeret tillid mellem Freenet -noder og give dem mulighed for at dele de indsamlede oplysninger oven på hinanden, omend på en temmelig mistænkelig måde.
Der er to måder, hvorpå en Freenet -knude lærer om nye noder.
- Når programmet starter, indlæser det en fil, der indeholder routingsoplevelsen for en anden, mere erfaren knude. Med NGR er disse oplysninger beriget med statistiske data, så en knude, selv når den starter for første gang, allerede har kendskabet til en erfaren knude. Denne viden tilpasses i løbet af hans aktivitet efter hans egen erfaring.
- Den anden mulighed er feltet " Datakilde ", som sendes tilbage til vellykkede forespørgsler. Dette felt indeholder en af noder i kæden og statistiske oplysninger om det. Men da denne information kunne manipuleres, tilpasses den af hver node, der videresender den, hvis noden selv kender til den nævnte adresse.
Fordele ved NGR
- Tilpasser sig netværkstopologien.
- Den gamle routing ignorerede den underliggende internettopologi: noder, der blev forbundet hurtigt og langsomt, blev behandlet ens. I modsætning hertil baserer NGR sine beslutninger på faktiske routingtider.
- Ydeevnen kan evalueres lokalt.
- Med den gamle routing var den eneste måde at evaluere dens ydeevne ved at teste den. Med NGR giver forskellen mellem den estimerede og faktiske routingtid dig en simpel værdi af, hvor effektiv du er. Nu, hvis en ændring af algoritmen resulterer i bedre skøn, ved vi, at den er bedre; og omvendt. Dette fremskynder i høj grad den videre udvikling.
- Nærmer sig det optimale.
- I et miljø, hvor man kun kan stole på ens knude, er det rimeligt at sige, at alle beslutninger bør baseres på egne observationer. Hvis de tidligere egne observationer bruges optimalt, er routingsalgoritmen optimal. Selvfølgelig er der stadig plads til, hvordan algoritmen estimerer routingtiden.
sikkerhed
Darknet
Når du bruger Freenet (status: Version 0.5 / 0.6), kan du hurtigt oprette forbindelse til et stort antal andre brugere. Det er derfor ikke noget problem for en angriber at indsamle IP -adresserne på store dele af Freenet -netværket på kort tid. Dette kaldes høst .
Hvis Freenet er ulovligt i et land som Kina og tillader høst , kan magthaverne simpelthen blokere det: Du starter en node og samler adresser. Dette giver dig en liste over noder i landet og en liste over noder uden for det. Du blokerer alle noder uden for landet og afbryder forbindelsen mellem alle noder i landet, så de ikke længere kan nå Internettet.
Mitte April 2005 brachten die Entwickler von Freenet erstmals auf der offenen Mailingliste ins Gespräch, Freenet als sogenanntes Darknet zu gestalten, das heißt, dass der Zugang nur auf „Einladung“ bestehender Teilnehmer erfolgen kann.
Mit dem Plan, ein globales Darknet zu erschaffen, betreten die Entwickler jedoch Neuland. Sie glauben an die Kleine-Welt -Eigenschaft eines solchen Darknets – das bedeutet, dass jeder Teilnehmer jeden anderen über eine kurze Kette von Hops erreichen kann. Jeder Mensch (sozialer Akteur) auf der Welt sei mit jedem anderen über eine überraschend kurze Kette von Bekanntschaftsbeziehungen verbunden. Weil für eine Einladung in Freenet ein gewisses Vertrauen herrschen muss, erhoffen sie sich, dass die entstehende Netzstruktur das Beziehungsgeflecht der Menschen widerspiegelt.
Diskussionen über diesen Ansatz hatten zur Folge, dass nicht allein ein Darknet entwickelt werden soll, sondern dass es auch ein offenes Netz geben wird, wie es das ganze Freenet vor 0.7 war. Dabei gibt es zwei Möglichkeiten, wie diese beiden in Beziehung zueinander stehen sollen:
- Es gibt Verbindungen zwischen dem offenen Netz und dem Darknet. Es entstünde ein sogenanntes Hybrid -Netz. Inhalte, die in dem einen Netz veröffentlicht werden, sind auch von dem anderen Netz aus abrufbar. Zu einem Problem wird dieser Ansatz, wenn viele kleine, untereinander unverbundene Darknets von der Verbindung durch das offene Netz abhängen. Dies entspricht der aktuellen Implementierung der Version 0.7.0.
- Die beiden Netze sind unverbunden. Inhalte, die in dem einen Netz veröffentlicht werden, sind erst einmal nicht in dem anderen verfügbar. Es wäre aber möglich, Daten ohne Mitwirken des Autors zu übertragen, selbst bei SSK-Schlüsseln. Diese Option wurde in der Vergangenheit vom Hauptentwickler favorisiert (Stand: Mai 2005), da sie trotz des alternativen offenen Netzes ermöglicht, das Funktionieren eines alleinstehenden globalen Darknets zu überprüfen.
Möglichkeit einer demokratischen Zensur
Am 11. Juli 2005 präsentierte Vollzeitentwickler Matthew Toseland einen Vorschlag, wie im Darknet eine demokratische Zensur implementiert werden könnte. Dafür müssten Daten über Hochladevorgänge längere Zeit gespeichert werden. Wenn sich ein Knoten über einen Inhalt „beschwert“, wird diese Beschwerde verbreitet und andere Knoten können sich ihr anschließen. Wenn eine ausreichende Mehrheit benachbarter Knoten eine Beschwerde unterstützt, wird der Hochladevorgang anhand der gespeicherten Daten zurückverfolgt bis zu den Knoten, die die Beschwerde nicht unterstützen.
Sobald diese gefunden wurden, sind mögliche Sanktionen (in ansteigender Reihenfolge der benötigten Mehrheit)
- Rüge
- Deaktivierung des Premix-Routings für den Knoten
- Trennung der Verbindung zum Knoten
- Offenlegung der Identität des Knotens
Während an diesem Vorschlag vor allem kritisiert wurde, dass Freenet sich damit von der absoluten Zensurfreiheit entferne und damit für libertäre Menschen nicht mehr annehmbar sei, hielt Toseland dagegen, dass Freenet in seinem bisherigen Zustand für all diejenigen nicht annehmbar sei, die keine libertären Ansichten hätten und beispielsweise durch Kinderpornografie abgeschreckt würden.
Ein weiterer Kritikpunkt war die Möglichkeit von Gruppendenk -Verhalten bei den Beschwerden.
Zwei Tage nach der Vorstellung rückte Toseland von seinem Vorschlag ab, da die umfassende Datensammlung das Darknet gefährden könnte, wenn einzelne Knoten von einem Angreifer identifiziert und ausgewertet würden.
Zukunft
HTL
HTL (siehe Schutz vor übermäßigen Anfragen ) wird aus Sicherheitsgründen umgestaltet. Es wurde sogar diskutiert, HTL abzuschaffen, da ein Angreifer aus der Zahl Informationen ziehen kann. Das Konzept sähe dann so aus, dass bei jedem Knoten eine bestimmte Wahrscheinlichkeit besteht, dass die Anfrage terminiert wird. So würden manche Anfragen aber unsinnig kleine Strecken zurücklegen und zum Beispiel nach einem Hop terminieren. Außerdem „lernen“ die Knoten bei so unsicheren Anfragen schlecht voneinander. Es wurde ein Kompromiss gefunden:
- Höchste HTL ist 11.
- Anfragen verlassen einen Knoten mit HTL=11.
- Es besteht eine 10-%-Chance, HTL von 11 auf 10 herabzusetzen. Dies wird einmal pro Verbindung bestimmt, um „correlation attacks“ zu erschweren.
- Es besteht eine 100-%-Chance, HTL von 10 auf 9, von 9 auf 8 und so weiter bis auf 1 herabzusetzen. Dadurch ist sichergestellt, dass Anfragen immer mindestens zehn Knoten durchlaufen; so werden die Schätzwerte nicht zu sehr durcheinandergebracht. (Die Knoten können besser übereinander „lernen“.)
- Es besteht eine 20-%-Chance, Anfragen mit HTL=1 abzubrechen. Dies soll einige Angriffe verhindern, zum Beispiel unterschiedlichen Inhalt auf verschiedene Knoten hochzuladen, oder den Speicher eines Knotens auszutesten.
Protokoll
Freenet benutzt ab der Version 0.7 UDP . Ein TCP-Transport könnte später implementiert werden, aber UDP ist der bevorzugte Transport. Ältere Versionen verwenden ausschließlich TCP .
Schlüssel
Entweder sollen alle Inhalte in 32 KB oder in 1 KB großen Schlüsseln gespeichert werden. Wie bisher werden kleinere Dateien durch zufällig wirkende, aber eindeutig aus der Datei resultierende Daten erweitert; größere Dateien werden aufgespalten.
Pre-mix Routing
Das Konzept des Pre-mix Routing dient allein der Sicherheit. Bevor ein Auftrag von anderen Nodes sachlich bearbeitet wird, wird er erst verschlüsselt durch ein paar Nodes getunnelt, so dass die erste zwar uns kennt, aber nicht den Auftrag, und die letzte den Auftrag, aber nicht uns. Die Nodes werden in vernünftigem Rahmen zufällig ausgewählt. Der Begriff des „Zwiebel-Routings“ ( Onion-Routing ) veranschaulicht das: Die Anfrage wird mehrfach verschlüsselt (zu einer Zwiebel), und jede Node im Premix-Verlauf „schält“ eine Verschlüsselungsinstanz, so dass erst die letzte Node die Anfrage erkennt – sie weiß aber nicht, von wem der Auftrag kommt.
I2P
Im Januar 2005 wurde diskutiert, das verwandte Projekt I2P als Transportschicht zu verwenden. Diese Überlegung wurde jedoch verworfen.
Passive und inverse passive Anfragen
Passive Anfragen sind Anfragen, die im Netzwerk bestehen bleiben, bis die gesuchte Datei erreichbar wird. Inverse passive Anfragen sollen durch einen Mechanismus ähnlich den passiven Anfragen halbwegs permanent Inhalte bereitstellen.
Die Sicherheitsaspekte sind noch nicht vollständig bekannt. Vor der Implementierung werden sie geklärt werden. Passive und inverse passive Anfragen kommen wohl erst nach Version 1.0.
Steganographie
Steganographie kommt erst nach 1.0, das Transport Plugin Framework vom Google Summer of Code 2012 war ein erster Ansatz dazu, erreichte allerdings nicht Produktionsreife.
Verwandte Projekte
- GNUnet – anderes Programm mit ähnlicher Zielsetzung (hauptsächlich Filesharing)
- I2P – verwandtes Projekt, jedoch mit anderer Zielsetzung (Implementierung eines kompletten, dem Internet ähnlichen, Systems inklusive aller bekannten Anwendungsgebiete wie E-Mail, IRC oder BitTorrent )
- RetroShare – anderes Programm mit ähnlicher Zielsetzung, jedoch mehr für Filesharing, Messenger und Newsgroups gedacht.
- Tor – verwandtes Netzwerk auf Basis des Onion-Routings
Auszeichnungen
- 2014: SUMA Award [11]
Weblinks
- Freenet Project – die offizielle Projektseite
- A Distributed Anonymous Information Storage and Retrieval System (PDF, englisch; 246 kB)
- Schöner Tauschen – ein ausführlicher Artikel unter anderen über Freenet beim Online-Magazin Telepolis
- Freenet – Ein anonymes Netzwerk gegen Zensur und Überwachung, Artikel in der Computerwoche
- Anonymes, sicheres Filesharing? – ausführlicher Artikel über die Sicherheit von One-Click-Hostern und File-Sharing Netzwerken, im Speziellen Freenet.
Einzelnachweise
- ↑ Freenet: People . 22. September 2008. Archiviert vom Original am 21. September 2013. Abgerufen am 22. September 2008.
- ↑ Workshop on Design Issues in Anonymity and Unobservability . (englisch, abgerufen am 22. April 2021).
- ↑ github.com .
- ↑ Ian Clarke : A Distributed Anonymous Information Storage and Retrieval System. ( Memento vom 27. September 2007 im Internet Archive ) (PDF, englisch; 246 kB) 1999.
- ↑ Kurzinformationen zum DefCon-Vortrag
- ↑ Kurzinformationen zum 22C3-Vortrag
- ↑ Freenet-China ( Memento vom 19. Februar 2014 im Internet Archive )
- ↑ Xiao Qiang : The words you never see in Chinese cyberspace ( Memento vom 26. August 2010 im Internet Archive ). in: China Digital Times . 30. August 2004.
- ↑ Antipiracy-Analyse ( Memento vom 3. Juni 2004 im Internet Archive )
- ↑ The Freenet Project: Understand Freenet ( Memento vom 28. Dezember 2011 im Internet Archive ) , abgerufen am 15. Mai 2008, englisch, Zitat: „It is hard, but not impossible, to determine which files that are stored in your local Freenet Datastore. This is to enable plausible deniability as to what kind of material that lies on your harddrive in the datastore.“
- ↑ SUMA Award für das Freenet Project , Heise News vom 12. Februar 2015, abgerufen 3. März 2016