Freenet - Freenet

Freenet
Logo Freenet
Zrzut ekranu Freenet 0.7
Strona indeksu FProxy (Freenet 0.7)
Deweloper(zy)
Pierwsze wydanie marzec 2000 ; 21 lat temu ( 2000-03 )
Wersja stabilna
0.7.5 (kompilacja 1491) (2 maja 2021 ; 5 miesięcy temu ) [±] ( 2021-05-02 )
Magazyn
Napisane w Jawa
System operacyjny Wieloplatformowy : podobny do systemu Unix ( Android , Linux , BSD , macOS ), Microsoft Windows
Platforma Jawa
Dostępne w Angielski, francuski, włoski, niemiecki, holenderski, hiszpański, portugalski, szwedzki, norweski, chiński
Rodzaj Aplikacja anonimowość , peer-to-peer , przyjaciel do przyjaciela , nakładki sieci , sieć miksująca , sieciowy system plików
Licencja Powszechna Licencja Publiczna GNU
Strona internetowa freenetproject .org

Freenet to platforma peer-to-peer do anonimowej komunikacji odpornej na cenzurę . Wykorzystuje zdecentralizowany, rozproszony magazyn danych do przechowywania i dostarczania informacji oraz posiada pakiet bezpłatnego oprogramowania do publikowania i komunikowania się w sieci bez obawy o cenzurę. Zarówno Freenet, jak i niektóre z powiązanych z nim narzędzi zostały pierwotnie zaprojektowane przez Iana Clarke'a , który zdefiniował cel Freenet jako zapewnienie wolności słowa w Internecie z silną ochroną anonimowości.

Rozproszony magazyn danych Freenet jest używany przez wiele programów i wtyczek innych firm w celu zapewnienia mikroblogowania i udostępniania multimediów, anonimowego i zdecentralizowanego śledzenia wersji, blogowania, ogólnej sieci zaufania dla zdecentralizowanej odporności na spam , sklepu z butami do korzystania z Freenet przez Sneakernet i wielu jeszcze.

Historia

Początki Freenetu można doszukiwać się w studenckim projekcie Iana Clarke'a na Uniwersytecie w Edynburgu , który ukończył jako wymóg ukończenia studiów latem 1999 roku. Nieopublikowany raport Iana Clarke'a „Rozproszony zdecentralizowany system przechowywania i wyszukiwania informacji” (1999) podał podstawa do przełomowego artykułu napisanego we współpracy z innymi badaczami, „Freenet: A Distributed Anonymous Information Storage and Retrieval System” (2001). Według CiteSeer stał się jednym z najczęściej cytowanych artykułów z dziedziny informatyki w 2002 roku.

Badacze zasugerowali, że Freenet może zapewnić anonimowość w Internecie, przechowując małe zaszyfrowane fragmenty treści dystrybuowanych na komputerach swoich użytkowników i łącząc się tylko przez komputery pośredniczące, które przekazują żądania treści i odsyłają je z powrotem bez znajomości zawartości pełnego pliku, podobnie o tym, jak routery w Internecie kierują pakiety, nie wiedząc nic o plikach — z wyjątkiem tego, że Freenet ma pamięć podręczną, warstwę silnego szyfrowania i nie polega na scentralizowanych strukturach . Dzięki temu użytkownicy mogą publikować anonimowo lub pobierać różnego rodzaju informacje.

Lista partnerów darknetu Freenet 0.7.

Freenet jest stale rozwijany od 2000 roku.

Freenet 0.7, wydany 8 maja 2008 roku, jest poważnym przepisaniem zawierającym szereg fundamentalnych zmian. Najbardziej fundamentalną zmianą jest wsparcie dla działania darknetu . Wersja 0.7 oferowała dwa tryby działania: tryb, w którym łączy się tylko ze znajomymi oraz tryb opennet, w którym łączy się z dowolnym innym użytkownikiem Freenet. Oba tryby mogą działać jednocześnie. Kiedy użytkownik przełącza się na działanie w czystej sieci darknet, Freenet staje się bardzo trudny do wykrycia z zewnątrz. Warstwa transportowa stworzona dla trybu darknet umożliwia komunikację po ograniczonych trasach, które są powszechnie spotykane w sieciach kratowych , o ile połączenia te mają strukturę małego świata . Inne modyfikacje obejmują przełączanie z TCP na UDP , co pozwala na dziurkowanie UDP wraz z szybszą transmisją komunikatów między równorzędnymi urządzeniami w sieci.

Freenet 0.7.5, wydany 12 czerwca 2009, oferuje szereg ulepszeń w stosunku do wersji 0.7. Obejmują one zmniejszone zużycie pamięci, szybsze wstawianie i pobieranie treści, znaczne ulepszenia interfejsu internetowego FProxy używanego do przeglądania darmowych witryn oraz dużą liczbę mniejszych poprawek, ulepszeń wydajności i ulepszeń użyteczności. Wersja 0.7.5 została również dostarczona z nową wersją instalatora systemu Windows.

Począwszy od kompilacji 1226, wydanej 30 lipca 2009 r., napisane funkcje obejmują znaczne ulepszenia zabezpieczeń zarówno przeciwko atakującym działającym w sieci, jak i fizyczne przejęcie komputera, na którym działa węzeł.

Wraz z wydaniem kompilacji 1468, opublikowanej 11 lipca 2015 r., rdzeń Freenet przestał korzystać z bazy danych db4o i położył podwaliny pod wydajny interfejs wtyczki Web of Trust, która zapewnia odporność na spam.

Freenet zawsze był wolnym oprogramowaniem, ale do 2011 r. wymagał od użytkowników zainstalowania Javy . Ten problem został rozwiązany poprzez dostosowanie Freenetu do OpenJDK , darmowej i otwartej implementacji platformy Java.

11 lutego 2015 Freenet otrzymał nagrodę SUMA za „ochronę przed totalną inwigilacją”.

Funkcje i interfejs użytkownika

Freenet służył jako model dla japońskich programów wymiany plików peer to peer Winny , Share i Perfect Dark , ale ten model różni się od sieci p2p, takich jak Bittorrent i emule . Freenet oddziela podstawową strukturę sieci i protokół od sposobu interakcji użytkowników z siecią; w rezultacie istnieje wiele sposobów dostępu do treści w sieci Freenet. Najprostszy to FProxy, który jest zintegrowany z oprogramowaniem węzła i zapewnia interfejs sieciowy do treści w sieci. Korzystając z FProxy, użytkownik może przeglądać darmowe strony (strony, które używają normalnego HTML i powiązanych narzędzi, ale których zawartość jest przechowywana w Freenet, a nie na tradycyjnym serwerze WWW). Interfejs sieciowy jest również używany do większości zadań związanych z konfiguracją i zarządzaniem węzłami. Poprzez użycie oddzielnych aplikacji lub wtyczek załadowanych do oprogramowania węzła, użytkownicy mogą wchodzić w interakcje z siecią na inne sposoby, takie jak fora podobne do forów internetowych lub Usenetu lub interfejsy bardziej podobne do tradycyjnych interfejsów „udostępniania plików” P2P.

Chociaż Freenet zapewnia interfejs HTTP do przeglądania darmowych witryn, nie jest serwerem proxy dla sieci WWW ; Freenet może być używany do uzyskiwania dostępu tylko do treści, które zostały wcześniej wprowadzone do sieci Freenet. W ten sposób jest bardziej podobny do usług cebulowych Tora niż do anonimowego oprogramowania proxy, takiego jak proxy Tora .

Freenet skupia się na wolności słowa i anonimowości. Z tego powodu Freenet działa inaczej w pewnych punktach, które są (bezpośrednio lub pośrednio) związane z częścią anonimowości. Freenet stara się chronić anonimowość zarówno osób wprowadzających dane do sieci (upload), jak i tych pobierających dane z sieci (download). W przeciwieństwie do systemów udostępniania plików, przesyłający nie musi pozostawać w sieci po przesłaniu pliku lub grupy plików. Zamiast tego podczas procesu przesyłania pliki są dzielone na kawałki i przechowywane na różnych innych komputerach w sieci. Podczas pobierania te fragmenty są znajdywane i ponownie składane. Każdy węzeł w sieci Freenet udostępnia przestrzeń dyskową do przechowywania plików i przepustowości, której używa do kierowania żądań od swoich równorzędnych użytkowników.

Bezpośrednim wynikiem wymagań dotyczących anonimowości jest to, że węzeł żądający treści zwykle nie łączy się bezpośrednio z węzłem, który ją posiada; zamiast tego żądanie jest kierowane przez kilku pośredników, z których żaden nie wie, który węzeł wysłał żądanie lub który je otrzymał. W rezultacie całkowita przepustowość wymagana przez sieć do przesłania pliku jest wyższa niż w innych systemach, co może skutkować wolniejszymi transferami, zwłaszcza w przypadku rzadko otwieranej zawartości.

Od wersji 0.7 Freenet oferuje dwa różne poziomy bezpieczeństwa: Opennet i Darknet. Dzięki Opennet użytkownicy łączą się z dowolnymi innymi użytkownikami. Dzięki Darknet użytkownicy łączą się tylko z „przyjaciółmi”, z którymi wcześniej wymieniali klucze publiczne , nazwane referencjami do węzłów. Oba tryby mogą być używane razem.

Zadowolony

Założyciele Freenetu twierdzą, że prawdziwa wolność słowa wiąże się tylko z prawdziwą anonimowością i że korzystne zastosowania Freenetu przeważają nad jego negatywnymi zastosowaniami. Ich pogląd jest taki, że wolność słowa sama w sobie nie jest sprzeczna z żadnym innym względami – informacja nie jest przestępstwem. Freenet próbuje usunąć możliwość narzucenia przez jakąkolwiek grupę swoich przekonań lub wartości jakimkolwiek danym. Chociaż wiele stanów cenzuruje komunikację w różnym stopniu, wszystkie one mają jedną wspólną cechę, polegającą na tym, że organ musi decydować, jakie informacje cenzurować, a jakie zezwolić. To, co może być akceptowalne dla jednej grupy ludzi, może zostać uznane za obraźliwe, a nawet niebezpieczne dla innej. Zasadniczo celem Freenetu jest zapewnienie, że nikt nie może decydować, co jest dopuszczalne.

Raporty o użyciu Freenet w krajach autorytarnych są trudne do śledzenia ze względu na samą naturę celów Freenet. Jedna grupa, Freenet China , wprowadzała oprogramowanie Freenet chińskim użytkownikom od 2001 roku i rozpowszechniała je w Chinach za pośrednictwem poczty elektronicznej i na dyskach po zablokowaniu strony internetowej grupy przez chińskie władze na kontynencie. Poinformowano, że w 2002 roku Freenet China miał kilka tysięcy oddanych użytkowników. Jednak ruch Opennet Freenet został zablokowany w Chinach około 2010 roku.

Projekt techniczny

Sieć udostępniania plików Freenet przechowuje dokumenty i umożliwia ich późniejsze odzyskanie za pomocą powiązanego klucza, co jest teraz możliwe w przypadku protokołów takich jak HTTP . Sieć została zaprojektowana tak, aby była bardzo wytrzymała. System nie posiada centralnych serwerów i nie podlega kontroli żadnej osoby ani organizacji, w tym projektantów Freenet. Rozmiar bazy kodu to ponad 192 000 wierszy kodu . Informacje przechowywane w Freenet są rozprowadzane po sieci i przechowywane w kilku różnych węzłach. Szyfrowanie danych i przekazywanie żądań utrudnia ustalenie, kto wstawił treść do Freenet, kto zażądał tej treści lub gdzie treść była przechowywana. Chroni to anonimowość uczestników, a także bardzo utrudnia cenzurowanie określonych treści. Treść jest przechowywana w postaci zaszyfrowanej, co utrudnia nawet operatorowi węzła określenie, co jest przechowywane w tym węźle. Zapewnia to wiarygodną możliwość zaprzeczenia ; co w połączeniu z przekazywaniem żądań oznacza, że przepisy dotyczące bezpiecznej przystani, które chronią dostawców usług, mogą również chronić operatorów węzłów Freenet. Zapytani o ten temat, programiści Freenet poddają się dyskusji EFF, która mówi, że niemożność filtrowania czegokolwiek jest bezpiecznym wyborem.

Rozproszone przechowywanie i buforowanie danych

Podobnie jak Winny , Share i Perfect Dark , Freenet nie tylko przesyła dane między węzłami, ale faktycznie je przechowuje, pracując jako ogromna rozproszona pamięć podręczna. Aby to osiągnąć, każdy węzeł przydziela pewną ilość miejsca na dysku do przechowywania danych; jest to konfigurowalne przez operatora węzła, ale zazwyczaj jest to kilka GB (lub więcej).

Pliki w sieci Freenet są zazwyczaj dzielone na wiele małych bloków, przy czym zduplikowane bloki są tworzone w celu zapewnienia nadmiarowości . Każdy blok jest obsługiwany niezależnie, co oznacza, że ​​jeden plik może zawierać części przechowywane w wielu różnych węzłach.

Przepływ informacji w Freenet różni się od sieci takich jak eMule czy BitTorrent ; w sieci Freenet:

  1. Użytkownik chcący udostępnić plik lub zaktualizować darmową witrynę „wstawia” plik „do sieci”
  2. Po zakończeniu „wstawiania” węzeł publikacji może zostać zamknięty, ponieważ plik jest przechowywany w sieci. Pozostanie dostępny dla innych użytkowników, niezależnie od tego, czy oryginalny węzeł publikowania jest w trybie online. Żaden pojedynczy węzeł nie jest odpowiedzialny za treść; zamiast tego jest replikowana do wielu różnych węzłów.

Dwie zalety tej konstrukcji to wysoka niezawodność i anonimowość. Informacje pozostają dostępne, nawet jeśli węzeł wydawcy przejdzie w tryb offline, i są anonimowo rozłożone na wiele węzłów hostingu jako zaszyfrowane bloki, a nie całe pliki.

Kluczową wadą metody przechowywania jest to, że żaden węzeł nie jest odpowiedzialny za jakikolwiek fragment danych. Jeśli część danych nie jest pobierana przez jakiś czas, a węzeł otrzymuje nowe dane, porzuci stare dane, gdy przydzielone mu miejsce na dysku zostanie w pełni wykorzystane. W ten sposób Freenet ma tendencję do „zapominania” danych, które nie są regularnie pobierane (patrz również Efekt ).

Chociaż użytkownicy mogą wprowadzać dane do sieci, nie ma możliwości ich usunięcia. Ze względu na anonimowy charakter Freenet, oryginalny węzeł publikujący lub właściciel jakiejkolwiek części danych jest nieznany. Jedynym sposobem usunięcia danych jest to, że użytkownicy o to nie poproszą.

Sieć

Zazwyczaj komputer hosta w sieci uruchamia oprogramowanie, które działa jako węzeł i łączy się z innymi hostami, na których działa to samo oprogramowanie, w celu utworzenia dużej rozproszonej sieci węzłów równorzędnych o zmiennej wielkości. Niektóre węzły są węzłami użytkowników końcowych, z których żądane są dokumenty i prezentowane użytkownikom. Inne węzły służą tylko do trasowania danych. Wszystkie węzły komunikują się ze sobą identycznie – nie ma dedykowanych „klientów” ani „serwerów”. Węzeł nie może ocenić innego węzła, chyba że przez jego zdolność do wstawiania i pobierania danych powiązanych z kluczem. W przeciwieństwie do większości innych sieci P2P, w których administratorzy węzłów mogą stosować system ratio, w którym użytkownicy muszą udostępniać pewną ilość treści, zanim będą mogli pobrać.

Freenet można również uznać za sieć małego świata .

Protokół Freenet jest przeznaczony do użytku w sieci o złożonej topologii, takiej jak Internet ( Internet Protocol ). Każdy węzeł wie tylko o pewnej liczbie innych węzłów, do których może dotrzeć bezpośrednio (swoich koncepcyjnych „sąsiadów”), ale każdy węzeł może być sąsiadem każdego innego; nie przewiduje się żadnej hierarchii ani innej struktury. Każda wiadomość jest kierowana przez sieć, przechodząc od sąsiada do sąsiada, aż dotrze do miejsca przeznaczenia. Ponieważ każdy węzeł przekazuje wiadomość do sąsiada, nie wie, czy sąsiad przekaże wiadomość do innego węzła, czy też jest ostatecznym miejscem docelowym lub pierwotnym źródłem wiadomości. Ma to na celu ochronę anonimowości użytkowników i wydawców.

Każdy węzeł utrzymuje magazyn danych zawierający dokumenty powiązane z kluczami oraz tablicę routingu, kojarzącą węzły z zapisami ich wydajności w pobieraniu różnych kluczy.

Protokół

Typowa sekwencja żądań. Żądanie przechodzi przez sieć od węzła do węzła, wycofując się ze ślepego zaułka (krok 3) i pętli (krok 7) przed zlokalizowaniem żądanego pliku.

Protokół Freenet wykorzystuje protokół routingu oparty na kluczach , podobny do rozproszonych tablic mieszających . Algorytm routingu zmienił się znacząco w wersji 0.7. Przed wersją 0.7 Freenet używał algorytmu routingu heurystycznego , w którym każdy węzeł nie miał stałej lokalizacji, a routing opierał się na tym, który węzeł obsługiwał klucz najbliższy pobieranemu kluczowi (w wersji 0.3) lub który szacuje się, że obsługuje go szybciej ( w wersji 0.5). W obu przypadkach nowe połączenia były czasami dodawane do dalszych węzłów (tj. węzła, który odpowiedział na żądanie), gdy żądania zakończyły się powodzeniem, a stare węzły były odrzucane w najmniej ostatnio używanej kolejności (lub w podobnej kolejności). Badania Oskara Sandberga (podczas opracowywania wersji 0.7) pokazują, że to „zwijanie ścieżki” ma kluczowe znaczenie i że wystarczy bardzo prosty algorytm routingu pod warunkiem, że istnieje składanie ścieżki.

Wadą tego jest to, że atakującemu bardzo łatwo jest znaleźć węzły Freenet i połączyć się z nimi, ponieważ każdy węzeł nieustannie próbuje znaleźć nowe połączenia. W wersji 0.7 Freenet obsługuje zarówno „Opennet” (podobny do starych algorytmów, ale prostszy), jak i „Darknet” (wszystkie połączenia węzłów są konfigurowane ręcznie, więc tylko twoi znajomi znają adres IP twojego węzła). Darknet jest mniej wygodny, ale znacznie bezpieczniejszy przed odległym napastnikiem.

Ta zmiana wymagała poważnych zmian w algorytmie routingu. Każdy węzeł ma lokalizację, która jest liczbą z zakresu od 0 do 1. Gdy zażądano klucza, najpierw węzeł sprawdza lokalną składnicę danych. Jeśli nie zostanie znaleziony, skrót klucza jest zamieniany na inną liczbę z tego samego zakresu, a żądanie jest kierowane do węzła, którego lokalizacja jest najbliżej klucza. Trwa to aż do przekroczenia pewnej liczby przeskoków, nie ma więcej węzłów do przeszukania lub dane nie zostaną znalezione. Jeśli dane zostaną znalezione, są buforowane w każdym węźle na ścieżce. Nie ma więc jednego węzła źródłowego dla klucza, a próba znalezienia miejsca, w którym jest on obecnie przechowywany, spowoduje, że będzie on szerzej buforowany. Zasadniczo ten sam proces jest używany do wstawiania dokumentu do sieci: dane są kierowane zgodnie z kluczem, aż zabraknie przeskoków, a jeśli nie zostanie znaleziony żaden istniejący dokument z tym samym kluczem, są one przechowywane w każdym węźle. Jeśli zostaną znalezione starsze dane, starsze dane są propagowane i zwracane do nadawcy, a wstawka „koliuje”.

Ale działa to tylko wtedy, gdy lokalizacje są zgrupowane we właściwy sposób. Freenet zakłada, że ​​Darknet (podzbiór globalnej sieci społecznościowej) jest siecią małego świata, a węzły nieustannie próbują zamieniać się lokalizacjami (używając algorytmu Metropolis-Hastings ) w celu zminimalizowania ich odległości od sąsiadów. Jeśli sieć faktycznie jest siecią małego świata, Freenet powinien dość szybko znaleźć dane; najlepiej w kolejności chmielu w notacji Big O . Nie gwarantuje to jednak, że dane zostaną w ogóle odnalezione.

Ostatecznie albo dokument zostanie znaleziony, albo przekroczony zostanie limit przeskoków. Węzeł końcowy wysyła odpowiedź, która wraca do nadawcy wzdłuż trasy określonej przez rekordy węzłów pośrednich oczekujących żądań. Węzły pośrednie mogą zdecydować się na buforowanie dokumentu po drodze. Oprócz oszczędności przepustowości, utrudnia to również cenzurowanie dokumentów, ponieważ nie ma jednego „węzła źródłowego”.

Efekt

Wpływ węzła specjalizującego się w konkretnej lokalizacji.

Początkowo lokacje w Darknet są rozmieszczane losowo. Oznacza to, że routing żądań jest zasadniczo losowy. W Opennet połączenia są nawiązywane przez żądanie dołączenia, które zapewnia zoptymalizowaną strukturę sieci, jeśli istniejąca sieć jest już zoptymalizowana. Tak więc dane w nowo uruchomionym Freenet będą dystrybuowane nieco losowo.

W miarę postępu zamiany lokalizacji (w Darknet) i składania ścieżek (w Opennet), węzły znajdujące się blisko siebie będą coraz częściej miały bliskie lokalizacje, a węzły, które są daleko, będą miały odległe lokalizacje. Dane o podobnych kluczach będą przechowywane w tym samym węźle.

W rezultacie sieć samoorganizuje się w rozproszoną strukturę klastrową, w której węzły mają tendencję do przechowywania elementów danych, które znajdują się blisko siebie w przestrzeni klucza. Prawdopodobnie będzie wiele takich klastrów w całej sieci, a każdy dokument będzie replikowany wielokrotnie, w zależności od tego, jak często jest używany. Jest to rodzaj „ spontanicznego łamania symetrii ”, w którym początkowo symetryczny stan (wszystkie węzły są takie same, z przypadkowymi dla siebie przypadkowymi kluczami początkowymi) prowadzi do wysoce asymetrycznej sytuacji, w której węzły zaczynają specjalizować się w danych, które są ściśle powiązane Klucze.

Istnieją siły, które mają tendencję do tworzenia klastrów (współdzielone dane o bliskości rozprzestrzeniają się w całej sieci) oraz siły, które mają tendencję do rozbijania klastrów (lokalne buforowanie powszechnie używanych danych). Siły te będą się różnić w zależności od tego, jak często używane są dane, tak że rzadko używane dane będą zwykle znajdować się w zaledwie kilku węzłach, które specjalizują się w dostarczaniu tych danych, a często używane elementy będą szeroko rozpowszechnione w całej sieci. Ta automatyczna kopia lustrzana przeciwdziała przeciążeniom ruchu sieciowego , a dzięki inteligentnemu routingowi w dojrzałej sieci, sieć o rozmiarze n powinna wymagać średnio tylko czasu logowania( n ), aby pobrać dokument.

Klucze

Klucze to skróty : nie ma pojęcia bliskości semantycznej, gdy mówimy o bliskości klucza. W związku z tym nie będzie korelacji między bliskością kluczy a podobną popularnością danych, jaka mogłaby mieć miejsce, gdyby klucze miały pewne znaczenie semantyczne, co pozwoliłoby uniknąć wąskich gardeł powodowanych przez popularne tematy.

Istnieją dwie główne odmiany kluczy używanych we Freenet: klucz skrótu zawartości (CHK) i klucz podpisania (SSK). Podtypem SSK jest klucz podprzestrzenny aktualizowalny (USK), który dodaje wersjonowanie, aby umożliwić bezpieczne aktualizowanie zawartości.

CHK to skrót SHA-256 dokumentu (po zaszyfrowaniu, który sam w sobie zależy od skrótu tekstu jawnego), a zatem węzeł może sprawdzić, czy zwrócony dokument jest poprawny, mieszając go i porównując skrót z kluczem. Ten klucz zawiera sedno danych na Freenet. Zawiera wszystkie bloki konstrukcyjne danych binarnych, które mają być dostarczone do klienta w celu ponownego złożenia i odszyfrowania. CHK jest z natury wyjątkowy i zapewnia zawartość zabezpieczoną przed manipulacją. Wrogi węzeł zmieniający dane w CHK zostanie natychmiast wykryty przez następny węzeł lub klienta. CHK zmniejszają również nadmiarowość danych, ponieważ te same dane będą miały tę samą CHK, a gdy wiele witryn odwołuje się do tych samych dużych plików, mogą odwoływać się do tego samego CHK.

SSK są oparte na kryptografii klucza publicznego. Obecnie Freenet używa algorytmu DSA . Dokumenty wstawiane pod SSK są podpisywane przez wstawiającego, a podpis ten może zostać zweryfikowany przez każdy węzeł, aby upewnić się, że dane nie zostaną naruszone. SSK mogą być używane do ustanowienia weryfikowalnej pseudonimowej tożsamości w Freenet i pozwalają na bezpieczne wstawianie wielu dokumentów przez jedną osobę. Pliki wstawiane za pomocą SSK są w rzeczywistości niezmienne , ponieważ wstawienie drugiego pliku o tej samej nazwie może spowodować kolizje. USK rozwiązują ten problem, dodając numer wersji do kluczy, który jest również używany do powiadamiania o aktualizacji kluczy zarejestrowanych jako zakładki w interfejsie internetowym. Innym podtypem SSK jest klucz podpisany przez słowo kluczowe lub KSK, w którym para kluczy jest generowana w standardowy sposób z prostego łańcucha czytelnego dla człowieka. Wstawienie dokumentu za pomocą KSK pozwala na odzyskanie i odszyfrowanie dokumentu wtedy i tylko wtedy, gdy wnioskodawca zna ciąg czytelny dla człowieka; pozwala to na wygodniejsze (ale mniej bezpieczne) identyfikatory URI, do których użytkownicy mogą się odwoływać.

Skalowalność

Sieci mówi się, skalowalne, jeżeli jego wydajność nie pogarsza się, nawet jeśli sieć jest bardzo duża. Skalowalność Freenet jest oceniana, ale wykazano, że podobne architektury skalują się logarytmicznie. Ta praca wskazuje, że Freenet może znaleźć dane w przeskokach w sieci małego świata (która obejmuje zarówno sieci Freenet typu opennet, jak i darknet), ignorując buforowanie, co może poprawić skalowalność popularnych treści. Jednak ta skalowalność jest trudna do przetestowania bez bardzo dużej sieci. Co więcej, funkcje bezpieczeństwa nieodłącznie związane z Freenet sprawiają, że szczegółowa analiza wydajności (w tym rzeczy tak proste, jak określenie rozmiaru sieci) jest trudna do dokładnego wykonania. Jak na razie skalowalność Freenetu nie została jeszcze przetestowana.

Darknet kontra Opennet

Od wersji 0.7 Freenet obsługuje zarówno połączenia „darknet”, jak i „opennet”. Połączenia Opennet są nawiązywane automatycznie przez węzły z włączonym opennet, podczas gdy połączenia darknet są nawiązywane ręcznie między użytkownikami, którzy znają się i ufają sobie nawzajem. Deweloperzy Freenet opisują potrzebne zaufanie jako „nie złamie swojego węzła Freenet”. Połączenia Opennet są łatwe w użyciu, ale połączenia Darknet są bezpieczniejsze przed atakującymi w sieci i mogą utrudnić atakującemu (na przykład opresyjnemu rządowi) nawet ustalenie, że użytkownik korzysta z Freenetu.

Podstawową innowacją w Freenet 0.7 jest umożliwienie globalnie skalowalnego darknetu, zdolnego (przynajmniej teoretycznie) do obsługi milionów użytkowników. Poprzednie darknety, takie jak WASTE , ograniczały się do stosunkowo małych odłączonych sieci. Skalowalność Freenetu jest możliwa dzięki temu, że relacje międzyludzkie mają tendencję do tworzenia sieci małych światów, właściwości, które można wykorzystać do znalezienia krótkich ścieżek między dowolnymi dwiema osobami. Praca oparta jest na przemówieniu wygłoszonym podczas DEF CON 13 przez Iana Clarke'a i szwedzkiego matematyka Oskara Sandberga . Co więcej, algorytm routingu jest w stanie przekierowywać połączenie przez połączenie opennet i darknet, pozwalając osobom, które mają tylko kilku znajomych korzystających z sieci, uzyskać wydajność z posiadania wystarczających połączeń, jednocześnie otrzymując niektóre korzyści związane z bezpieczeństwem połączeń darknet. Oznacza to również, że małe darknety, w których niektórzy użytkownicy mają również połączenia opennet, są w pełni zintegrowane z całą siecią Freenet, umożliwiając wszystkim użytkownikom dostęp do wszystkich treści, niezależnie od tego, czy korzystają z opennet, darknet, czy hybrydy tych dwóch, z wyjątkiem podłączonych kieszeni darknet przez pojedynczy węzeł hybrydowy.

Narzędzia i aplikacje

Zrzut ekranu Frost działającego w systemie Microsoft Windows

W przeciwieństwie do wielu innych aplikacji P2P, Freenet sam w sobie nie zapewnia kompleksowej funkcjonalności. Freenet jest modułowy i oferuje interfejs API o nazwie Freenet Client Protocol (FCP) dla innych programów do wykorzystania w celu wdrożenia usług, takich jak fora dyskusyjne , udostępnianie plików lub czat online .

Komunikacja

System wiadomości Freenet (FMS)
FMS został zaprojektowany, aby rozwiązać problemy z Frost, takie jak ataki typu „odmowa usługi ” i spam. Użytkownicy publikują listy zaufania, a każdy użytkownik pobiera wiadomości tylko z tożsamości, którym ufa, oraz tożsamości, którym ufają tożsamości, którym ufa. FMS jest opracowywany anonimowo i można go pobrać z bezpłatnej strony FMS w ramach Freenet. Nie ma oficjalnej strony w normalnym Internecie. Oferuje losowe opóźnienie publikacji, obsługę wielu tożsamości oraz rozróżnienie między zaufaniem postom użytkownika a zaufaniem jego liście zaufania. Jest napisany w C++ i jest oddzielną aplikacją od Freenet, która używa protokołu Freenet Client Protocol (FCP) do współpracy z Freenet.
Mróz
Frost obejmuje obsługę wygodnego udostępniania plików, ale jego konstrukcja jest z natury podatna na spam i ataki typu „odmowa usługi ”. Frost można pobrać ze strony głównej Frost na SourceForge lub z darmowej strony Frost w sieci Freenet. Nie jest wspierany przez programistów Freenet. Frost jest napisany w Javie i jest oddzielną aplikacją od Freenet.
Sone
Sone zapewnia prostszy interfejs inspirowany Facebookiem z publicznymi anonimowymi dyskusjami i galeriami zdjęć. Zapewnia interfejs API do kontroli z innych programów, służy również do implementacji systemu komentarzy dla statycznych stron internetowych w zwykłym Internecie.

Narzędzia

jSite
jSite to narzędzie do przesyłania stron internetowych. Obsługuje klucze i zarządza przesyłaniem plików.
Infokalipsa
Infocalypse jest rozszerzeniem dla rozproszonego systemu kontroli wersji Mercurial . Wykorzystuje zoptymalizowaną strukturę, aby zminimalizować liczbę żądań pobrania nowych danych i umożliwia obsługę repozytorium poprzez bezpieczne ponowne przesyłanie większości części danych bez konieczności posiadania kluczy prywatnych właściciela.

Biblioteki

FCPLib
FCPLib (Freenet Client Protocol Library) ma być wieloplatformowym, natywnie skompilowanym zestawem funkcji opartych na C++ do przechowywania i pobierania informacji do i z Freenet. FCPLib obsługuje Windows NT/2K/XP, Debian , BSD , Solaris i macOS .
lib-pyFreenet
lib-pyFreenet udostępnia funkcjonalność Freenet programom Pythona . Infocalypse go używa.

Luki

Organy ścigania twierdziły, że z powodzeniem zinfiltrowały opennet freenet w celu deanonimizacji użytkowników, ale nie podano żadnych szczegółów technicznych na poparcie tych zarzutów. W jednym z raportów stwierdzono, że „ dochodzenie w sprawie pornografii dziecięcej koncentrowało się na… [podejrzanym], gdy władze monitorowały sieć internetową Freenet”. Inny raport wskazuje, że aresztowania mogły być oparte na przeciekach projektu BlackICE, które są obalane za używanie złej matematyki oraz za używanie niepoprawnie obliczonego wskaźnika fałszywych trafień i fałszywego modelu.

Sprawa sądowa w Peel Region of Ontario, Kanada R. v. Owen, 2017 ONCJ 729 (CanLII), pokazała, że ​​organy ścigania faktycznie są obecne, po tym, jak policja regionalna w Peel zlokalizowała, która pobierała nielegalne materiały z sieci Freenet . Decyzja sądu wskazuje, że kanadyjska agencja ścigania obsługuje węzły obsługujące zmodyfikowane oprogramowanie Freenet w nadziei na ustalenie, kto żąda nielegalnych materiałów.

  • Atak wstawiania tabeli routingu (RTI).

Rozgłos

Freenet miał znaczący rozgłos w prasie głównego nurtu, w tym artykuły w The New York Times oraz relacje w CNN , 60 Minutes II , BBC , The Guardian i innych.

Freenet otrzymał nagrodę SUMA-Award 2014 za „ochronę przed całkowitym nadzorem”.

Freesite

„Freesite” to witryna hostowana w sieci Freenet. Ponieważ zawiera tylko zawartość statyczną, nie może zawierać żadnej aktywnej zawartości, takiej jak skrypty po stronie serwera lub bazy danych. Freesites są zakodowane w HTML i obsługują tyle funkcji, na ile pozwala przeglądarka wyświetlająca stronę; jednak istnieją pewne wyjątki, w których oprogramowanie Freenet usunie części kodu, które mogą być użyte do ujawnienia tożsamości osoby przeglądającej stronę (na przykład umożliwienie stronie dostępu do czegoś w Internecie).

Zobacz też

Porównywalne oprogramowanie

Bibliografia

Dalsza lektura

Zewnętrzne linki